Version Management¶
Automated semantic versioning via conventional commits and GitHub Actions.
Overview¶
- Conventional commits determine version bumps
- GitHub Actions calculate and apply versions
bump-my-versionupdates all filesinternal/version/VERSIONis the single source of truth
Conventional Commits¶
| Type | Bump | Example |
|---|---|---|
feat: |
Minor (0.1.0 → 0.2.0) | feat: add Python integration |
fix: |
Patch (0.1.0 → 0.1.1) | fix: handle empty manifests |
feat!: or BREAKING CHANGE: |
Major (0.1.0 → 1.0.0) | feat!: redesign API |
docs:, chore:, test: |
None | docs: update README |
Format: <type>(<scope>): <subject>
Breaking changes: Use feat!: or add BREAKING CHANGE: footer
Local Development¶
# Show current version
mise run version-show
# Bump for testing only (don't commit to PRs)
mise run version-bump-patch # 0.1.0 → 0.1.1
mise run version-bump-minor # 0.1.0 → 0.2.0
mise run version-bump-major # 0.1.0 → 1.0.0
Production releases are automated via GitHub Actions.
Release Process¶
Pre-Release¶
- Maintainer triggers pre-release workflow
- System calculates version from commits
- Approval gate (designated reviewers)
- Creates pre-release (e.g.,
v0.2.0-rc1,v0.2.0-beta3,v0.2.0-alpha20250708) - Builds artifacts
Stable Release¶
- Maintainer triggers promote workflow
- Extracts stable version (
v0.2.0-rc1→v0.2.0) - Approval gate (multiple reviewers)
- Promotes artifacts
- Updates CHANGELOG
See environments.md for approval gate setup.
Version Tags¶
Immutable (never change):
- Stable:
v0.1.0,v0.2.0,v1.13.0 - Pre-release:
v0.2.0-rc1,v1.0.0-beta3,v1.13.0-alpha20250708
Mutable (auto-updated for GitHub Actions):
v0→ latestv0.x.xstablev0.1→ latestv0.1.xpatchv0-rc,v0-beta,v0-alpha→ latestv0.x.xpre-release of each type
Usage:
# Recommended
- uses: santosr2/uptool@v0
# Pin to minor
- uses: santosr2/uptool@v0.1
# Pin to exact version
- uses: santosr2/uptool@v0.1.0
Files Updated Automatically¶
When versions change, bump-my-version updates:
internal/version/VERSION- Source of truthREADME.md- Action version examplesSECURITY.md- Supported versionsdocs/action-usage.md- Usage examples
Configuration¶
Location: .bumpversion.toml
Defines version format, files to update, and search/replace patterns.
Workflows¶
.github/workflows/pre-release.yml- Create RC/beta/alpha releases.github/workflows/promote-release.yml- Promote to stable.github/workflows/patch-release.yml- Security/bugfix patches.github/workflows/create-release-branch.yml- Branch for patches
Best Practices¶
- Contributors: Write conventional commits, don't bump versions manually
- Maintainers: Use workflows, never push version tags directly
- Testing: Use local bump commands, don't commit version changes
- Pre-releases: Test thoroughly before promoting to stable
See Also¶
- CONTRIBUTING.md - Conventional commit guidelines
- environments.md - Approval gate configuration
- Conventional Commits
- Semantic Versioning