This MR overhauls how the release process is handled.
We now leverage release-plz to handle crate releases and CHANGELOG generation.
Proposed workflow.
Run release-pr locally: this involves running release-plz release-pr locally with a GITHUB_TOKEN (This action should ideally only be limited to repo maintainers). This should open a release PR with semver version bumps based on conventional commits prior to this PR via git cliff (handled automatically) by release-plz
Push release tag: Same as what was done before, run git tag v* locally and push the tag.
Draft Release: Draft a release for the pushed tag. The content of this release can be derived from the generated CHANGELOG from release-plz.
Publish release: Publish the draft release to trigger the release ci workflow that will now publish the crate to crates.io and run other workflows i.e update gh pages docs.
Caveats
release-plz assumes the repository follows conventional commits in order to determine whether a patch, minor or major bump is required, as well as to generate changelog content. Conventional commits are currently not enforced for this repo, we will therefore need to adopt them to allow for seamless releases. The CONTRIBUTING.md guide has been updated with this info.
What does this mean for the upcoming release. 1.2.0? We will skip step 1 (Initialize release-pr locally) of the proposed workflow since there are no historical conventional commits for release-plz to generate a CHANGELOG and bump version from.
This MR overhauls how the release process is handled.
We now leverage
release-plz
to handle crate releases and CHANGELOG generation.Proposed workflow.
release-pr
locally: this involves runningrelease-plz release-pr
locally with aGITHUB_TOKEN
(This action should ideally only be limited to repo maintainers). This should open a release PR with semver version bumps based on conventional commits prior to this PR viagit cliff
(handled automatically) byrelease-plz
git tag v*
locally and push the tag.release-plz
.crates.io
and run other workflows i.e update gh pages docs.Caveats
release-plz
assumes the repository follows conventional commits in order to determine whether apatch
,minor
ormajor
bump is required, as well as to generate changelog content. Conventional commits are currently not enforced for this repo, we will therefore need to adopt them to allow for seamless releases. TheCONTRIBUTING.md
guide has been updated with this info.1.2.0
? We will skip step 1 (Initializerelease-pr
locally) of the proposed workflow since there are no historical conventional commits forrelease-plz
to generate a CHANGELOG and bump version from.