Version Management¶
Automatic semantic versioning based on your commits.
Overview¶
releasio automatically determines the next version by analyzing your commit history:
%%{init: {'theme': 'neutral'}}%%
graph LR
A[Commits] --> B[Parse]
B --> C[Analyze]
C --> D[Bump Type]
D --> E[New Version]
How It Works¶
Commit Analysis¶
releasio scans commits since the last release:
# Example commits
feat: add user dashboard # Minor bump
fix: resolve login issue # Patch bump
docs: update README # Patch bump
feat!: redesign API # Major bump
Version Calculation¶
| Commit Type | Version Bump | Example |
|---|---|---|
feat! or BREAKING CHANGE |
Major | 1.0.0 → 2.0.0 |
feat |
Minor | 1.0.0 → 1.1.0 |
fix, docs, perf, etc. |
Patch | 1.0.0 → 1.0.1 |
The highest bump type wins:
fix: bug fix → patch
feat: new feature → minor (wins)
docs: documentation → patch
─────────────────────────────────
Result: Minor bump
Version Sources¶
releasio detects your current version from:
| Source | Priority | Example |
|---|---|---|
| Git tags | Highest | v1.2.3 |
pyproject.toml |
Medium | version = "1.2.3" |
| Version files | Lower | __version__ = "1.2.3" |
Tag Format¶
Configure the tag prefix:
Configuration¶
Basic Options¶
.releasio.toml
[version]
# Tag prefix (default: "v")
tag_prefix = "v"
# Initial version for new projects
initial_version = "0.1.0"
# Auto-detect version files
auto_detect_version_files = true
Commit Type Mapping¶
.releasio.toml
[commits]
# Types that trigger minor bumps
types_minor = ["feat"]
# Types that trigger patch bumps
types_patch = ["fix", "perf", "docs", "refactor", "style", "test", "build", "ci"]
Sections¶
-
Semantic Versioning
Understand version bump rules
-
Pre-releases
Alpha, beta, and RC versions
-
Version Files
Manage
__version__and other files
Quick Examples¶
Check Next Version¶
Output:
Force Specific Version¶
Pre-release Version¶
See Also¶
- Conventional Commits - Commit format
- Changelog Generation - Release notes
- Configuration Reference - All options