Note: this assumes you have already registered on pypi.
Bump version numbers in _pytest/__init__.py (setup.py reads it)
Check and finalize CHANGELOG
Write doc/en/announce/release-VERSION.txt and include it in doc/en/announce/index.txt
Use devpi for uploading a release tarball to a staging area:
devpi use https://devpi.net/USER/dev
devpi upload --formats sdist,bdist_wheel
Run from multiple machines:
devpi use https://devpi.net/USER/dev
devpi test pytest==VERSION
Check that tests pass for relevant combinations with
devpi list pytest
or look at failures with "devpi list -f pytest". There will be some failed environments like e.g. the py33-trial or py27-pexpect tox environments on Win32 platforms which is ok (tox does not support skipping on per-platform basis yet).
Regenerate the docs examples using tox, and check for regressions:
tox -e regen git diff
Build the docs, you need a virtualenv with py and sphinx installed:
cd doc/en make html
Commit any changes before tagging the release.
Tag the release:
git tag VERSION git push
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 latestBrowse to pytest.org to verify.
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.
Send release announcement to mailing lists:
- pytest-dev
- testing-in-python
- [email protected]
after the release Bump the version number in
_pytest/__init__.py
, to the next Minor release version (i.e. if you releasedpytest-2.8.0
, set it topytest-2.9.0.dev1
).