| How to release pytest |
| -------------------------------------------- |
| |
| Note: this assumes you have already registered on pypi. |
| |
| 0. create the branch release-VERSION |
| use features as base for minor/major releases |
| and master as base for bugfix releases |
| |
| 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 pytest-dev@pytest.org |
| 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 <http://doc.devpi.net/latest/quickstart-releaseprocess.html?highlight=pypirc#devpi-push-releasing-to-an-external-index>`_. |
| |
| |
| 12. Send release announcement to mailing lists: |
| |
| - pytest-dev |
| - testing-in-python |
| - python-announce-list@python.org |
| |
| |
| 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 master branch and do a pull request against it |
| 15. merge from master to features |