doc(RELEASE.md): write down release process

This is what I've been doing. It may need optimization, but that's
easier once the process is written down.
This commit is contained in:
Lars Wirzenius
2025-10-08 08:19:28 +03:00
parent f9aad668be
commit 387207e4bf
+49
View File
@@ -0,0 +1,49 @@
# Release process for the Radicle CI broker
Lars follows this process to make a release of the CI broker.
1. Make sure all the changes needed for the release have been made.
- check open issues for anything urgent
- check open patches for anything that should be included
- check Zulip discussions for anything not captured in issues
1. Make sure the code in `main` can be deployed to `ci0` and CI runs
successfully for all repositories.
- `cibtool --db ci-broker.db trigger --all`
1. Start a branch for the release.
- `git switch -c release`
1. Run `make`, ensure it's successful. This builds the code and runs
the test suite.
1. Update version number in `Cargo.toml`, run `make semver` to verify
the new version number follows semantic versioning.
1. Run `cargo update` to make sure `Cargo.lock` has the new crate version
number.
1. Update new version in `debian/changelog` as well.
- `dch -v a.b.c-1 New version.`
- `dch -r ''`
1. Update `NEWS.md` basedon what's changed since the previous release.
- `git log -p vA.B.C..`
1. Run `rad ci` to make sure CI runs successfully.
1. Commit changes.
- `git commit -am "chore: prepare radicle-ci-broker release A.B.C."`
1. Check if publishing would work.
- `cargo publish --dry-run`
1. Check `deb` building works. Throw away results.
- `debian/build-deb`
- `rm ../*_*`
1. Push patch, wait for CI to succeed.
- `git push rad HEAD:refs/patches`
1. Merge patch, push merge.
- `git switch main`
- `git merge release`
- `git push rad HEAD`
1. Create release tag.
- `git tag -sam "radicle-ci-broker release version A.B.C"` vA.B.C
1. Publish crate.
- `cargo publish`
1. Build `deb`, import into the Radicle APT repository.
- `debian/build-deb`
1. Announce on Zulip in the `#annonce` channel in the topic for Radicle CI
releases. Include `NEWS.md` snipppet for release, changing the top heading
to mention "Radicle CI broker".
1. Upgrade my CI nodes to new releasse.
1. Update my other Radicle CI components if needed.