Release checklist for maintainers#


For demonstration’s sake, we assume that the next version is $VERSION and the package name is $PACKAGE.

  • Install in development mode:

    pip install -e '.[dev]'
  • Ensure tests pass locally and on CI:

    pytest --numprocesses=auto
  • Compile documentation:

    cd docs/
    make html
  • Commit changes and tag a release:

    git commit
    git tag $VERSION
  • Prepare source distribution package and wheel:

    python sdist bdist_wheel
  • Verify the package with twine:

    twine check dist/*
  • Upload to TestPyPI and verify:

    twine upload --repository testpypi dist/*
    cd /tmp
    python -m venv testpypi
    source testpypi/bin/activate
    pip install \
        --index-url \
        --extra-index-url \
  • Upload to PyPI with twine:

    twine upload dist/*
  • Upload to repository:

    git push --atomic origin main $VERSION