Skip to content

Commit 1cc49ae

Browse files
sync: coreth PR #1108: update releasing README.md with version prep instructions (#1682)
Signed-off-by: Jonathan Oppenheimer <147infiniti@gmail.com> Co-authored-by: Michael Kaplan <55204436+michaelkaplan13@users.noreply.github.com>
1 parent 00113a6 commit 1cc49ae

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

docs/releasing/README.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,3 +380,50 @@ Following the previous example in the [Release candidate section](#release-candi
380380
1. Enter the tag name `$VERSION` (i.e. `v0.7.3`)
381381
4. Monitor the [Publish Docker image workflow](https://github.com/ava-labs/subnet-evm/actions/workflows/publish_docker.yml) succeeds. Note this workflow is triggered when pushing the tag, unlike Goreleaser which triggers when publishing the release.
382382
5. Finally, [create a release for precompile-evm](https://github.com/ava-labs/precompile-evm/blob/main/docs/releasing/README.md)
383+
384+
### Post-release
385+
After you have successfully released a new subnet-evm version, you need to bump all of the versions again in preperation for the next release. Note that the release here is not final, and will be reassessed, and possibly changer prior to release. Some releases require a major version update, but this will usually be `$VERSION` + `0.0.1`. For example:
386+
```bash
387+
export P_VERSION=v0.7.4
388+
```
389+
1. Create a branch, from the tip of the `master` branch after the release PR has been merged:
390+
```bash
391+
git fetch origin master:master
392+
git checkout master
393+
git checkout -b "prep-$P_VERSION-release"
394+
```
395+
1. Bump the version number to the next pending release version, `$P_VERSION`
396+
- Update the [RELEASES.md](../../RELEASES.md) file with `$P_VERSION`, creating a space for maintainers to place their changes as they make them.
397+
- Modify the [plugin/evm/version.go](../../plugin/evm/version.go) `Version` global string variable and set it to `$P_VERSION`.
398+
1. Add an entry in the object in [compatibility.json](../../compatibility.json), adding the next pending release versionas key and the AvalancheGo RPC chain VM protocol version as value, to the `"rpcChainVMProtocolVersion"` JSON object. For example, we would add:
399+
400+
```json
401+
"v0.7.4": 39,
402+
```
403+
404+
💁 If you are unsure about the RPC chain VM protocol version, set the version to `0`, for example `"v0.7.4": 0`, and then run:
405+
406+
```bash
407+
go test -run ^TestCompatibility$ github.com/ava-labs/subnet-evm/plugin/evm
408+
```
409+
410+
This will fail with an error similar to:
411+
412+
```text
413+
compatibility.json has subnet-evm version v0.7.4 stated as compatible with RPC chain VM protocol version 0 but AvalancheGo protocol version is 39
414+
```
415+
416+
This message can help you figure out what the correct RPC chain VM protocol version (here `39`) has to be in compatibility.json for your current release. Alternatively, you can refer to the [Avalanchego repository `version/compatibility.json` file](https://github.com/ava-labs/avalanchego/blob/main/version/compatibility.json) to find the RPC chain VM protocol version matching the AvalancheGo version we use here.
417+
1. Create a pull request (PR) from your branch targeting master, for example using [`gh`](https://cli.github.com/):
418+
```bash
419+
gh pr create --repo github.com/ava-labs/subnet-evm --base master --title "chore: prep next release $P_VERSION"
420+
```
421+
1. Wait for the PR checks to pass with
422+
```bash
423+
gh pr checks --watch
424+
```
425+
1. Squash and merge your branch into `master`, for example:
426+
```bash
427+
gh pr merge "prep-$P_VERSION-release" --squash --subject "chore: prep next release $P_VERSION"
428+
```
429+
1. Pat yourself on the back for a job well done.

0 commit comments

Comments
 (0)