Skip to content

Instantly share code, notes, and snippets.

@nsh87
Forked from audreyfeldroy/pypi-release-checklist.md
Last active December 18, 2015 03:11
Show Gist options
  • Save nsh87/05886d852a1d3f2b20ce to your computer and use it in GitHub Desktop.
Save nsh87/05886d852a1d3f2b20ce to your computer and use it in GitHub Desktop.
My PyPI Release Checklist
  • Checkout dev branch
git checkout dev
  • Update HISTORY.rst
  • Commit the changes:
git add HISTORY.rst
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
  • Create package with new version
python setup.py sdist bdist_wheel
  • If this is a new package, register it
python setup.py register -r test  # test
python setup.py register -r pypi  # actual registration
  • Dry run the release on TestPyPI
twine upload -r test dist/regressors-<INSERT-VERSION-NUMBER>.tar.gz
  • Push code and push tag
git push
git push origin v0.0.2  # Whatever your version number is
  • Create pull request to merge dev to master

  • If Travis passes, accept pull reqest

  • Release on PyPI by uploading both sdist and wheel:

twine upload -r pypi dist/regressors-<INSERT-VERSION-NUMBER>.tar.gz
  • Test that it pip installs:
mktmpenv
pip install my_project
<try out my_project>
deactivate
  • 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment