-
Notifications
You must be signed in to change notification settings - Fork 133
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.py
are up to date, including their minimum versions. -
Reserve a DOI on zenodo.org
-
Only before the actual release: add the new DOI and record page to the table of citations in
doc/introduction.rst
and update the image and the link of the DOI badge at the top of the README (like this PR). -
Tag a release candidate like
git tag v0.0.0rc1
. -
Push the tags to the
soft-matter/trackpy
repo.git push upstream --tags
-
Install pypandoc, which renders the README.
-
Reinstall trackpy locally to ensure that the version number is updated by versioneer.
python setup.py develop
-
Register the new version on PyPI. (This is not always necessary.)
pip setup.py register
(insecure)OR, use the form on the PyPI website (Recommended and secure).
-
Build the source distribution packages
python setup.py sdist --formats=gztar,zip
-
Use twine to upload the source distribution, compressed as zip and as tarball.
twine upload dist/*
(deprecated)
python setup.py sdist upload
-
Update the conda recipe. You will need to change the
source
block inmeta.yml
and possibly therequirements
block as well. -
Create conda builds for various versions of python and numpy.
conda build . --python=2.7
conda build . --python=3.4
etc.
N.B. If the
meta.yaml
specifiesnumpy=x.x
, a separate build will be made for each (recent) major release on numpy. -
Make versions of these builds for every platform. (This only works with pure Python packages. If C extensions are ever reintroduced, we will need to build them separately on systems that are actually running the respective platforms.)
conda convert name-of-archived-binary-file --platform all
-
Upload the conda builds to the binstar.org/soft-matter
binstar upload name-of-archived-binary-file -u soft-matter
-
If all reports are positive, repeat, tagging an actual release.
-
Check the version of the
dev
docs here -
Manually make some change on the docs repo: force-pull the docs repository (
git fetch --all
,git reset --hard origin/master
), then copy over thedev
docs to a new version folder (e.g.v0.3.1
) and finally, edit the redirect of thestable
docs. -
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.