From a080b83d5855af5752b8a910cd47f8b06304086f Mon Sep 17 00:00:00 2001 From: Quentin Mc Gaw Date: Wed, 26 Mar 2025 10:41:38 +0100 Subject: [PATCH 01/16] docs(libevm/tooling/release): add readme --- libevm/tooling/release/README.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 libevm/tooling/release/README.md diff --git a/libevm/tooling/release/README.md b/libevm/tooling/release/README.md new file mode 100644 index 000000000000..e73aa9229e22 --- /dev/null +++ b/libevm/tooling/release/README.md @@ -0,0 +1,26 @@ +# Release + +In the following, we create a release candidate tag `v1.13.14-0.2.0.rc.4`. + +1. Create two branches, usually from the `main` branch: + + ```bash + git fetch origin main:main + git checkout main + git checkout -b release/v1.13.14-0.2.0.rc.4 + git push -u origin release/v1.13.14-0.2.0.rc.4 + git checkout -b myusername/release/v1.13.14-0.2.0.rc.4 + git push -u origin myusername/release/v1.13.14-0.2.0.rc.4 + ``` + + The `myusername/release/v1.13.14-0.2.0.rc.4` branch will be used to add "release modifications" and will target the branch `release/v1.13.14-0.2.0.rc.4` in a pull request. +1. Run script `./cherrypick.sh` which cherry picks all Geth commits listed in [cherrypicks](cherrypicks) + - you may have to resolve conflicts +1. Modify [params/version.libevm.go](/params/version.libevm.go) + - Change the `LibEVMVersion` to the correct final version name + - 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 +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`. +1. Push your modified branch to the remote `git push` +1. Open a pull request from your modified branch `myusername/release/v1.13.14-0.2.0.rc.4` and targeting `release/v1.13.14-0.2.0.rc.4`, for example with `https://github.com/ava-labs/libevm/compare/release/v1.13.14-0.2.0.rc.4...myusername/release/v1.13.14-0.2.0.rc.4?expand=1`. Set the tile to "chore: release `v1.13.14-0.2.0.rc.4`" From 92023af95db0275b0c0a85959d648125f74ee8da Mon Sep 17 00:00:00 2001 From: Quentin Mc Gaw Date: Wed, 26 Mar 2025 10:42:55 +0100 Subject: [PATCH 02/16] Refer tooling/release in main readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0f18436b40f6..2806a35677d9 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ with `geth`. We are immensely grateful for the hard work of the `geth` authors, and hope that our contribution can be of value to others too. Thank you! +If you want to create a release, please refer to [libevm/tooling/release](libevm/tooling/release) + ## Go Ethereum Golang execution layer implementation of the Ethereum protocol. From c4b262fd3d11fb47208749fe0927d3847c0fed97 Mon Sep 17 00:00:00 2001 From: Quentin Mc Gaw Date: Wed, 26 Mar 2025 13:33:16 +0100 Subject: [PATCH 03/16] Add more steps --- libevm/tooling/release/README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/libevm/tooling/release/README.md b/libevm/tooling/release/README.md index e73aa9229e22..6817e3780768 100644 --- a/libevm/tooling/release/README.md +++ b/libevm/tooling/release/README.md @@ -24,3 +24,26 @@ In the following, we create a release candidate tag `v1.13.14-0.2.0.rc.4`. 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`. 1. Push your modified branch to the remote `git push` 1. Open a pull request from your modified branch `myusername/release/v1.13.14-0.2.0.rc.4` and targeting `release/v1.13.14-0.2.0.rc.4`, for example with `https://github.com/ava-labs/libevm/compare/release/v1.13.14-0.2.0.rc.4...myusername/release/v1.13.14-0.2.0.rc.4?expand=1`. Set the tile to "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/v1.13.14-0.2.0.rc.4 + git merge --ff-only myusername/release/v1.13.14-0.2.0.rc.4 + 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 v1.13.14-0.2.0.rc.4 + git push v1.13.14-0.2.0.rc.4 + ``` + +1. (optional) you can then cleanup with: + + ```bash + git branch -D release/v1.13.14-0.2.0.rc.4 myusername/release/v1.13.14-0.2.0.rc.4 + git push -d origin myusername/release/v1.13.14-0.2.0.rc.4 + ``` From c42928b1aaa27c01a00eb45a5c7f84dd99a2e31d Mon Sep 17 00:00:00 2001 From: Quentin Mc Gaw Date: Wed, 26 Mar 2025 13:35:09 +0100 Subject: [PATCH 04/16] Fix tag push git command --- libevm/tooling/release/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libevm/tooling/release/README.md b/libevm/tooling/release/README.md index 6817e3780768..19a52bcff6d2 100644 --- a/libevm/tooling/release/README.md +++ b/libevm/tooling/release/README.md @@ -38,7 +38,7 @@ In the following, we create a release candidate tag `v1.13.14-0.2.0.rc.4`. ```bash git tag v1.13.14-0.2.0.rc.4 - git push v1.13.14-0.2.0.rc.4 + git push origin v1.13.14-0.2.0.rc.4 ``` 1. (optional) you can then cleanup with: From b0ca643c2728802a3fc3806c1cc82a6b6cbcb2d0 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Fri, 28 Mar 2025 08:08:18 +0100 Subject: [PATCH 05/16] Add details to step 1. Co-authored-by: Arran Schlosberg <519948+ARR4N@users.noreply.github.com> Signed-off-by: Quentin McGaw --- libevm/tooling/release/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libevm/tooling/release/README.md b/libevm/tooling/release/README.md index 19a52bcff6d2..5b3b424b49af 100644 --- a/libevm/tooling/release/README.md +++ b/libevm/tooling/release/README.md @@ -2,7 +2,7 @@ In the following, we create a release candidate tag `v1.13.14-0.2.0.rc.4`. -1. Create two branches, usually from the `main` branch: +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 From 2a0aa1dddbb55828705a1f6074698cbf97f34ed3 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Fri, 28 Mar 2025 08:09:21 +0100 Subject: [PATCH 06/16] Simplify step 2 to be a single line Co-authored-by: Arran Schlosberg <519948+ARR4N@users.noreply.github.com> Signed-off-by: Quentin McGaw --- libevm/tooling/release/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libevm/tooling/release/README.md b/libevm/tooling/release/README.md index 5b3b424b49af..9f88b5f467e1 100644 --- a/libevm/tooling/release/README.md +++ b/libevm/tooling/release/README.md @@ -14,8 +14,7 @@ In the following, we create a release candidate tag `v1.13.14-0.2.0.rc.4`. ``` The `myusername/release/v1.13.14-0.2.0.rc.4` branch will be used to add "release modifications" and will target the branch `release/v1.13.14-0.2.0.rc.4` in a pull request. -1. Run script `./cherrypick.sh` which cherry picks all Geth commits listed in [cherrypicks](cherrypicks) - - you may have to resolve conflicts +1. Run the script `./cherrypick.sh` which cherry picks all Geth commits listed in [cherrypicks](cherrypicks). You may have to resolve conflicts. 1. Modify [params/version.libevm.go](/params/version.libevm.go) - Change the `LibEVMVersion` to the correct final version name - Change the `LibEVMReleaseType` to the correct release type, for example `ReleaseCandidate` From 3b326a3070ea3a83389601abf0a36c3af6cb6a21 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Fri, 28 Mar 2025 08:13:23 +0100 Subject: [PATCH 07/16] Change tag to version in introduction Co-authored-by: Arran Schlosberg <519948+ARR4N@users.noreply.github.com> Signed-off-by: Quentin McGaw --- libevm/tooling/release/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libevm/tooling/release/README.md b/libevm/tooling/release/README.md index 9f88b5f467e1..e2974a49026c 100644 --- a/libevm/tooling/release/README.md +++ b/libevm/tooling/release/README.md @@ -1,6 +1,6 @@ # Release -In the following, we create a release candidate tag `v1.13.14-0.2.0.rc.4`. +In the following, we create a release candidate version `v1.13.14-0.2.0.rc.4`. 1. Create two branches, usually from the tip of the `main` branch, but the base commit MAY be from anywhere on `main`: From 8f400ec3ad5167c4c0a5ad7aab34bac4d171ca20 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Fri, 28 Mar 2025 08:16:10 +0100 Subject: [PATCH 08/16] Simplify README.md reference to release creation document Co-authored-by: Arran Schlosberg <519948+ARR4N@users.noreply.github.com> Signed-off-by: Quentin McGaw --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2806a35677d9..d4a88667b299 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ with `geth`. We are immensely grateful for the hard work of the `geth` authors, and hope that our contribution can be of value to others too. Thank you! -If you want to create a release, please refer to [libevm/tooling/release](libevm/tooling/release) +To create a release, please refer to [libevm/tooling/release](libevm/tooling/release). ## Go Ethereum From ab8fbb17e9b351f855eb340433c6d55092acc4ee Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Fri, 28 Mar 2025 08:17:16 +0100 Subject: [PATCH 09/16] Precise unit test checks the version string is correct Co-authored-by: Arran Schlosberg <519948+ARR4N@users.noreply.github.com> Signed-off-by: Quentin McGaw --- libevm/tooling/release/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libevm/tooling/release/README.md b/libevm/tooling/release/README.md index e2974a49026c..7de0df075a2d 100644 --- a/libevm/tooling/release/README.md +++ b/libevm/tooling/release/README.md @@ -16,7 +16,7 @@ In the following, we create a release candidate version `v1.13.14-0.2.0.rc.4`. The `myusername/release/v1.13.14-0.2.0.rc.4` branch will be used to add "release modifications" and will target the branch `release/v1.13.14-0.2.0.rc.4` 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. 1. Modify [params/version.libevm.go](/params/version.libevm.go) - - Change the `LibEVMVersion` to the correct final version name + - Change the `LibEVMVersion` to the correct final version string (`version.libevm_test.go` will ensure that this is correctly formatted) - 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 From 8285be75778dd3acb7b257497f70090c730293d5 Mon Sep 17 00:00:00 2001 From: Quentin Mc Gaw Date: Fri, 28 Mar 2025 08:10:58 +0100 Subject: [PATCH 10/16] Move remote push of branch from step 1 to step 5 --- libevm/tooling/release/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libevm/tooling/release/README.md b/libevm/tooling/release/README.md index 7de0df075a2d..ce9d09867640 100644 --- a/libevm/tooling/release/README.md +++ b/libevm/tooling/release/README.md @@ -10,7 +10,6 @@ In the following, we create a release candidate version `v1.13.14-0.2.0.rc.4`. git checkout -b release/v1.13.14-0.2.0.rc.4 git push -u origin release/v1.13.14-0.2.0.rc.4 git checkout -b myusername/release/v1.13.14-0.2.0.rc.4 - git push -u origin myusername/release/v1.13.14-0.2.0.rc.4 ``` The `myusername/release/v1.13.14-0.2.0.rc.4` branch will be used to add "release modifications" and will target the branch `release/v1.13.14-0.2.0.rc.4` in a pull request. @@ -21,7 +20,7 @@ In the following, we create a release candidate version `v1.13.14-0.2.0.rc.4`. - If planning a release candidate: set `libEVMReleaseCandidate` to the correct number; in this case `4` - If needed: change the `LibEVMVersionMajor`, `LibEVMVersionMinor` and `LibEVMVersionPatch` numbers 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`. -1. Push your modified branch to the remote `git push` +1. Push your modified branch to the remote `git push -u origin myusername/release/v1.13.14-0.2.0.rc.4` 1. Open a pull request from your modified branch `myusername/release/v1.13.14-0.2.0.rc.4` and targeting `release/v1.13.14-0.2.0.rc.4`, for example with `https://github.com/ava-labs/libevm/compare/release/v1.13.14-0.2.0.rc.4...myusername/release/v1.13.14-0.2.0.rc.4?expand=1`. Set the tile to "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: From de4b8b2876dbaa2c103fc4329276e61e218cf938 Mon Sep 17 00:00:00 2001 From: Quentin Mc Gaw Date: Fri, 28 Mar 2025 08:18:36 +0100 Subject: [PATCH 11/16] typo fix --- libevm/tooling/release/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libevm/tooling/release/README.md b/libevm/tooling/release/README.md index ce9d09867640..e4de0286cbbd 100644 --- a/libevm/tooling/release/README.md +++ b/libevm/tooling/release/README.md @@ -21,7 +21,7 @@ In the following, we create a release candidate version `v1.13.14-0.2.0.rc.4`. - If needed: change the `LibEVMVersionMajor`, `LibEVMVersionMinor` and `LibEVMVersionPatch` numbers 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`. 1. Push your modified branch to the remote `git push -u origin myusername/release/v1.13.14-0.2.0.rc.4` -1. Open a pull request from your modified branch `myusername/release/v1.13.14-0.2.0.rc.4` and targeting `release/v1.13.14-0.2.0.rc.4`, for example with `https://github.com/ava-labs/libevm/compare/release/v1.13.14-0.2.0.rc.4...myusername/release/v1.13.14-0.2.0.rc.4?expand=1`. Set the tile to "chore: release `v1.13.14-0.2.0.rc.4`" +1. Open a pull request from your modified branch `myusername/release/v1.13.14-0.2.0.rc.4` and targeting `release/v1.13.14-0.2.0.rc.4`, for example with `https://github.com/ava-labs/libevm/compare/release/v1.13.14-0.2.0.rc.4...myusername/release/v1.13.14-0.2.0.rc.4?expand=1`. Set the title to "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: From f28b610a83becebde67a5f9d2b02e4d3155fabda Mon Sep 17 00:00:00 2001 From: Quentin Mc Gaw Date: Fri, 28 Mar 2025 08:19:53 +0100 Subject: [PATCH 12/16] Move LibEVMVersion setting as last bullet point --- libevm/tooling/release/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libevm/tooling/release/README.md b/libevm/tooling/release/README.md index e4de0286cbbd..f74b895b5023 100644 --- a/libevm/tooling/release/README.md +++ b/libevm/tooling/release/README.md @@ -15,10 +15,10 @@ In the following, we create a release candidate version `v1.13.14-0.2.0.rc.4`. The `myusername/release/v1.13.14-0.2.0.rc.4` branch will be used to add "release modifications" and will target the branch `release/v1.13.14-0.2.0.rc.4` 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. 1. Modify [params/version.libevm.go](/params/version.libevm.go) - - Change the `LibEVMVersion` to the correct final version string (`version.libevm_test.go` will ensure that this is correctly formatted) - 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.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`. 1. Push your modified branch to the remote `git push -u origin myusername/release/v1.13.14-0.2.0.rc.4` 1. Open a pull request from your modified branch `myusername/release/v1.13.14-0.2.0.rc.4` and targeting `release/v1.13.14-0.2.0.rc.4`, for example with `https://github.com/ava-labs/libevm/compare/release/v1.13.14-0.2.0.rc.4...myusername/release/v1.13.14-0.2.0.rc.4?expand=1`. Set the title to "chore: release `v1.13.14-0.2.0.rc.4`" From 2b57993a02f344466f0b1f9c64d270107ebd6c52 Mon Sep 17 00:00:00 2001 From: Quentin Mc Gaw Date: Fri, 28 Mar 2025 08:23:41 +0100 Subject: [PATCH 13/16] Add you should amend commits responsible for CI errors --- libevm/tooling/release/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libevm/tooling/release/README.md b/libevm/tooling/release/README.md index f74b895b5023..5b735da41a63 100644 --- a/libevm/tooling/release/README.md +++ b/libevm/tooling/release/README.md @@ -13,7 +13,7 @@ In the following, we create a release candidate version `v1.13.14-0.2.0.rc.4`. ``` The `myusername/release/v1.13.14-0.2.0.rc.4` branch will be used to add "release modifications" and will target the branch `release/v1.13.14-0.2.0.rc.4` 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. +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) - 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` From 06b95ab9515e16ee8e5ea6b4793b38716d5dc7ba Mon Sep 17 00:00:00 2001 From: Quentin Mc Gaw Date: Fri, 28 Mar 2025 08:34:09 +0100 Subject: [PATCH 14/16] Use variables USERNAME and VERSION --- libevm/tooling/release/README.md | 52 +++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/libevm/tooling/release/README.md b/libevm/tooling/release/README.md index 5b735da41a63..0818e10ffec7 100644 --- a/libevm/tooling/release/README.md +++ b/libevm/tooling/release/README.md @@ -1,33 +1,55 @@ # Release -In the following, we create a release candidate version `v1.13.14-0.2.0.rc.4`. +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/v1.13.14-0.2.0.rc.4 - git push -u origin release/v1.13.14-0.2.0.rc.4 - git checkout -b myusername/release/v1.13.14-0.2.0.rc.4 + git checkout -b "release/$VERSION" + git push -u origin "release/$VERSION" + git checkout -b "$USERNAME/release/$VERSION" ``` - The `myusername/release/v1.13.14-0.2.0.rc.4` branch will be used to add "release modifications" and will target the branch `release/v1.13.14-0.2.0.rc.4` in a pull request. + 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) - 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.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`. -1. Push your modified branch to the remote `git push -u origin myusername/release/v1.13.14-0.2.0.rc.4` -1. Open a pull request from your modified branch `myusername/release/v1.13.14-0.2.0.rc.4` and targeting `release/v1.13.14-0.2.0.rc.4`, for example with `https://github.com/ava-labs/libevm/compare/release/v1.13.14-0.2.0.rc.4...myusername/release/v1.13.14-0.2.0.rc.4?expand=1`. Set the title to "chore: release `v1.13.14-0.2.0.rc.4`" + - 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/v1.13.14-0.2.0.rc.4 - git merge --ff-only myusername/release/v1.13.14-0.2.0.rc.4 + git checkout "release/$VERSION" + git merge --ff-only "$USERNAME/release/$VERSION" git push ``` @@ -35,13 +57,13 @@ In the following, we create a release candidate version `v1.13.14-0.2.0.rc.4`. 1. Finally create your tag and push it using the release branch: ```bash - git tag v1.13.14-0.2.0.rc.4 - git push origin v1.13.14-0.2.0.rc.4 + git tag "$VERSION" + git push origin "$VERSION" ``` 1. (optional) you can then cleanup with: ```bash - git branch -D release/v1.13.14-0.2.0.rc.4 myusername/release/v1.13.14-0.2.0.rc.4 - git push -d origin myusername/release/v1.13.14-0.2.0.rc.4 + git branch -D "release/$VERSION" "$USERNAME/release/$VERSION" + git push -d origin "$USERNAME/release/$VERSION" ``` From 6cbf989f7b1edab201d7a4bb2f19c67891febf97 Mon Sep 17 00:00:00 2001 From: Quentin Mc Gaw Date: Sat, 12 Apr 2025 17:19:22 +0200 Subject: [PATCH 15/16] Add reference to LibEVMVersion godoc comment --- libevm/tooling/release/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libevm/tooling/release/README.md b/libevm/tooling/release/README.md index 0818e10ffec7..240726fae2b3 100644 --- a/libevm/tooling/release/README.md +++ b/libevm/tooling/release/README.md @@ -23,7 +23,7 @@ USERNAME=myusername - 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) + - Change the `LibEVMVersion` to the correct final version string `$VERSION` (`version.libevm_test.go` will ensure that this is correctly formatted). See the [`LibEVMVersion` comment](https://pkg.go.dev/github.com/ava-labs/libevm/params#LibEVMVersion) for more details regarding its semantics. 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 From b68391cb14d1b75927b78a36100aa0122a83547e Mon Sep 17 00:00:00 2001 From: Quentin Mc Gaw Date: Thu, 22 May 2025 16:26:05 +0200 Subject: [PATCH 16/16] Rename USERNAME to GH_USER variable --- libevm/tooling/release/README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libevm/tooling/release/README.md b/libevm/tooling/release/README.md index 240726fae2b3..1a39c2c1bfea 100644 --- a/libevm/tooling/release/README.md +++ b/libevm/tooling/release/README.md @@ -4,7 +4,7 @@ In the following, we create a release candidate version `v1.13.14-0.2.0.rc.4` an ```bash VERSION=v1.13.14-0.2.0.rc.4 -USERNAME=myusername +GH_USER=myusername ``` 1. Create two branches, usually from the tip of the `main` branch, but the base commit MAY be from anywhere on `main`: @@ -14,10 +14,10 @@ USERNAME=myusername git checkout main git checkout -b "release/$VERSION" git push -u origin "release/$VERSION" - git checkout -b "$USERNAME/release/$VERSION" + git checkout -b "$GH_USER/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. + The `$GH_USER/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) - Change the `LibEVMReleaseType` to the correct release type, for example `ReleaseCandidate` @@ -30,12 +30,12 @@ USERNAME=myusername 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. Push your modified branch to the remote `git push -u origin $GH_USER/release/$VERSION` +1. Open a pull request from your modified branch `$GH_USER/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 + open -a "Google Chrome" https://github.com/ava-labs/libevm/compare/release/$VERSION...$GH_USER/release/$VERSION ``` 1. Set the title of the pull request to @@ -49,7 +49,7 @@ USERNAME=myusername ```bash git checkout "release/$VERSION" - git merge --ff-only "$USERNAME/release/$VERSION" + git merge --ff-only "$GH_USER/release/$VERSION" git push ``` @@ -64,6 +64,6 @@ USERNAME=myusername 1. (optional) you can then cleanup with: ```bash - git branch -D "release/$VERSION" "$USERNAME/release/$VERSION" - git push -d origin "$USERNAME/release/$VERSION" + git branch -D "release/$VERSION" "$GH_USER/release/$VERSION" + git push -d origin "$GH_USER/release/$VERSION" ```