-
Notifications
You must be signed in to change notification settings - Fork 459
Update README with versioning information #704
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -37,15 +37,15 @@ will have all schema `#ref`s resolved. | |||||
| #### Building the docs | ||||||
|
|
||||||
| Once you've updated something in the spec, you can use the docs generation tools | ||||||
| to view the updated specs locally. | ||||||
| to view the updated specs locally. | ||||||
|
|
||||||
| ```console | ||||||
| $ npm run build:docs | ||||||
| $ npm run watch | ||||||
| ``` | ||||||
|
|
||||||
| The `watch` command starts a local webserver serving the docs in-browser at | ||||||
| `http://0.0.0.0:8000` and it rebuilds when you update something in the specs. | ||||||
| The `watch` command starts a local webserver serving the docs in-browser at | ||||||
| `http://0.0.0.0:8000` and it rebuilds when you update something in the specs. | ||||||
| Please reload the page to see your changes. | ||||||
|
|
||||||
| ### Testing | ||||||
|
|
@@ -69,7 +69,7 @@ directory against the specification. There are two npm scripts to simplify this | |||||
|
|
||||||
| ```console | ||||||
| $ npm run build:test | ||||||
| $ npm run test | ||||||
| $ npm run test | ||||||
| all passing. | ||||||
| ``` | ||||||
|
|
||||||
|
|
@@ -129,6 +129,37 @@ A script is included in the source code which reads and validates the given sche | |||||
| $ npm run graphql:validate | ||||||
| ``` | ||||||
|
|
||||||
| ## Versioning | ||||||
|
|
||||||
| Execution-apis follows [semantic versioning][semver]. | ||||||
| - Major releases will include breaking changes to the [rpc-compat hive tests][rpc-compat], and other backwards incompatible changes. | ||||||
| - Minor releases will include new backwards-compatible features. | ||||||
| - Patch releases will include internal changes that don't impact end users and backwards-compatible bugfixes, along with fixing test cases that don't match the spec. | ||||||
|
|
||||||
| Examples of changes by version type: | ||||||
|
|
||||||
| **Major:** | ||||||
| - Adding new RPC methods | ||||||
| - Changing the parameters or return type of an existing method in an incompatible way | ||||||
| - Renaming fields in responses | ||||||
| - Changing error codes or error response structures | ||||||
| - Removing support for previously accepted input formats | ||||||
| - Adding new fields to response objects | ||||||
|
|
||||||
| **Minor:** | ||||||
| - Removing an existing RPC method | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think both adding and removing should be in major. Here we are talking about what breaks hive tests not what breaks user experience. As such, both adding and removing is a major break in hive
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, exactly. As I'm optimizing for client developer experience here, adding a new RPC method will start clients failing on hive and so I think it should be a major. I can see either way on removing, but had it in minor because it won't change whether or not clients pass the hive tests.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. you could clarify it by saying "Removing tests for an existing RPC method" |
||||||
| - Adding optional parameters to existing methods | ||||||
| - Adding new error codes for previously uncovered edge cases | ||||||
| - Introducing new capabilities while maintaining backward compatibility | ||||||
|
|
||||||
| **Patch:** | ||||||
| - Fixing typos or improving clarity in documentation | ||||||
| - Correcting examples in the specification | ||||||
| - Fixing test cases that don't match the spec | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this one maybe should be minor? if clients are matching the tests rather than the spec (which is not uncommon), this will break things |
||||||
| - Improving validation rules without changing the API surface | ||||||
| - Updating internal tooling or build processes | ||||||
|
|
||||||
|
|
||||||
| ## License | ||||||
|
|
||||||
| This repository is licensed under [CC0](LICENSE). | ||||||
|
|
@@ -144,3 +175,4 @@ This repository is licensed under [CC0](LICENSE). | |||||
| [hive]: https://github.com/ethereum/hive | ||||||
| [rpc-compat]: https://github.com/ethereum/hive/tree/master/simulators/ethereum/rpc-compat | ||||||
| [test-gen]: docs/reference/tests.md | ||||||
| [semver]: https://semver.org/ | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you could clarify it by saying "Adding tests for a new RPC method"