The release process for this repository leverages release-plz
to automate some of the steps. Only maintainers with the necessary permissions can release new versions of this repository.
- Install
release-plz
: One option is by runningcargo install --locked release-plz
- Checkout the latest code on
main
branch - Create a release PR:
release-plz release-pr --git-token <Github Token>
- In the Pull Request:
- Check that the new versions automatically determined by
release-plz
make sense- In the PR description, if there are API-breaking changes detected for a crate, make sure that that crate shows a major semver bump
- If no API-breaking changes are detected, conventional commits will be used to determine what type of version bump it should be. This means that
release-plz
may say there are no API-breaking changes detected, but there may still be a major version bump if the commit titles suggest there is a change that warrants it. - If the versions are not what you expect, you can manually override them by running
release-plz set-version <new semver version>
. This will update the package versions and the changelogs, but the PR description may need manual editing.
- Check that the new versions automatically determined by
- Checkout the generated release branch locally in order to:
- Update all docs to reflect new versions
- Update all
cargo-make
files to use the new versions (ex. forwdk-build
in rust-driver-makefile.toml) - Update all the example drivers and workspace-level tests to use new versions. These are not part of the same
cargo-workspace
as the rest of the crates, so they need to be updated manually. - Check that the release notes are correct and edit as needed
- Do a last sanity check of all of the example drivers (i.e. install and verify that all logs are as expected)
- Run
release-plz release --dry-run
to check that the release will be successful - Merge the release Pull Request
- Run
release-plz release
- This will release the crates to crates.io and create draft releases on Github
- Publish all the Github releases