Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save AlexandreProenca/6c5894500d7cb26bbcb3 to your computer and use it in GitHub Desktop.
Save AlexandreProenca/6c5894500d7cb26bbcb3 to your computer and use it in GitHub Desktop.
My PyPI Release Checklist
  • Update HISTORY.rst
  • Update version number in my_project/__init__.py
  • Update version number in setup.py
  • Install the package again for local development, but with the new version number:
python setup.py develop
  • Run the tests:
python setup.py test
tox
  • Commit the changes:
git add .
git commit -m "Release 0.1.1"
  • Build the source distribution:
python setup.py sdist
  • Test that the sdist installs:
mktmpenv
cd dist
tar xzvf my_project-0.1.1.tar.gz
cd my_project-0.1.1/
python setup.py install
<try out my_project>
deactivate
  • 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
  • Tag the last git commit with the version number:
git tag -a 0.1.1

Put the same message as in HISTORY.rst.

  • 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment