Skip to content

Instantly share code, notes, and snippets.

@jnmclarty
Forked from audreyfeldroy/pypi-release-checklist.md
Last active August 29, 2015 14:15
Show Gist options
  • Save jnmclarty/0eb50f1f5c2cdff771c7 to your computer and use it in GitHub Desktop.
Save jnmclarty/0eb50f1f5c2cdff771c7 to your computer and use it in GitHub Desktop.
  • 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
python setup.py register -r pypitest # one time only
python setup.py sdist bdist_wheel upload -r pypitest
pip install -i https://testpypi.python.org/pypi <package>
  • 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:
python setup.py sdist bdist_wheel upload -r pypi
  • 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