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.rsttodoc/release/X.X.X-notes.rst, whereX.X.Xis the new release version.- Copy
doc/release/X.X.X-template.rsttodoc/release/dev-notes.rstfor the next release.- Edit
setup.pyand changeISRELEASEDtoTrue.- 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
nosetestsat 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.