Note: this assumes you have already registered on pypi.
Bump version numbers in
_pytest/__init__.py
(setup.py
reads it).Check and finalize
CHANGELOG.rst
.Write
doc/en/announce/release-VERSION.txt
and include it indoc/en/announce/index.txt
. Run this command to list names of authors involved:git log $(git describe --abbrev=0 --tags)..HEAD --format='%aN' | sort -u
Regenerate the docs examples using tox:
tox -e regen
At this point, open a PR named
release-X
so others can help find regressions or provide suggestions.Use devpi for uploading a release tarball to a staging area:
devpi use https://devpi.net/USER/dev devpi upload --formats sdist,bdist_wheel
Run from multiple machines:
devpi use https://devpi.net/USER/dev devpi test pytest==VERSION
Alternatively, you can use devpi-cloud-tester to test the package on AppVeyor and Travis (follow instructions on the
README
).Check that tests pass for relevant combinations with:
devpi list pytest
or look at failures with "devpi list -f pytest".
Feeling confident? 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.Tag the release:
git tag VERSION <hash> git push origin VERSION
Make sure
<hash>
is exactly the git hash at the time the package was created.Send release announcement to mailing lists:
- [email protected]
- [email protected]
- [email protected] (only for minor/major releases)
And announce the release on Twitter, making sure to add the hashtag
#pytest
.After the release
patch release (2.8.3):
- Checkout
master
.- Update version number in
_pytest/__init__.py
to"2.8.4.dev0"
.- Create a new section in
CHANGELOG.rst
titled2.8.4.dev0
and add a few bullet points as placeholders for new entries.- Commit and push.
minor release (2.9.0):
- Merge
features
intomaster
.- Checkout
master
.- Follow the same steps for a patch release above, using the next patch release:
2.9.1.dev0
.- Commit
master
.- Checkout
features
and merge withmaster
(should be a fast-forward at this point).- Update version number in
_pytest/__init__.py
to the next minor release:"2.10.0.dev0"
.- Create a new section in
CHANGELOG.rst
titled2.10.0.dev0
, above2.9.1.dev0
, and add a few bullet points as placeholders for new entries.- Commit
features
.- Push
master
andfeatures
.major release (3.0.0): same steps as that of a minor release