summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiko Schaefer <heiko@schaefer.name>2022-11-07 15:47:36 +0100
committerNeal H. Walfield <neal@pep.foundation>2022-11-18 19:43:30 +0100
commit263104bfb3eb175b0ad144bc6c8eab52c232da43 (patch)
tree38525d4d6377b39652b66bc049ff88c1d41889b4
parent1222c868d57322738de2f508d0b3e05f63e1199f (diff)
doc: Update the release checklist.
Co-authored-by: Neal H. Walfield <neal@pep.foundation>.
-rw-r--r--doc/release-checklist.md72
1 files changed, 45 insertions, 27 deletions
diff --git a/doc/release-checklist.md b/doc/release-checklist.md
index 68e4ed2f..a1fb9617 100644
--- a/doc/release-checklist.md
+++ b/doc/release-checklist.md
@@ -1,41 +1,59 @@
-This is a checklist for doing Sequoia releases.
+This is a checklist for doing Sequoia releases:
- 1. Starting from origin/main, create a branch XXX for the release.
- 1. For all 'Cargo.toml's: Bump version = "XXX".
- - Only do this for non-released crates and those with changes
- relative to the last released version.
- 1. For all 'Cargo.toml's: Bump intra-workspace dependencies if necessary.
+ 1. Decide which component to release, we'll call it `FOO`.
+ 1. Decide on the new version number `XXX`.
+ 1. Starting from `origin/main`, create a branch `staging` for the release.
+ 1. Bump `version = "XXX"` in `FOO/Cargo.toml`
+ 1. For all 'Cargo.toml's: Bump intra-workspace dependencies if
+ necessary.
+ - For instance, if releasing `sequoia-openpgp` and `sq` depends
+ on features that are being released, then bump the dependency
+ in `sq/Cargo.toml`.
+ 1. Run `cargo check` (this implicitly updates `Cargo.lock`)
+ 1. Commit changes to `Cargo.toml` and `Cargo.lock`.
1. Update dependencies and run tests.
- - Run 'cargo update' to update the dependencies. If some
+ - Use the exact Rust toolchain version of the current Sequoia
+ MSRV (refer to `README.md`): `rustup default 1.xx`
+ - Run `cargo update` to update the dependencies. If some
dependency is updated and breaks due to our MSRV, find a good
version of that dependency and select it using e.g. 'cargo
update -p backtrace --precise -3.46'.
- - Run 'make check'.
- - Run 'cargo run -p sequoia-openpgp --example statistics
- --release -- ../sks-dump-*.pgp' and update
- https://sequoia-pgp.org/tmp/stats.txt .
- 1. Update manpage for sqv and sq:
+ - Run 'make -f .Makefile check'.
+ 1. If releasing `sequoia-openpgp`, update
+ https://sequoia-pgp.org/tmp/stats.txt by running:
+ - `cargo run -p sequoia-openpgp --example statistics --release -- .../sks-dump-*.pgp > /tmp/stats.txt`
+ - `cp /tmp/stats.txt sequoia@sequoia-pgp.org:sequoia-pgp.org/tmp`
+ 1. If releasing sq, update the manpage:
- Clone https://gitlab.com/sequoia-pgp/manpage-maker to a
separate location.
- Add symlinks and run as described in the manpage-maker's readme
- - Copy man-sqv/sqv.1 to sequoia/sqv/man-sqv/sqv.1
- Copy man-sq*/*.1 to sequoia/sq/man-sq*
- Make a commit with the message "sq, sqv: Update manpage."
- 1. Make a commit with the message "component: Release XXX.".
- - Push this to gitlab, and create a merge request.
- 1. Make a tag component/vXXX with the message "component: Release
- XXX." signed with an offline-key.
- 1. Make a clean clone of the repository.
- 1. For the crate to be published, cd into the directory, and do
- 'cargo publish'.
- 1. In case of errors, correct them, and go back to the step creating
+ 1. Make a commit with the message `FOO: Release XXX.`.
+ - Push this to gitlab as `staging`, create a merge
+ request, wait for CI.
+ 1. Make sure `cargo publish` works:
+ - `mkdir /tmp/sequoia-staging`
+ - `cd /tmp/sequoia-staging`
+ - `git clone git@gitlab.com:sequoia-pgp/sequoia.git`
+ - `cd sequoia`
+ - `git checkout origin/staging`
+ - `cargo publish -p FOO --dry-run`
+ 1. Wait until CI and `cargo publish -p FOO --dry-run` are successful. In
+ case of errors, correct them, and go back to the step creating
the release commit.
- 1. Merge the branch to main by merging the merge request created in
- step 6, push the tag.
- 1. Make a source distribution, put it on
- https://sequoia-pgp.org/dist/, collect and merge signatures.
- 1. Regenerate docs.sequoia-pgp.org.
+ 1. Merge the merge request
+ 1. Run `cargo publish -p FOO`
+ 1. Make a tag `FOO/vXXX` with the message `FOO: Release XXX.` signed
+ with an offline key, which has been certified by our
+ `openpgp-ca@sequoia-pgp.org` key.
+ 1. Push the signed tag `FOO/vXXX`.
+ 1. Regenerate `docs.sequoia-pgp.org`.
+ - `cd /tmp/sequoia-staging`
+ - `git clone git@gitlab.com:sequoia-pgp/docs.sequoia-pgp.org.git`
+ - `cd docs.sequoia-pgp.org`
+ - `make deploy`
1. Announce the release.
- IRC
- - mailing list
+ - mailing list (`devel@lists.sequoia-pgp.org`)
- web site