Release process for the Radicle CI broker
Lars follows this process to make a release of the CI broker.
- 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
- Make sure the code in
maincan be deployed toci0and CI runs successfully for all repositories.cibtool --db ci-broker.db trigger --all
- Start a branch for the release.
git switch -c release
- Run
make, ensure it’s successful. This builds the code and runs the test suite. - Update version number in
Cargo.toml, runmake semverto verify the new version number follows semantic versioning. - Run
cargo updateto make sureCargo.lockhas the new crate version number. - Update new version in
debian/changelogas well.dch -v a.b.c-1 New version.dch -r ''
- Update
NEWS.mdbasedon what’s changed since the previous release.git log -p vA.B.C..
- Run
rad cito make sure CI runs successfully. - Commit changes.
git commit -am "chore: prepare radicle-ci-broker release A.B.C."
- Check if publishing would work.
cargo publish --dry-run
- Check
debbuilding works. Throw away results.debian/build-debrm ../*_*
- Push patch, wait for CI to succeed.
git push rad HEAD:refs/patches
- Merge patch, push merge.
git switch maingit merge releasegit push rad HEAD
- Create release tag.
git tag -sam "radicle-ci-broker release version A.B.C"vA.B.C
- Publish crate.
cargo publish
- Build
deb, import into the Radicle APT repository.debian/build-deb
- Push tag.
git push --tags rad
- Announce on Zulip in the
#annoncechannel in the topic for Radicle CI releases. IncludeNEWS.mdsnipppet for release, changing the top heading to mention “Radicle CI broker”. - Upgrade my CI nodes to new releasse.
- Update my other Radicle CI components if needed.
- Add commit of new release to upgrade tests in
ci-broker.md
# 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. Push tag.
- `git push --tags rad`
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.
1. Add commit of new release to upgrade tests in `ci-broker.md`