Skip to content
This repository has been archived by the owner on Jul 29, 2020. It is now read-only.

Latest commit

 

History

History
87 lines (52 loc) · 2.37 KB

HOWTORELEASE.rst

File metadata and controls

87 lines (52 loc) · 2.37 KB

How to release pytest

Note: this assumes you have already registered on pypi.

  1. Bump version numbers in _pytest/__init__.py (setup.py reads it)

  2. Check and finalize CHANGELOG

  3. Write doc/en/announce/release-VERSION.txt and include it in doc/en/announce/index.txt:

    git log 2.8.2..HEAD --format='%aN' | sort -u # lists the names of authors involved
    
  4. Use devpi for uploading a release tarball to a staging area:

    devpi use https://devpi.net/USER/dev
    devpi upload --formats sdist,bdist_wheel
    
  5. Run from multiple machines:

    devpi use https://devpi.net/USER/dev
    devpi test pytest==VERSION
    
  6. Check that tests pass for relevant combinations with:

    devpi list pytest
    

    or look at failures with "devpi list -f pytest".

  7. Regenerate the docs examples using tox, and check for regressions:

    tox -e regen
    git diff
    
  8. Build the docs, you need a virtualenv with py and sphinx installed:

    cd doc/en
    make html
    

    Commit any changes before tagging the release.

  9. Tag the release:

    git tag VERSION
    git push
    
  10. Upload the docs using doc/en/Makefile:

    cd doc/en
    make install  # or "installall" if you have LaTeX installed for PDF
    

    This requires ssh-login permission on pytest.org because it uses rsync. Note that the install target of doc/en/Makefile defines where the rsync goes to, typically to the "latest" section of pytest.org.

    If you are making a minor release (e.g. 5.4), you also need to manually create a symlink for "latest":

    ssh [email protected]
    ln -s 5.4 latest
    

    Browse to pytest.org to verify.

  11. Publish to pypi:

    devpi push pytest-VERSION pypi:NAME
    

    where NAME is the name of pypi.python.org as configured in your ~/.pypirc file for devpi.

  12. Send release announcement to mailing lists:

  13. after the release Bump the version number in _pytest/__init__.py, to the next Minor release version (i.e. if you released pytest-2.8.0, set it to pytest-2.9.0.dev1).

  14. merge the actual release into the features branch and do a pull request against it