Release Process
CLI Releases: rustic-rs
/ rustic_server
/ rustic_scheduler
-
Open a Release PR: Open a release PR workflow by opening the drop down on the top right
Run workflow
. ForCrate to release
selectrustic-rs
forVersion to release
select the version you want to release with the formatX.Y.Z
(strip the ‘v’). This will create a PR with the changes needed to release the version. -
Auto-generate completions test fixtures: If the CLI API tests fail, it means this is definitely a breaking change and needs a major/minor version bump. To update the fixtures, go to the top of the just created PR and copy the branch name, it should be in the form
release/rustic-rs/X.Y.Z
. Then go to the update completions workflow. On the top right underRun workflow
, run the workflow from themain
branch and paste the just copied branch name toPR branch to push to
and clickRun workflow
. This will auto-generate the completions test fixtures for the new version, to make the tests run through. -
Generate changelog: To update the changelog, you need
git-cliff
installed. Run:git-cliff -u -p .\CHANGELOG.md -t {new_version}
. This will update the changelog with the changes since the last tag. -
Documentation: Check if the documentation needs to be updated somewhere. Take notes if there are any changes needed in the release process and update this document.
-
Review and Merge the PR: Review the PR and make sure all checks have passed. Then merge the PR.
-
Tag the release: After the PR has been merged, tag the commit on the
main
branch with the version number and push the tag to GitHub. This should make the release workflow run and crate a release for the tag and attach built artifacts to it. It will also copy the changelog to the release notes. -
Publishing to crates.io: After pushing the tag to the
main
branch runcargo publish
in the repository root. -
Publishing to GitHub: After the release workflow has finished, go to the releases page and find your release draft with the attached artifacts. Edit the release draft to your liking and publish it.
-
Write an announcement: Write an announcement for the release and post it on the rustic-rs/rustic discussions.
Library Releases: rustic_core
/ rustic_backend
-
Open a Release PR: Open a release PR workflow by opening the drop down on the top right
Run workflow
. ForCrate to release
selectrustic-rs
forVersion to release
select the version you want to release with the formatX.Y.Z
(strip the ‘v’). This will create a PR with the changes needed to release the version. -
Auto-generate Public API test fixtures: If the API tests fail, it means this is definitely a breaking change and needs a major/minor version bump. To update the fixtures, go to the top of the just created PR and copy the branch name, it should be in the form
release/rustic_core/X.Y.Z
. Then go to the update completions workflow. On the top right underRun workflow
, run the workflow from themain
branch and paste the just copied branch name toPR branch to push to
and clickRun workflow
. This will auto-generate the Public API test fixtures for the new version, to make the tests run through. -
Examples: Check if the examples need to be updated. Run documentation tests to check if the examples are still working. You can run them by running
cargo check --examples
in therustic_core
directory. -
Documentation: Check if the documentation needs to be updated somewhere. Take notes if there are any changes needed in the release process and update this document. Run documentation tests to check if the documentation is still working. You can run them by running
cargo test --doc
in therustic_core
directory. You can also view the documentation with:cargo doc --no-deps --all-features --document-private-items --open -p rustic_core
-
Generate changelog: To update the changelog, you need
git-cliff
installed. Run:git-cliff -u -p .\CHANGELOG.md -t {new_version}
. This will update the changelog with the changes since the last tag. -
Review and Merge the PR: Review the PR and make sure all checks have passed. Then merge the PR.
-
Tag the release: After the PR has been merged, tag the commit on the
main
branch with the version number and push the tag to GitHub. This should make the release workflow run and crate a release for the tag. It will also copy the changelog to the release notes. -
Publishing to crates.io: After pushing the tag to the
main
branch runcargo publish
in the repository root. -
Review the Draft Release: After the release workflow has finished, go to the releases page and find your release draft. Edit the release draft to your liking and publish it.
-
Write an announcement: Write an announcement for the release and post it on the rustic-rs/rustic discussions.