Release workflow¶
Cut a new stax release with an auto-generated changelog entry.
make release # defaults to a minor bump
make release LEVEL=patch
just release-patch
just release-minor
just release-major
Before cargo release runs, the workflow regenerates the Unreleased section of CHANGELOG.md from commits since the latest v<major>.<minor>.<patch> tag.
What gets generated¶
| Commit prefix | Section |
|---|---|
feat: (and related) |
### Added |
fix: |
### Fixed |
docs: |
### Documentation |
| anything else | ### Changed |
The generator strips the conventional-commit prefix, keeps PR references like (#123), and overwrites any stale manual Unreleased body — the release target stays deterministic.
Failure mode¶
If no non-merge commits exist since the last version tag, release prep fails with No commits found since last tag and the release stops before cargo release would create an empty version entry.
Notes¶
make releasedefaults to a minor bump. UseLEVEL=patchor thejust release-*targets to control the semver bump.release-dryis a plaincargo releasedry run and does not rewrite the changelog.