Skip to content
Nathan Keim edited this page Oct 14, 2019 · 53 revisions

The Situation

For several years, PIMS and trackpy have been 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. Building conda packages for all architectures is handled by conda-forge. Thus, releasing PIMS and trackpy is simpler than it used to be. If C extensions are ever reintroduced into PIMS or trackpy, automated Windows and Linux builds should be set up with appveyor and Travis CI.

Checklist

  1. Make sure all issues tagged with the release's milestone are closed or moved to a future milestone.

  2. Make sure dependencies listed in setup.py are up to date, including their minimum versions. Make sure that all packages (i.e. subdirectories with required code) within trackpy are listed here.

  3. Reserve a DOI on zenodo.org by clicking "Add version" (we use Zenodo versioning since Trackpy v0.4)

  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.

  5. Update the link in the whatsnew doc page

  6. Tag a release candidate like git tag v0.0.0rc1.

  7. Push the tags to the soft-matter/trackpy repo.

    git push upstream --tags

  8. 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.
  9. Install pypandoc, which renders the README.

  10. Reinstall trackpy locally to ensure that the version number is updated by versioneer.

    python setup.py develop

  11. Build the source distribution packages

    python setup.py sdist

  12. Install twine to register and upload the source distribution to PyPI. You need to be a maintainer or owner of trackpy on PyPI; you can ask an existing owner to add you.

  13. Register and upload the source distribution, compressed as zip and as tarball.

    twine upload dist/<name of package>.tar.gz

  14. Wait for the regro-autotick-bot to file a PR at conda forge to update the conda recipe (it may take an hour or more). Make sure the versions agree with setup.py. Don't merge the release candidate PR! If you don't see a PR appear automatically,

    • Go to the PyPI release page and get the SHA256 hash of this release from the downloads page.
    • Create a pull request from your fork or soft-matter's fork of the conda forge feedstock, updating recipe/meta.yaml with information from the PyPI release.
    • As you are creating the PR, follow the helpful checklist in the default PR message!
  15. If all checks (including all automated tests on trackpy-feedstock) are positive, repeat, tagging an actual release and merging the trackpy-feedstock PR.

  16. Check the version of the dev docs here. If the content is up to date, but the new version you tagged is not listed at the top of the page, you need to restart the latest Travis build on the master branch. Go to the list of branches on Travis, click on the build (e.g. "#1234 passed"), and then click "Restart build".

  17. Manually make some change on the docs repository:

    • force-pull the docs repository (git fetch --all, git reset --hard origin/master)
    • copy over the dev docs to a new version folder (e.g. v0.3.1)
    • edit the redirect of the stable docs
    • edit robots.txt to keep old versions of the docs from appearing in search results
    • push the docs repository
  18. 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)

  19. Manually fill out the Zenodo entry, using the previous one as example. Upload the sdist and publish.

Clone this wiki locally