Release checklist for maintainers#

Note

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 setup.py 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 https://test.pypi.org/simple \
        --extra-index-url https://pypi.org/simple \
        $PACKAGE
    
  • Upload to PyPI with twine:

    twine upload dist/*
    
  • Upload to repository:

    git push --atomic origin main $VERSION