-
Notifications
You must be signed in to change notification settings - Fork 1.8k
ReleaseChecklist
Alex Claman edited this page May 26, 2024
·
43 revisions
This is a to-do list for every new release. Many steps can be automated with the extras/release.py
script.
- Fix/close any bugs labeled blocker
- Run all the tests:
tox -p all
- Check manually that
setup.py
looks up to date (dependencies, version number, packages, etc). - Add a human-readable summary paragraph to the top of the changelog. Clean up any changelog typos.
- Datestamp the changelog:
release.py datestamp
- Commit the finalized changelog:
git commit -a
- 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
, anddocs/changelog.rst
.
- Tag the revision:
- Look around to make sure everything looks good. Then, commit the new bumped
version:
git commit -a
- Run
release.py publish
. This will:- Push to GitHub:
git push ; git push --tags
- Upload the release:
twine upload ...
- Push to GitHub:
- Run
GITHUB_TOKEN=... release.py ghrelease
to create a GitHub release with the generated Markdown changelog. This requires the github-release command-line tool and an access token.
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, audioread, Confuse, and MediaFile.
The distro packages have their own maintainers. Non-exhaustive list: