Implement build permutation for shared things
Open, NormalPublic

Description

Currently we have: unstable, stable, release. These do not correctly reflect a lot of foundation stuff however requiring hacks in boht publisehr templates, the update_nci scripts and some dependency tech we have in the templates.

  • Qt only has a release (tarball) build which is built once and pushed into all three repos behind the scenes
  • KF5 for unstable and stable is the same thing and copied from unstable into stable on every build
  • forks are generally like Qt

What we need is a build permutation that can act as root for all other types.
Suggested names: core

or all.

Requirements

  1. Core builds once (only can depend on other core stuff) and is available to all three user facing repos by default (e.g. Qt is the same in all three)
  2. Core may still be overridden on a per-permutation basis (e.g. KF5 would be in core but only used for stable and unstable! release has its own version)
    • This actually makes things a bit tricky because unstable and stable have higher versions than release, so it can't simply be a shared repository. It may be possible if we set an apt preference that gives repos a priority release > stable > unstable > core, so core would not supply packages if a release version has them. This however might get weird if release had foobar and then wants to use the foobar from core. Namely it means we need to clean up the repo to make that happen.