Skip to content
Adrian Sampson edited this page May 7, 2014 · 43 revisions

This is a to-do list for every new release. Many steps can be automated with the extras/release.py script.

Verification

  • Run all the tests (tox or detox).
  • Check that setup.py is up to date (dependencies, version number, packages, etc).
  • Check that the changelog is up to date and includes a human-readable summary paragraph.
  • Add release date to the changelog.
  • Spell-check with codespell: ./codespell.py -q2 ~/beets

Release

  • Tag the revision (git tag v1.X.Y) and push to GitHub (git push --tags).
  • Submit to PyPI:
    • Create the tarball: python setup.py sdist
    • Upload to PyPI using Twine: twine upload dist/beets-1.X.Y.tar.gz (eventually, also upload a Wheel)
    • Ensure we can install from PyPI: e.g., ~/venv/bin/pip install beets.
  • Tag and release dependent subprojects: pyacoustid, audioread, (bluelet, confit, mediafile, ...)
  • Paste the changelog into a GitHub release. Use release.py changelog to generate.
  • Version number bump for the next version. Use release.py bump or modify:
    • setup.py
    • __version__ in root module
    • docs/conf.py
    • docs/changelog.rst

Announcement

The distro packages have their own maintainers. Non-exhaustive list:

Clone this wiki locally