Accepted
The project needs automated version management that:
- Eliminates manual version bumping
- Generates changelogs automatically
- Triggers releases based on commit content
- Integrates with CI/CD pipelines
Adopt python-semantic-release with Conventional Commits specification.
feat: description→ Minor version bump (0.1.0 → 0.2.0)fix: description→ Patch version bump (0.1.0 → 0.1.1)feat!: descriptionorBREAKING CHANGE:→ Major bump (0.1.0 → 1.0.0)chore:,docs:,style:,refactor:,test:→ No release
Single source of truth: pyproject.toml:project.version
- Push to
mainwith conventional commit - semantic-release analyzes commits since last tag
- If releasable commits found: bump version, create tag, create GitHub Release
- Downstream jobs (Docker build) trigger on new release
- Positive: Fully automated releases, consistent versioning, auto-generated changelogs
- Negative: Requires commit message discipline (enforced by PR workflow)
- Tradeoff: Chose
upload_to_pypi = falseinitially (MCP servers distributed via Docker)