I just submitted another patch series to improve Britney for review. If accepted, they will probably be merged into master within 2 weeks. The changes this time are probably most exciting for people that run/maintain Britney. Key highlights include:
- Britney will be able to use a regular mirror (without partial suites) as data source
- Previously you would have to decompress and merge the Packages/Sources for each component.
- Partial suite support is still not added, but I hope to add it eventually. I know it is feature used by at least Ubuntu.
- This change implies renaming some input files around (Dates, Urgency and BugsV files) as Britney expected these next to the Packages files.
- More machine parsable facts added to “excuses.yaml”. It will cover almost all excuses currently in use.
- Britney will support two use cases for “faux packages” natively.
- I hope to use this to eliminate our need to “injecting” fake packages into Britney’s data source.
I would like to dwell a moment on the “faux packages”. We have had a helper script generate and inject fake packages into the list of packages (called “faux packages”). They generally serve two purposes, which Britney will support:
- Whitelist of fake packages to satisfy dependencies of other packages.
- These are generally stand-in for non-free machine configuration packages, where the end-user system would also fetch packages from the vendor’s repository.
- Packages relying on “faux packages” are generally not in “main” as Debian’s main component is required to be self-contained.
- These are (still) be called “faux packages” in/after the patch series
- Ensuring that certain packages are present and installable in testing.
- We have a lot of d-i related packages here to avoid accidental breakage of d-i.
- These are now referred to as a “constraint” (assuming there is no bike-shedding over the name).
Since Britney will now distinguish between these two use cases, I also make Britney enforce the second use case slightly better. Mind you, it can still be overruled by force-hints and BREAK_ARCHES, so there still enough rope to hang yourself.
The other exciting part of this patch set (for me, at least) is that Britney will hopefully become simpler to deploy. No doubt there are still some missing features and paper cuts left, but I suspect we are not far from a:
- Fill out a template config file pointing Britney to your mirror
- Run britney -c britney.conf
- Make your archive kit update your target suite based on Britney’s output.
- Put step 2+3 in crontab/jenkins/task scheduler of choice
There will certainly be some features that requires extra steps. An example is the “anti rc-bugs regression” feature, which requires you to feed Britney with the list of RC bugs for your source and target suite. But even without, Britney would still protect your target suite from most installability issues.