diff options
Diffstat (limited to 'testing/web-platform/tests/tools/pytest/HOWTORELEASE.rst')
-rw-r--r-- | testing/web-platform/tests/tools/pytest/HOWTORELEASE.rst | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/testing/web-platform/tests/tools/pytest/HOWTORELEASE.rst b/testing/web-platform/tests/tools/pytest/HOWTORELEASE.rst new file mode 100644 index 000000000..3ebfa28b1 --- /dev/null +++ b/testing/web-platform/tests/tools/pytest/HOWTORELEASE.rst @@ -0,0 +1,92 @@ +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 |