-
Notifications
You must be signed in to change notification settings - Fork 20.3k
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
Go-ethereum has no respect for semantic versioning #21837
Comments
First off, sorry for the inconvenience. We will be more careful regarding such API changes in the future. Please note that certain packages in go-ethereum cannot always remain backwards-compatible because their APIs need to be adapted to changes in the ethereum protocol. This mostly applies to the 'core' package. That said, we do try to maintain compatibility as much as possible. This change in accounts/abi was very unfortunate, and could have been avoided. |
Thanks. I completely understand that breaking changes are sometimes needed, the important thing is that breaking changes should always lead to a major version bump, that way it is less surprising to developers. Unfortunately, for now I am stuck on v1.9.12 since upgrading will require a long and tedious process of ensuring all my dependencies work with v1.9.23 and re-compiling the contract bindings for v1.9.23, which I do not have time for right now. Closing since I don't think there is any immediate action go-ethereum devs can take to remedy this situation, just wanted to make you aware. |
Given it contains protocol hard fork changes, why is this also a patch release: https://github.com/ethereum/go-ethereum/releases/tag/v1.10.5 ? |
That's Ethereum itself undergoing a version change. Geth does not break api compatibility in a backward incompatible way.Semantic versioning works great for an API or library or utility, less so for something that's all those and more.
|
System information
Geth version:
v1.9.23
OS & Version: OSX
Expected behaviour
Patch versions should not introduce breaking changes.
Actual behaviour
Patch versions introduce lots of breaking changes.
Steps to reproduce the behaviour
abi.U256()
abi.U256()
was removed for no obvious reason: ab72803#diff-baa94fd18f34eadd3684559252ba85328c6da713e079ccc39de383ecbd6950d6L40-L45abi.U256()
As another example, #21043 changes the behaviour of
estimateGas()
in a breaking way when a non-zero gasPrice is specified. This should not go in a patch release!See https://semver.org/ for reference.
The text was updated successfully, but these errors were encountered: