-
Notifications
You must be signed in to change notification settings - Fork 3
docs(libevm/tooling/release): add readme #170
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
a080b83
92023af
c4b262f
c42928b
b0ca643
2a0aa1d
3b326a3
8f400ec
ab8fbb1
8285be7
de4b8b2
f28b610
2b57993
06b95ab
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 |
---|---|---|
@@ -0,0 +1,69 @@ | ||
# Release | ||
|
||
In the following, we create a release candidate version `v1.13.14-0.2.0.rc.4` and your Github username is `myusername`. We set environment variables accordingly: | ||
|
||
```bash | ||
VERSION=v1.13.14-0.2.0.rc.4 | ||
USERNAME=myusername | ||
``` | ||
|
||
1. Create two branches, usually from the tip of the `main` branch, but the base commit MAY be from anywhere on `main`: | ||
|
||
```bash | ||
git fetch origin main:main | ||
git checkout main | ||
git checkout -b "release/$VERSION" | ||
git push -u origin "release/$VERSION" | ||
git checkout -b "$USERNAME/release/$VERSION" | ||
``` | ||
|
||
The `$USERNAME/release/$VERSION` branch will be used to add "release modifications" and will target the branch `release/$VERSION` in a pull request. | ||
1. Run the script `./cherrypick.sh` which cherry picks all Geth commits listed in [cherrypicks](cherrypicks). You may have to resolve conflicts. If you encounter a CI error NOT from the `go_test_tooling` job, ideally [amend](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History) the cherry-picked commit(s) responsible for each issue. | ||
1. Modify [params/version.libevm.go](/params/version.libevm.go) | ||
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. It's useful to have this as the first step but NOT have anything committed. That way the version string is automatically generated for naming the release branch. 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.
Through a test right? |
||
- Change the `LibEVMReleaseType` to the correct release type, for example `ReleaseCandidate` | ||
- If planning a release candidate: set `libEVMReleaseCandidate` to the correct number; in this case `4` | ||
- If needed: change the `LibEVMVersionMajor`, `LibEVMVersionMinor` and `LibEVMVersionPatch` numbers | ||
- Change the `LibEVMVersion` to the correct final version string `$VERSION` (`version.libevm_test.go` will ensure that this is correctly formatted) | ||
1. Commit your modifications to [params/version.libevm.go](/params/version.libevm.go) with a commit title `chore: release v1.13.14-0.2.0.rc.4`: | ||
|
||
```bash | ||
git commit -m "chore: release $VERSION" | ||
``` | ||
|
||
1. Push your modified branch to the remote `git push -u origin $USERNAME/release/$VERSION` | ||
1. Open a pull request from your modified branch `$USERNAME/release/v1.13.14-0.2.0.rc.4` and targeting `release/v1.13.14-0.2.0.rc.4`: | ||
1. You can create the pull request for example using | ||
|
||
```bash | ||
open -a "Google Chrome" https://github.com/ava-labs/libevm/compare/release/$VERSION...$USERNAME/release/$VERSION | ||
``` | ||
|
||
1. Set the title of the pull request to | ||
|
||
```txt | ||
chore: release `v1.13.14-0.2.0.rc.4` | ||
``` | ||
|
||
1. Wait for all the checks to pass on the pull request | ||
1. Fast forward merge your branch in the release branch: | ||
|
||
```bash | ||
git checkout "release/$VERSION" | ||
git merge --ff-only "$USERNAME/release/$VERSION" | ||
git push | ||
``` | ||
|
||
This will also close the ongoing pull request. | ||
1. Finally create your tag and push it using the release branch: | ||
|
||
```bash | ||
git tag "$VERSION" | ||
git push origin "$VERSION" | ||
``` | ||
|
||
1. (optional) you can then cleanup with: | ||
|
||
```bash | ||
git branch -D "release/$VERSION" "$USERNAME/release/$VERSION" | ||
git push -d origin "$USERNAME/release/$VERSION" | ||
``` |
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.
Change to GH_USER or it conflicts with OSX
$USERNAME