2015-03-26 21:04:33 +08:00
pytest release checklist
-------------------------
2015-04-02 16:55:24 +08:00
For doing a release of pytest (status April 2015) this rough checklist is used:
2015-03-26 21:04:33 +08:00
2015-04-02 16:38:25 +08:00
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)
2015-03-26 21:04:33 +08:00
2015-03-27 16:27:31 +08:00
2. finalize ``./CHANGELOG`` (don't forget the the header).
2015-03-26 21:04:33 +08:00
2015-03-27 16:27:31 +08:00
3. write ``doc/en/announce/release-VERSION.txt``
(usually copying from an earlier release version).
2015-03-26 21:04:33 +08:00
2015-07-10 08:50:38 +08:00
4. regenerate doc examples with ``tox -e regen`` and check with ``git diff``
2015-03-27 16:27:31 +08:00
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").
2015-03-26 21:04:33 +08:00
2015-04-02 16:38:25 +08:00
5. ``devpi upload`` to `your developer devpi index <http://doc.devpi.net/latest/quickstart-releaseprocess.html>`_. You can create your own user and index on https://devpi.net,
2015-03-27 16:27:31 +08:00
an inofficial service from the devpi authors.
2015-03-26 21:04:33 +08:00
2015-04-02 16:38:25 +08:00
6. run ``devpi use INDEX`` and ``devpi test`` from linux and windows machines
2015-03-27 16:27:31 +08:00
and verify test results on the index. On linux typically all environments
2015-04-02 16:38:25 +08:00
pass (April 2015 there is a setup problem with a cx_freeze environment)
2015-03-27 16:27:31 +08:00
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.
2015-03-26 21:04:33 +08:00
2015-04-02 16:38:25 +08:00
7. You can fix tests/code and repeat number 6. until everything passes.
2015-03-26 21:04:33 +08:00
2015-04-02 16:38:25 +08:00
8. Once you have sufficiently passing tox tests you can do the actual release::
2015-03-27 16:27:31 +08:00
cd doc/en/
2015-04-02 16:55:24 +08:00
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
2015-03-27 16:27:31 +08:00
devpi push pytest-VERSION pypi:NAME
2015-07-10 08:50:38 +08:00
git commit -a -m "... finalized pytest-VERSION"
git tag VERSION
git push
2015-03-27 16:27:31 +08:00
2015-04-02 16:38:25 +08:00
9. send out release announcement to pytest-dev@python.org,
2015-03-27 16:27:31 +08:00
testing-in-python@lists.idyll.org and python-announce-list@python.org .
2015-04-02 16:55:24 +08:00
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``).
2015-03-27 16:27:31 +08:00
2015-04-02 16:38:25 +08:00
11. already done :)