Maintainer Guidelines

Downstream Bug Trackers

Some bug reports never make it to us so check these once in a while.

Tags & Branches

At the point where no more functionality will be added to a release, a new branch gets created. All bug fixes pushed to the default branch should be cherry-picked to the respective stable branches and vice versa.

  .       .
 /|\     /|\
  |       |
  |       |
3.6.-1   /   <--- "quodlibet-3.5" branch
  |_____/  .
  |       /|\
  |        |
  |      3.4.1  <--- "release-3.4.1" tag
  |        |
  |      3.4.0.-1
  |        |
  |      3.4  <--- "release-3.4.0" tag
  |        |
3.5.-1    /
  |______/   <--- "quodlibet-3.4" branch
  |
  |  <--- default branch
3.4.-1
  |
 /|\

Release Checklist

New stable branch

You can now use the dev-utils/new-branch.sh script to help do this.

New stable release

On the branch

  • git checkout quodlibet-x.y

  • Cherry-pick stuff from default branch

  • Grab a title from Daily Dinosaur Comics

  • Update 4.7.0 - Unreleased with a list of all bugfixes and features since last release

  • git commit -m "update NEWS"

  • Create a source dist: git clean && poetry run ./setup.py distcheck

  • Update version to (X, Y, Z) in const.py

  • Update version to (X, Y, Z) in appdata.xml.in

  • git commit -m "release prep"

  • git tag release-x.y.z

  • git push origin release-x.y.z

  • Create Windows builds

  • Create macOS DMGs

  • Create checksums: sha256sum dist/quodlibet-x.y.z.tar.gz

  • Create PGP signature: gpg -b dist/quodlibet-x.y.z.tar.gz

  • Attach everything to the Github release tag.

On default branch

  • Update version to (X, Y, Z, -1)

  • git commit -m "version bump"

  • Cherry-pick NEWS commit

  • Update release_db/make.py; run ./release_db/update.sh

External

  • Update stable PPAs (ubuntu/debian/OBS)

  • Make a PR on the Flathub repo

  • Announce on IRC / Discord / Twitter / Mastodon etc