Release process
Feature development takes places on the “master” branch. Periodically, a release is created by increasing the version number and tagging the relevant commit with the new version number.
Check that the release passes all of the tests:
nox
Update the version number according to the versioning scheme.
Update the version number in
doc/conf.py
. The full version must always be updated, the short (X.Y) version does not need to be updated if the version number is being increased from X.Y.Z to X.Y.Z+1.Update the version number in
pyproject.toml
.
Check whether the copyright year(s) need to be updated in:
LICENSE
doc/conf.py
Describe the changes at the top of
NEWS.rst
under a heading of the formX.Y.Z (YYYY-MM-DD)
, which identifies the new version number and the date on which this version was released.Commit these changes; set the commit message to
Release epifx X.Y.Z
.git add LICENSE NEWS.rst doc/conf.py pyproject.toml git commit -m "Release epifx X.Y.Z"
Tag this commit
X.Y.Z
.git tag -a X.Y.Z -m "epifx X.Y.Z"
Push this commit and the new tag upstream.
git push --follow-tags
Publishing to PyPI
These instructions are based on the Packaging Python Projects tutorial.
Ensure that all uncommitted changes are stashed, or they will be packaged!
git stash
Build the wheel ./.nox-build/epifx-X.Y.Z-py3-none-any.whl
:
nox -s build
Upload this wheel to the PyPI test server, so that any problems can be identified and fixed:
nox -s publish -- upload -r testpypi .nox-build/epifx-X.Y.Z-py3-none-any.whl
Then upload this wheel to PyPI:
nox -s publish -- upload .nox-build/epifx-X.Y.Z-py3-none-any.whl