Release workflow¶
Cut a new stax release with an auto-generated changelog entry.
make release # defaults to a minor bump
make release LEVEL=patch # patch bump
make release LEVEL=major # major bump
During cargo release's pre-release hook, the workflow rebuilds the upcoming release entry in CHANGELOG.md from commits since the latest v<major>.<minor>.<patch> tag, refreshes the compare links, and leaves a fresh empty Unreleased header at the top.
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 before cargo release commits the version bump — 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=patch,LEVEL=minor, orLEVEL=majorto control the semver bump.- For a dry run, invoke
cargo release <level> --no-confirmdirectly without--execute; the hook seesDRY_RUN=trueand leavesCHANGELOG.mduntouched.