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

  • git checkout quodlibet-x.y

  • Cherry-pick stuff from default branch

  • Grab title from Daily Dinosaur Comics

  • Update 4.6.0 (2023-08-22) - Ah, perfect, the banner that satisfies everyone with a list of all bugfixes and features since last release

  • git commit -m "update NEWS"

  • 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

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

  • git commit -m "version bump"

  • Cherry-pick NEWS commit onto default branch

  • Create Windows builds / tarballs / macOS DMGs

  • Create checksums / signature, attach everything to the github tag

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

  • Update stable PPAs (ubuntu/debian/OBS)

  • Update the flathub repo

  • Announce on IRC / Discord / Twitter etc