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 master 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
  |
  |  <--- "master" branch
3.4.-1
  |
 /|\

Release Checklist

New Stable branch:

  • git checkout -b quodlibet-x.y
  • git commit -m “new stable branch
  • git push
  • git checkout master
  • Update version to (X, Y + 1, -1)
  • git commit -m “version bump”

New Stable release:

  • git checkout quodlibet-x.y
  • Cherry pick stuff from master
  • Update NEWS
  • 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 master
  • 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
  • Write release mail