Skip to content
Nathan Keim edited this page Feb 23, 2023 · 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.

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. Update the link in the whatsnew doc page

  4. Make sure you can build the docs locally. Check the generated HTML in your web browser for any obvious problems.

  5. On the GitHub Releases page, publish a new release candidate with the appropriate tag, e.g. v0.0.0rc1. For this release candidate, be sure to check the box marking this as a pre-release. Include appropriate release notes in Markdown format (for the release candidate this could just be a link to http://soft-matter.github.io/trackpy/dev/whatsnew.html ).

  6. Fetch the new tag to your computer.

    git fetch --all --tags

  7. 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.
    • Build the docs if you want to check that the notebooks render correctly.
    • Submit a PR for trackpy-examples and make sure it gets reviewed.
  8. Install or upgrade the build requirements pip install --upgrade setuptools twine wheel

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

    python setup.py develop

  10. Build the source distribution packages

    python setup.py sdist

  11. Rebuild the docs and upload to the soft-matter.github.io repository. Make these the dev docs.

  12. Follow the Zenodo link in the "Introduction" page of the documentation, or just check Zenodo's GitHub status page directly, to check that the new release (or release candidate) is present and has a unique DOI.

  13. 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.

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

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

  15. For the actual release: Wait for the regro-autotick-bot to file a PR at conda forge to update the conda recipe (it may take two hours or more). Make sure the versions agree with setup.py.

  16. For a release candidate: the bot will not create a PR. It's still a good idea to manually create a test PR at conda forge; this will cause the automated CI tests to check that the conda package will build smoothly. Don't merge your release candidate PR!

    • 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 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!
  17. If all checks (including all automated tests on trackpy-feedstock) are positive, repeat, tagging an actual release and merging the trackpy-feedstock PR.

  18. Manually make some change on the docs repository:

    • force-pull the docs repository (git fetch --all, git reset --hard origin/master or upstream/master)
    • copy over the dev docs (or locally-built docs for this release) to a new version folder (e.g. trackpy/v0.3.1)
    • edit the redirect of the stable docs in trackpy/stable/index.html
    • edit robots.txt to keep old versions of the docs from appearing in search results
    • Commit and push the docs repository
    • It may take several minutes for the new docs to appear at http://soft-matter.github.io/trackpy/