How to make a new release of scikit-nano
¶
A guide for developers for making a new release.
For purposes of this example, we’ll assume we’re working
on the development branch dev
, with current version number
0.X.Y.dev
. After merging our shiny new feature
branch code
into dev
and checking that all unit tests are
passing, we’re ready to create a new stable release
with version number 0.X.Y
. This is my current workflow:
- Update release notes.
- Review and cleanup
doc/release/dev-notes.rst
- Update the list of contributors by running
tools/contributors.py
.- Rename
doc/release/dev-notes.rst
todoc/release/X.X.X-notes.rst
, whereX.X.X
is the new release version.- Copy
doc/release/X.X.X-template.rst
todoc/release/dev-notes.rst
for the next release.- Edit
setup.py
and changeISRELEASED
toTrue
.- Save and commit these changes with a commit message to the effect of ‘updating setup for release of version 0.X.Y’.
- Merge changes into master branch.
Testing¶
- Run all of the regression tests by running
nosetests
at the root of the source tree.
Branching¶
Packaging¶
Update PyPI¶
This step tells PyPI about the release and uploads a source tarball. This should only be done with final (non-release-candidate) releases, since doing so will hide any available stable releases.
You may need to set up your pypirc
file as described in the
distutils register command documentation.
Then updating the record on PyPI is as simple as:
python setup.py register
This will hide any previous releases automatically.
Then, to upload the source tarball:
rm -rf dist
python setup.py sdist upload
Documentation updates¶
Announcing¶
Announce the release on scikit-nano-announce, scikit-nano-users, and scikit-nano-dev. Final (non-release-candidate) versions should also be announced on python-announce. Include a summary of highlights from the CHANGELOG and/or post the whole CHANGELOG since the last release.