forked from ethereum/go-ethereum
-
Notifications
You must be signed in to change notification settings - Fork 3
feat: release-branch automation #137
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
3 tasks
darioush
approved these changes
Feb 14, 2025
github-merge-queue bot
pushed a commit
that referenced
this pull request
Mar 17, 2025
## Why this should be merged Safer release process by enforcing invariants of `release/*` branches as automated in #137 to fulfil #25. ## How this works New test for `go_tooling` CI job. If the PR target branch is `main` then only the `params.ReleaseType` is checked. If the target is neither `main` nor a release branch then the test is skipped. The checks performed on `release/*` branches are described in the test. ## How this was tested Locally against a dummy release branch with deliberate problems created by (a) including this PR's changes in the final commit and (b) not updating the libevm version. ``` $ go test -v ./... --target_branch="release/v1.13.14-0.1.0.rc.3" === RUN TestCherryPicksFormat --- PASS: TestCherryPicksFormat (0.39s) === RUN TestBranchProperties === RUN TestBranchProperties/branch_name release_test.go:172: Error Trace: .../ava-labs/libevm/libevm/tooling/release/release_test.go:172 Error: Not equal: expected: "release/v1.13.14-0.1.0.beta" actual : "release/v1.13.14-0.1.0.rc.3" Diff: --- Expected +++ Actual @@ -1 +1 @@ -release/v1.13.14-0.1.0.beta +release/v1.13.14-0.1.0.rc.3 Test: TestBranchProperties/branch_name release_test.go:175: On release branch; params.LibEVMReleaseType = "beta", which is unsuitable for release branches === RUN TestBranchProperties/commit_history release_test.go:192: Forked from "main" at commit 4c6e50e (chore: module-renaming workflow inverts between `libevm` and `geth` (#152)) release_test.go:314: ### History since fork from default branch (8 commits): release_test.go:316: internal/build, rpc: add missing HTTP response body Close() calls (ethereum#29223) by Shiming Zhang <wzshiming@hotmail.com> release_test.go:316: core/state: fix bug in statedb.Copy and remove unnecessary preallocation (ethereum#29563) by Aaron Chen <aaronchen.lisp@gmail.com> release_test.go:316: params: print time value instead of pointer in ConfigCompatError (ethereum#29514) by Nathan <Nathan.l@nodereal.io> release_test.go:316: eth/gasprice: add query limit for FeeHistory to defend DDOS attack (ethereum#29644) by Nathan <Nathan.l@nodereal.io> release_test.go:316: core/state/snapshot: add a missing lock (ethereum#30001) by maskpp <maskpp266@gmail.com> release_test.go:316: crypto: add IsOnCurve check (ethereum#31100) by Felix Lange <fjl@twurst.com> release_test.go:316: internal/ethapi: fix panic in debug methods (ethereum#31157) by Sina M <1591639+s1na@users.noreply.github.com> release_test.go:316: x by Arran Schlosberg <me@arranschlosberg.com> === RUN TestBranchProperties/commit_history/cherry_picked_commits release_test.go:314: ### Expected cherry-picks (7 commits): release_test.go:316: internal/build, rpc: add missing HTTP response body Close() calls (ethereum#29223) by Shiming Zhang <wzshiming@hotmail.com> release_test.go:316: core/state: fix bug in statedb.Copy and remove unnecessary preallocation (ethereum#29563) by Aaron Chen <aaronchen.lisp@gmail.com> release_test.go:316: params: print time value instead of pointer in ConfigCompatError (ethereum#29514) by Nathan <Nathan.l@nodereal.io> release_test.go:316: eth/gasprice: add query limit for FeeHistory to defend DDOS attack (ethereum#29644) by Nathan <Nathan.l@nodereal.io> release_test.go:316: core/state/snapshot: add a missing lock (ethereum#30001) by maskpp <maskpp266@gmail.com> release_test.go:316: crypto: add IsOnCurve check (ethereum#31100) by Felix Lange <fjl@twurst.com> release_test.go:316: internal/ethapi: fix panic in debug methods (ethereum#31157) by Sina M <1591639+s1na@users.noreply.github.com> === RUN TestBranchProperties/commit_history/final_commit release_test.go:365: Modified disallowed file "go.yml" release_test.go:365: Modified disallowed file "go.mod" release_test.go:365: Modified disallowed file "go.sum" release_test.go:365: Modified disallowed file "release_test.go" --- FAIL: TestBranchProperties (2.07s) --- FAIL: TestBranchProperties/branch_name (0.00s) --- FAIL: TestBranchProperties/commit_history (2.07s) --- PASS: TestBranchProperties/commit_history/cherry_picked_commits (1.81s) --- FAIL: TestBranchProperties/commit_history/final_commit (0.01s) FAIL FAIL github.com/ava-labs/libevm/libevm/tooling/release 2.712s FAIL ```
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why this should be merged
Closes #25
How this works
See #126.
The code is in a new module to (a) avoid polluting the root
go.mod
file and (b) becausego-git
requires a newer version of Go. Unfortunatelygo-git
doesn't support cherry-picking yet so a Bash script had to be used for that bit#!/sad
.How this was tested
Inspection of output when running
cherrypick.sh
(withset -x
added) from the current branch.