The following procedures gives a short overview of what steps are needed to create a new release.
-
Verify that issues about new release are closed https://github.com/python-semver/python-semver/issues.
-
Verify that no pull requests that should be included in this release haven't been left out https://github.com/python-semver/python-semver/pulls.
-
Verify that continuous integration for latest build was passing https://travis-ci.com/python-semver/python-semver.
-
Create a new branch
release/VERSION. -
If one or several supported Python versions have been removed or added, verify that the 3 following files have been updated:
-
Add eventually new contributor(s) to CONTRIBUTORS.
-
Verify that
__version__in semver.py have been updated and follow https://semver.org. -
Show the new draft CHANGELOG entry for the latest release with:
$ tox -e changelogCheck the output. If you are not happy, update the files in the
changelog.d/directory. If everything is okay, build the newCHANGELOGwith:$ tox -e changelog -- build -
Build the documentation and check the output:
$ tox -e docs
-
Ensure that long description (ie README.rst) can be correctly rendered by Pypi using
restview --long-description -
Upload the wheel and source to TestPyPI first:
$ git clean -xfd $ rm dist/* $ python3 setup.py sdist bdist_wheel $ twine upload --repository-url https://test.pypi.org/legacy/ dist/*
If you have a
~/.pypircwith atestpyisection, the upload can be simplified:$ twine upload --repository testpyi dist/* -
Check if everything is okay with the wheel.
-
Upload to PyPI:
$ git clean -xfd $ python setup.py register sdist bdist_wheel $ twine upload dist/* -
Go to https://pypi.org/project/semver/ to verify that new version is online and the page is rendered correctly.
-
Tag commit and push to GitHub using command line interface:
$ git tag -a x.x.x -m 'Version x.x.x' $ git push python-semver master --tags -
In GitHub Release page document the new release. Usually it's enough to take it from a commit message or the tag description.
You're done! Celebrate!