- Update HISTORY.md
- Commit the changes:
git add HISTORY.md
git commit -m "Changelog for upcoming release 0.1.1."
- Update version number (can also be minor or major)
bumpversion patch
- Install the package again for local development, but with the new version number:
python setup.py develop
- Run the tests:
tox
- Submit a pull request with the history and version number changes. Have it reviewed and merged.
- Release on PyPI by uploading both sdist and wheel:
python setup.py sdist upload
python setup.py bdist_wheel upload
- Test that it pip installs:
mktmpenv
pip install my_project
<try out my_project>
deactivate
- Push:
git push
- Push tags:
git push --tags
- Check the PyPI listing page to make sure that the README, release notes, and roadmap display properly. If not, copy and paste the RestructuredText into http://rst.ninjs.org/ to find out what broke the formatting.
- Edit the release on GitHub (e.g. https://github.com/audreyr/cookiecutter/releases). Paste the release notes into the release's release page, and come up with a title for the release.
tox already builds and installs an sdist (unless you tell it not to), so you could simplify this a little bit.
You can check for ReST errors before making a release with
python setup.py --long-description | rst2html
, or by running restview --long-description --strict.I've a checklist very much like yours that I've tried to automate as much as I can, so I can do a
make release
when I'm tired and not mess things up. Thank you for sharing yours!