From 99bdc8d14c71a63211d199d47949b0a6ef9a85ee Mon Sep 17 00:00:00 2001 From: teor Date: Wed, 28 Sep 2022 07:53:00 +1000 Subject: [PATCH] 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 --- .../release-checklist.md | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE/release-checklist.md b/.github/PULL_REQUEST_TEMPLATE/release-checklist.md index 9bbd79b7d..4ca3906da 100644 --- a/.github/PULL_REQUEST_TEMPLATE/release-checklist.md +++ b/.github/PULL_REQUEST_TEMPLATE/release-checklist.md @@ -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//` +Where `` 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: