ci: Use release-plz for automated changelog generation and publication
#735
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Setups
release-plzto run on each push tomaster.This has two different flows:
Release PR (disabled until after the
0.8.0release)When a PR is merged, it analyses all the commits since the last release and creates a draft PR with the automatically generated changelog. Commits are grouped into categories using conventional commit tags (see #734). I ported the existing
RELEASES.rstto markdown, so updates can be done from there.It also runs
cargo-semver-checksto decide if the next release should be a semver-breaking bump, and updates the package version.Any merged PR marked as breaking (#734) will also cause a breaking version bump.
Package publication
When a change is merged that bumps the package version
release-plzwill create a new github release with the appropriate changelog and a list of contributors, and push the new version to crates.io.(I haven't yet added the crates token, will do once we verify this action is correctly configured, before the new release gets merged).
drive-by: cherry-pick new clippy lint fixes from #753