Release process is entirely manual
I keep forgetting to make a tag, or to push it.
I’d offer to help write a pipeline that runs on the Concourse CI setup instance I’m running for Radicle.
Alas, the way I do releases isn't doable in CI. There's manual steps that can't be updated, e.g., updating release notes. But I can script the parts that can be automated and run the script locally, and I think that'll be good enough.
Rough release process, right now:
- Update
NEWS.mdbased on changes since the previous release. - Make sure
makepasses correctly. - Run
cargo msrv findto figure out what the next version number should be. - Update version in
Cargo.tomlanddebian/changelog. - Make sure everything is committed.
- Run
cargo publish --dry-runthen fix any problems it finds. - Create a signed git tag for the release.
- Run
cargo publish. - Announce new release on Zulip.
After the release:
- Add new release commit to the upgrade test and drop any releases that are no longer needed.
- If needed, update and release any dependent Radicle CI components.
I've started automating the mechanical steps in a new tool, unperish, https://app.radicle.xyz/nodes/radicle.liw.fi/rad%3Az38NiGQiDgKqP7BK6kazjU5ooUuEm