Skip to content
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

deps: update uint256 to 1.2.0 #22745

Merged
merged 2 commits into from
May 10, 2021
Merged

deps: update uint256 to 1.2.0 #22745

merged 2 commits into from
May 10, 2021

Conversation

holiman
Copy link
Contributor

@holiman holiman commented Apr 27, 2021

1.2.0 mainly contains some conversions, and also API-changes to make it more closely resemble a big.Int, and fixes an error in SubUint64 (which is unused in our code) .

@holiman holiman requested a review from karalabe as a code owner April 27, 2021 08:22
@royalfork
Copy link

@holiman Thanks for your lovely uint256 package, but your latest release violates the rules of semantic versioning. It introduces a breaking API change; the function signature changes from uint256.NewInt() to uint256.NewInt(uint64). Because go mod assumes that go-ethereum should be able to use uint256 v1.X without any additional code changes, any project which depends on both uint256 (v1.2.0) and go-ethereum will break.

Before merging this, maybe you'd like to consider renaming the uint256 v1.2.0 release to v2.0.0? This will have the added benefit of unbreaking other projects which depend on uint256.

@holiman
Copy link
Contributor Author

holiman commented May 2, 2021

Yes, that's true. I considered it, but the thing with major version updates is that it requires you to keep the original code intact, and copy the whole codebase to a v2 folder.

I felt that it was a bit overkill. Yes, the API changed, but not in a 'dangerous' way (for example, like a database which changes the db on-disk format in a backwards-incompatible way), only in a small way which should be easy to fix. I didn't think that a lot of projects were using uint256 -- it's mainly written with go-ethereum in mind.

I went through the major-upgrade excercise when I upgraded the holiman/bloomfilter to a v2, and it was a pretty sizeable amount of work in the end.

Apologies for any problems caused!

@fjl fjl merged commit ae5fcdc into ethereum:master May 10, 2021
@fjl fjl added this to the 1.10.4 milestone May 10, 2021
atif-konasl pushed a commit to frozeman/pandora-execution-engine that referenced this pull request Oct 15, 2021
barryz added a commit to barryz/bsc that referenced this pull request Feb 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants