doc(release): Update release template for Docker releases (#5193)

* Explain how to use the release template

I always have to look this up every time.

Also delete a long description of semantic versioning.

* Delete extra info that is already in the template elsewhere

* Explain how `Cargo.lock` gets updated

* Use a branch name that Google Cloud will accept

* Update release instructions for Docker binaries

* Add extra release testing steps

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
This commit is contained in:
teor 2022-09-28 07:53:00 +10:00 committed by GitHub
parent 84d79ecda6
commit 99bdc8d14c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 26 additions and 6 deletions

View File

@ -28,6 +28,21 @@ Once you know which crates have changed:
- [ ] Increment the crates that have new commits since the last version update
- [ ] Increment any crates that depend on crates that have changed
- [ ] Keep a list of the crates that haven't been incremented, to include in the PR
### How to Increment Versions
Zebra follows [semantic versioning](https://semver.org).
Semantic versions look like: MAJOR`.`MINOR`.`PATCH[`-`TAG`.`PRE-RELEASE]
### Reviewing Version Bumps
Check for missed changes by going to:
`https://github.com/ZcashFoundation/zebra/tree/<commit-hash>/`
Where `<commit-hash>` is the hash of the last commit in the version bump PR.
If any Zebra or Tower crates have commit messages that are **not** a version bump, we have missed an update.
Also check for crates that depend on crates that have changed. They should get a version bump as well.
### Version Locations
@ -37,7 +52,7 @@ Once you know which versions you want to increment, you can find them in the:
- [ ] `zebra-network` protocol user agent: https://github.com/ZcashFoundation/zebra/blob/main/zebra-network/src/constants.rs
- [ ] `README.md`
- [ ] `book/src/user/install.md`
- [ ] `Cargo.lock`: automatically generated by `cargo build`
- [ ] `Cargo.lock`: run `cargo build` after updating all the `Cargo.toml`s
#### Version Tooling
@ -103,9 +118,9 @@ After you have the version increments, the updated checkpoints and the updated c
- [ ] Make sure the PR with the new checkpoint hashes is already merged.
- [ ] Push the version increments and the updated changelog into a branch
(name suggestion, example: `v1.0.0-alpha.0-release`)
(name suggestion, example: `v100-alpha0-release`)
- [ ] Create a release PR by adding `&template=release-checklist.md` to the
comparing url ([Example](https://github.com/ZcashFoundation/zebra/compare/v1.0.0-alpha.0-release?expand=1&template=release-checklist.md)).
comparing url ([Example](https://github.com/ZcashFoundation/zebra/compare/v100-alpha0-release?expand=1&template=release-checklist.md)).
- [ ] Add the list of deleted changelog entries as a comment to make reviewing easier.
- [ ] Also add the list of not-bumped crates as a comment (can use the same comment as the previous one).
- [ ] Turn on [Merge Freeze](https://www.mergefreeze.com/installations/3676/branches).
@ -126,13 +141,18 @@ After you have the version increments, the updated checkpoints and the updated c
changelog you created; starting just _after_ the title `## [Zebra ...` of
the current version being released, and ending just _before_ the title of
the previous release.
- [ ] Mark the release as 'pre-release' (until we are no longer alpha/beta)
- [ ] Publish the release
- [ ] Mark the release as 'pre-release', until it has been built and tested
- [ ] Publish the pre-release to GitHub using "Publish Release"
## Final Testing
## Build and Binary Testing
- [ ] After tagging the release, test that the exact `cargo install` command in `README.md` works
(`--git` behaves a bit differently to `--path`)
- [ ] Test that the newly built Zebra starts correctly, by running `~/.cargo/bin/zebrad`
- [ ] Wait until the [Docker binaries have been built on `main`](https://github.com/ZcashFoundation/zebra/actions/workflows/continous-integration-docker.yml), and the quick tests have passed.
(You can ignore the full sync and `lightwalletd` tests, because they take about a day to run.)
- [ ] Publish the release to GitHub by disabling 'pre-release', then clicking "Publish Release"
- [ ] Wait until [the Docker images have been published](https://github.com/ZcashFoundation/zebra/actions/workflows/release-binaries.yml)
- [ ] Turn off [Merge Freeze](https://www.mergefreeze.com/installations/3676/branches) for the whole repository
If the build fails after tagging: