Release Process#
mmap-guard uses an automated release pipeline with release-plz and git-cliff for changelog generation.
How It Works#
- Commits land on
mainβ via merged PRs - release-plz analyzes commits β only
feat,fix,refactor,perftrigger a version bump - Release PR is created β with version bump and generated CHANGELOG
- Mergify auto-merges the release PR after DCO check passes
- release-plz creates a git tag and publishes to crates.io
Changelog Generation#
Changelogs are generated by git-cliff using conventional commits. Commit types map to sections:
| Commit prefix | Changelog section |
|---|---|
feat | Features |
fix | Bug Fixes |
refactor | Refactor |
perf | Performance |
doc | Documentation |
test | Testing |
chore, ci | Miscellaneous Tasks |
Dependency updates (chore(deps)) and merge commits are excluded.
Manual Release Commands#
For local verification:
# Dry run β see what would happen
just release-dry-run
# Generate changelog preview
just changelog
# Specific version bumps (rarely needed β release-plz handles this)
just release-patch
just release-minor
just release-major
Security Auditing#
Releases are protected by automated security checks:
- cargo-audit β runs daily and on dependency changes
- cargo-deny β checks licenses, bans, advisories, sources
- OSSF Scorecard β supply-chain security assessment