Skip to content
Adrian Sampson edited this page Jun 21, 2014 · 43 revisions

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

Finalize

  1. Run all the tests: tox or detox
  2. Check manually that setup.py looks up to date (dependencies, version number, packages, etc).
  3. Add a human-readable summary paragraph to the top of the changelog. Clean up any changelog typos.
  4. Datestamp the changelog: release.py datestamp
  5. Commit the finalized changelog: git commit -a

Release

  1. Run release.py prep. This will:
    • Tag the revision: git tag v1.X.Y
    • Build the source distribution: python setup.py sdist
    • Generate the changelog as a Markdown doc for upload as a GitHub release in a file called changelog.md.
    • Bump the version number in setup.py, __version__ in __init__.py, docs/conf.py, and docs/changelog.rst.
  2. Look around to make sure everything looks good. Then, commit the new bumped version: git commit -a
  3. Run release.py publish. This will:
    • Push to GitHub: git push --tags
    • Upload the release: release.py upload
  4. Create a GitHub release with the changelog generated. (This should be automated but is not yet.)

This is also a good time to tag and release the other libraries in the beets ecosystem if they've seen any updates. Specifically, this includes pyacoustid and audioread and will eventually encompass Confit and MediaFile.

Announcement

  1. Change "default version" on Read the Docs.
  2. Announce on Twitter (@b33ts).
  3. Announce on forums.
  4. Email mailing list.

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

Clone this wiki locally