forked from pytest-dev/pytest
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request pytest-dev#1824 from nicoddemus/update-howtorelease
Update HOWTORELEASE based on the 3.0.0 release
- Loading branch information
Showing
2 changed files
with
47 additions
and
54 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters