Releasing¶
nous follows semver. Releases are tags on main of the form vX.Y.Z.
Release checklist¶
git checkout main && git pull.make check && make docs-buildmust be green.- Move all
[Unreleased]entries inCHANGELOG.mdinto a new[vX.Y.Z] - YYYY-MM-DDheading and leave a fresh[Unreleased]block above. - Bump
versioninpyproject.tomland__version__insrc/nous/__init__.py. - Commit (
chore(release): vX.Y.Z), sign off (-s). - Tag (
git tag -s vX.Y.Z -m "vX.Y.Z"). - Push (
git push --follow-tags). - The docs workflow deploys the site for the new tag.
Backporting¶
Pre-1.0, only main receives fixes. A security fix that needs to land
on a stale tag is cut as a new tag from main rather than as a branch
backport.
Yanking¶
A bad release is yanked by tagging a vX.Y.Z+yank.N and updating the
release notes to point at the replacement.