Versioning¶
lauren-mcp follows Semantic Versioning 2.0.0 (SemVer) and uses
hatch-vcs to derive version strings from git tags automatically.
SemVer rules¶
Given a version MAJOR.MINOR.PATCH:
| Component | When to increment |
|---|---|
MAJOR |
Incompatible API change (removing/renaming a public symbol, changing a type) |
MINOR |
New backwards-compatible functionality (new decorator, new transport) |
PATCH |
Backwards-compatible bug fix |
0.x.y releases (alpha/beta phase) may have breaking changes between minor versions.
Once 1.0.0 is released, the full SemVer guarantee applies.
hatch-vcs¶
The pyproject.toml configuration:
hatch-vcs reads the version from the most recent git tag:
| Situation | Version string |
|---|---|
Exactly on tag v0.1.0 |
0.1.0 |
3 commits after v0.1.0 |
0.1.0.post3+g1a2b3c4 |
| 3 commits after + uncommitted changes | 0.1.0.post3+g1a2b3c4.d20250601 |
| No tags in repository | 0.0.0+unknown (fallback) |
The version string is written to src/lauren_mcp/_version.py at build time
(via uv build) and exposed as lauren_mcp.__version__.
Tag format¶
All release tags must follow the v{MAJOR}.{MINOR}.{PATCH} format:
Pre-release tags:
Dev builds¶
When you install directly from the repository (uv sync), the version will include a
local identifier (e.g. 0.1.0.post1+d20250601). This is harmless for development and
clearly indicates it is not a PyPI release.
You can always check the installed version: