Refactor Britney to support suite agnostic code and make Britney less of a `God object`

This branch rewrites most of britney.py and britney2/utils.py to be suite agnostic. I also consider it a stepping stone to make Britney less of a God object. This is possible as a lot of code depends on access to the packages/sources data, which was previously only available via the Britney object. In the rewrite, the source and packages information is moved to the Suite object (and there is one of these per suites that britney.py is working on)

Notable omissions in this branch:

  • [FIXED] The policies are not yet suite agnostic. I am happy to fix that before merging (I wanted coordinate with Elbrus before doing that because I suspect he is working on the autopkgtest policy)
  • Some variables, parameters and comments have not been updated yet. I am happy to fix that before merging (I was not sure if it was worth it)
  • The initialization code plus special case involving pu/stable is not fixed. I think this should wait for a rewrite of our config file - e.g. as done in my WIP yaml-config branch (which is due to a rebase after this is merged)

I am happy to squash some/all of the commits - I kept them separate because I thought it was easier.

Edited by Niels Thykier

Merge request reports

Loading