Radish alpha
r
rad:zwTxygwuz5LDGBq255RA2CbNGrz8
Radicle CI broker
Radicle
Git
doc(RELEASE.md): write down release process
Lars Wirzenius committed 6 months ago
commit 387207e4bff86a072f02b4db516fc4996961acf3
parent f9aad66
1 file changed +49 -0
added RELEASE.md
@@ -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.