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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions