Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update HOWTORELEASE based on the 3.0.0 release #1824

Merged
merged 1 commit into from
Aug 20, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 46 additions & 53 deletions HOWTORELEASE.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,90 +3,83 @@ 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).

1. Bump version numbers in _pytest/__init__.py (setup.py reads it)
2. Check and finalize ``CHANGELOG.rst``.

2. Check and finalize CHANGELOG
3. Write ``doc/en/announce/release-VERSION.txt`` and include
it in ``doc/en/announce/index.txt``. Run this command to list names of authors involved::

3. Write doc/en/announce/release-VERSION.txt and include
it in doc/en/announce/index.txt::
git log $(git describe --abbrev=0 --tags)..HEAD --format='%aN' | sort -u

git log 2.8.2..HEAD --format='%aN' | sort -u # lists the names of authors involved
4. Regenerate the docs examples using tox::

4. Use devpi for uploading a release tarball to a staging area::
tox -e regen

5. At this point, open a PR named ``release-X`` so others can help find regressions or provide suggestions.

6. 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::
7. Run from multiple machines::

devpi use https://devpi.net/USER/dev
devpi test pytest==VERSION

6. Check that tests pass for relevant combinations with::
Alternatively, you can use `devpi-cloud-tester <https://github.com/nicoddemus/devpi-cloud-tester>`_ to test
the package on AppVeyor and Travis (follow instructions on the ``README``).

8. 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::
9. Feeling confident? Publish to pypi::

cd doc/en
make html

Commit any changes before tagging the release.

9. Tag the release::

git tag VERSION
git push
devpi push pytest==VERSION pypi:NAME

10. Upload the docs using doc/en/Makefile::
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>`_.

cd doc/en
make install # or "installall" if you have LaTeX installed for PDF
10. Tag the release::

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.
git tag VERSION <hash>
git push origin VERSION

If you are making a minor release (e.g. 5.4), you also need to manually
create a symlink for "latest"::
Make sure ``<hash>`` is **exactly** the git hash at the time the package was created.

ssh [email protected]
ln -s 5.4 latest
11. Send release announcement to mailing lists:

Browse to pytest.org to verify.
- [email protected]
- [email protected]
- [email protected]

11. Publish to pypi::
And announce the release on Twitter, making sure to add the hashtag ``#pytest``.

devpi push pytest==VERSION pypi:NAME
12. **After the release**

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>`_.
a. **patch release (2.8.3)**:

1. Checkout ``master``.
2. Update version number in ``_pytest/__init__.py`` to ``"2.8.4.dev"``.
3. Create a new section in ``CHANGELOG.rst`` titled ``2.8.4.dev`` and add a few bullet points as placeholders for new entries.
4. Commit and push.

12. Send release announcement to mailing lists:
b. **minor release (2.9.0)**:

- pytest-dev
- testing-in-python
- [email protected]
1. Merge ``features`` into ``master``.
2. Checkout ``master``.
3. Follow the same steps for a **patch release** above, using the next patch release: ``2.9.1.dev``.
4. Commit ``master``.
5. Checkout ``features`` and merge with ``master`` (should be a fast-forward at this point).
6. Update version number in ``_pytest/__init__.py`` to the next minor release: ``"2.10.0.dev"``.
7. Create a new section in ``CHANGELOG.rst`` titled ``2.10.0.dev``, above ``2.9.1.dev``, and add a few bullet points as placeholders for new entries.
8. Commit ``features``.
9. Push ``master`` and ``features``.

c. **major release (3.0.0)**: same steps as that of a **minor release**

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
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ basepython = python2.7
deps = flake8
restructuredtext_lint
commands = flake8 pytest.py _pytest testing
rst-lint CHANGELOG.rst
rst-lint CHANGELOG.rst HOWTORELEASE.rst

[testenv:py27-xdist]
deps=pytest-xdist>=1.13
Expand Down