pytest release checklistΒΆ

For doing a release of pytest (status April 2015) this rough checklist is used:

  1. change version numbers in _pytest/__init__.py to the to-be-released version. (the version number in setup.py reads from that init file as well)

  2. finalize ./CHANGELOG (don’t forget the the header).

  3. write doc/en/announce/release-VERSION.txt (usually copying from an earlier release version).

  4. regenerate doc examples with tox -e regen and check with hg diff if the differences show regressions. It’s a bit of a manual process because there a large part of the diff is about pytest headers or differences in speed (“tests took X.Y seconds”). (XXX automate doc/example diffing to ignore such changes and integrate it into “tox -e regen”).

  5. devpi upload to your developer devpi index. You can create your own user and index on https://devpi.net, an inofficial service from the devpi authors.

  6. run devpi use INDEX and devpi test from linux and windows machines and verify test results on the index. On linux typically all environments pass (April 2015 there is a setup problem with a cx_freeze environment) but on windows all involving pexpect fail because pexpect does not exist on windows and tox does not allow to have platform-specific environments. Also on windows py33-trial fails but should probably pass (March 2015). In any case, py26,py27,py33,py34 are required to pass for all platforms.

  7. You can fix tests/code and repeat number 6. until everything passes.

  8. Once you have sufficiently passing tox tests you can do the actual release:

    cd doc/en/
    make install      # will install to 2.7, 2.8, ... according to _pytest/__init__.py
    make install-pdf  # optional, requires latex packages installed
    ssh pytest-dev@pytest.org # MANUAL: symlink "pytest.org/latest" to the just
                              # installed release docs
                              # browse to pytest.org to see
    
    devpi push pytest-VERSION pypi:NAME
    hg ci -m "... finalized pytest-VERSION"
    hg tag VERSION
    hg push
    
  9. send out release announcement to pytest-dev@python.org,

    testing-in-python@lists.idyll.org and python-announce-list@python.org .

  10. 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).

  11. already done :)