- Do sanity checks: verify that the tests and linter pass, locally and on CI.
- Update CHANGES:
- Update the version number
- Record the release date
- List major features, minor features, bugfixes, and removals/deprecations.
- Update the version number in
setup.py
- Update the version numbers (
version
andrelease
) indoc/conf.py
. - Create an annotated tag for the version, with the version number as the name.
- Push to
master
, including the tag, which will ship a new release on PyPI. - If pushing a major version, consider creating the
stable-<series>
branch to which fixes can be backported.
For those using aptnik to handle their releases,
there is an additional step. The CI build process creates a .deb
as a build
artifact—take the .deb
from the build corresponding to the tag, upload it
to aptnik
, and upgrade on any relevant machines with apt update
/
apt upgrade
.