-
Notifications
You must be signed in to change notification settings - Fork 141
Release Checklist
PIMS and trackpy are pure Python packages, so building them on all platforms is straightforward. No matter which platform you happen to be working on, you can upload the source to PyPI and even build conda packages for all five architectures (win-32, win-64, osx-64, linux-32, linux-64). You can upload the these packages to binstar.org/soft-matter where the command conda install -c soft-matter ... will find them.
A little context: PIMS and trackpy have not always been pure Python. For a time, trackpy used C extensions to do stuff that is now handled by scipy. Recently, PIMS contained tifffile.py with associated C extensions, but now tifffile is a stand-alone package on PyPI and we have built conda packages for every version of python and numpy on every architecture.
Thus, releasing PIMS and trackpy is simpler than it used to be. If C extensions are ever reintroduced into PIMS or trackpy, the Windows and Linux builds can be handled the same way we handled them for tifffile: use Travis and Microsoft's "appveyor" to upload to binstar.
-
Make sure all issues tagged with the release's milestone are closed or moved to a future milestone.
-
Make sure dependencies listed in
setup.pyare up to date, including their minimum versions. -
Reserve a DOI on zenodo.org by clicking "Add version" (we use Zenodo versioning since Trackpy v0.4)
-
Only before the actual release: add the new DOI and record page to the table of citations in
doc/introduction.rst. The README.rst one is the 'umbrella' Zenodo entry, which should not be changed. -
Update the link in the whatsnew doc page
-
Tag a release candidate like
git tag v0.0.0rc1. -
Push the tags to the
soft-matter/trackpyrepo.git push upstream --tags -
Update trackpy-examples if needed
- If you suspect that any API changes in trackpy or PIMS have broken the tutorials (especially the walkthrough), make sure there's an issue in the trackpy repository, tagged for this release milestone, to update the notebooks in https://github.com/soft-matter/trackpy-examples .
- In a new branch of trackpy-examples, edit and re-run the affected notebooks on your own computer. See tips in the trackpy-examples wiki.
- Submit a PR for trackpy-examples and make sure it gets reviewed.
-
Install pypandoc, which renders the README.
-
Reinstall trackpy locally to ensure that the version number is updated by versioneer.
python setup.py develop -
Build the source distribution packages
python setup.py sdist -
Install twine to register and upload the source distribution to Pypi
-
Register and upload the source distribution, compressed as zip and as tarball.
twine upload dist/<name of package>.tar.gz -
Wait for the regro-autotick-bot to file a PR at conda forge to update the conda recipe. Make sure the versions agree with setup.py.
-
If all reports are positive, repeat, tagging an actual release.
-
Check the version of the
devdocs here -
Manually make some change on the docs repository:
- force-pull the docs repository (
git fetch --all,git reset --hard origin/master) - copy over the
devdocs to a new version folder (e.g.v0.3.1) - edit the redirect of the
stabledocs - edit
robots.txtto keep old versions of the docs from appearing in search results - push the docs repository
- force-pull the docs repository (
-
Draft and publish the release on GitHub, linking to the whatsnew page in the docs (something like http://soft-matter.github.io/trackpy/v0.3.1/whatsnew.html)
-
Manually fill out the Zenodo entry, using the previous one as example. Upload the sdist and publish.