Release Checklist & Workflow#
Follow these steps when preparing a new version release for calfcv.
Pre-Release Verification#
Run local checks to ensure clean builds, full test coverage, strict linting, and warning-free documentation compilation:
pytest tests/ --cov=calfcv --cov-report=term-missing
pre-commit run --all-files
make -C docs html
Version & Changelog Update#
Update
__version__insrc/calfcv/_version.py.Move items from the
[Unreleased]section into a new version header (e.g.,[0.4.0] - 2026-09-12) inCHANGELOG.md.
Commit, Tag, and Publish#
Use the automated Makefile target to stage, commit, tag, and push the release to GitHub. Pushing an annotated version tag (v*) automatically triggers GitHub Actions to publish packages to PyPI and update GitHub Pages documentation.
make release version=X.Y.Z
Manual Release Workflow#
For reference, the automated make release target executes the following manual git sequence:
# Stage and commit version bump
git add src/calfcv/_version.py CHANGELOG.md
git commit -m "bump: release vX.Y.Z"
# Create annotated tag
git tag -a vX.Y.Z -m "Release vX.Y.Z"
# Push branch and tag
git push origin main
git push origin vX.Y.Z