Release and Versioning
Source of Truth
The repository version source of truth is the root VERSION file.
VERSIONcontainsX.Y.Zpyproject.toml[project].versionmust matchVERSION
Do not manually update only one of them.
Bump Version
Use the bump tool to keep both files synchronized:
source .venv/bin/activate
tools/support/bump_version.py --version 0.1.1 --check
tools/support/bump_version.py --version 0.1.1
Release Flow
Use:
source .venv/bin/activate
tools/release/release.py --no-push
What it does:
- Ensures you are in
Postman-PyPNMApps-API - Ensures branch is
mainorhot-fix - Ensures worktree is clean
- Runs quality gates:
tools/support/bump_version.py --checkusing currentVERSIONtools/sanitize.py --checkpytest -q- Resolves the release version (auto-increment patch from
VERSION, unless--versionis provided) - Updates
VERSIONandpyproject.toml - Creates an empty release commit (if needed) and an annotated
vX.Y.Ztag - Pushes branch and tag unless
--no-pushis used
Recommended Sequence
source .venv/bin/activate
tools/sanitize.py --check
pytest -q
tools/support/bump_version.py --version 0.1.1 --check
tools/release/release.py --version 0.1.1 --no-push