Skip to content

tooling: Add version management (semantic-release + make bump). #236

@nedseb

Description

@nedseb

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

  • semantic-release configured (.releaserc.json)
  • CI workflow .github/workflows/release.yml
  • make bump works with PART=patch (default), minor, major
  • Safety checks prevent bump on dirty tree or wrong branch
  • pyproject.toml version updated automatically
  • Document in CONTRIBUTING.md

Related

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions