summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/tools/pytest/HOWTORELEASE.rst
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/tools/pytest/HOWTORELEASE.rst')
-rw-r--r--testing/web-platform/tests/tools/pytest/HOWTORELEASE.rst92
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