Currently `debian/changelog` for #Tool-Labs packages often has `unstable` or `trusty` as target.
This has two problems:
# The CI tests only run against that target, i. e. often Debian Jessie where the package will be deployed on Precise and Trusty and never on Jessie.
# It is impossible to differentiate in-source-package for example like I tried to in https://gerrit.wikimedia.org/r/#/c/268563/6/debian/control because the resulting binary packages for Precise and Trusty have the same filenames, but different contents. This makes it impossible to deploy them for example with `aptly` and other tools that expect files with identical names to be identical.
I had asked last year in [[https://lists.debian.org/debian-mentors/2016/02/threads.html#00312|debian-mentors]] and the recommended solution there was to have separate Git branches per target, develop on the most recent one and treat other targets as backports. I. e., for example `tools-webservice`'s `master` (or `ubuntu/trusty`) would be intended for Trusty and the Precise backport at `ubuntu/precise` (cf. http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.import.html#GBP.BRANCH.NAMING, http://dep.debian.net/deps/dep14/). Work would happen on `master` (and submitted to Gerrit), then `git checkout ubuntu/precise && git merge master && dch --bpo` and submitted to Gerrit for the Precise branch.
Precise will be gone in two months, but the recommendations make sense universally as the problem occurs in any scenario (update from Trusty to Jessie, Jessie to …, etc.) and they bring us closer to what Debian does.
This requires checking that:
# Gerrit treats those branches the same way as `master` (inter alia permissions),
# Jenkins tests are run for all branches, and
# built binary packages can be deployed with `aptly`.
I propose to start with this on `labs/toollabs` as this is where I hit the problem first.