Releasing¶
How maintainers cut a RowGuard release.
Checklist¶
Ensure
mainis green (CI: tests, docs, examples).Update version in:
pyproject.toml(project.version)src/rowguard/__init__.py(__version__)docs/conf.py(release/version)
Update
CHANGELOG.md(Keep a Changelog; add Upgrade notes for breaking changes; add compare link).Update
docs/project/supported.mdif the shipped surface changed.Sync public docs contracts:
API.md/docs/reference/errors.mdmatchsrc/rowguard/api.pyand exportsGrep for stale version banners (
0.4as “current”, unshipped APIs in present tense)
Commit on
main(or merge the release PR).Tag and push:
git tag -a v0.6.0 -m "v0.6.0"
git push origin v0.6.0
GitHub Actions (
.github/workflows/release.yml) builds and publishes to PyPI when av*tag is pushed (requiresPYPI_API_TOKENsecret).Confirm the docs build on Read the Docs for the new tag/version.
Spot-check PyPI:
pip install rowguard==…
Versioning¶
RowGuard follows Semantic Versioning. Before 1.0, minor versions may include breaking changes; document them clearly in the changelog.