Description
Set up automated and manual version management for the project.
Automated: semantic-release
Configure semantic-release to run in CI on every push to main. It analyzes commit messages and automatically:
- Determines the next version from conventional commits
- Updates
pyproject.toml version
- Generates/updates
CHANGELOG.md
- Creates a git tag and GitHub release
Release rules:
feat: → minor bump
fix:, perf:, refactor:, tooling: → patch bump
BREAKING CHANGE: in commit body → major bump
docs:, style:, test:, ci:, chore: → no release
Manual override: make bump
Keep make bump as a fallback for forcing a specific version:
make bump # patch: v1.0.0 → v1.0.1
make bump PART=minor # minor: v1.0.1 → v1.1.0
make bump PART=major # major: v1.1.0 → v2.0.0
Safety checks: must be on main with clean working tree.
Acceptance criteria
Related
Description
Set up automated and manual version management for the project.
Automated: semantic-release
Configure semantic-release to run in CI on every push to
main. It analyzes commit messages and automatically:pyproject.tomlversionCHANGELOG.mdRelease rules:
feat:→ minor bumpfix:,perf:,refactor:,tooling:→ patch bumpBREAKING CHANGE:in commit body → major bumpdocs:,style:,test:,ci:,chore:→ no releaseManual override: make bump
Keep
make bumpas a fallback for forcing a specific version:Safety checks: must be on
mainwith clean working tree.Acceptance criteria
.releaserc.json).github/workflows/release.ymlmake bumpworks with PART=patch (default), minor, majorRelated