Refactor the handling of the policy info code, so every policy does
not have to implement the same boilerplate code.
Signed-off-by: Niels Thykier <niels@thykier.net>
For items not having an age requirements (e.g. urgency=critical)
always list the "missing build" note if present.
Signed-off-by: Niels Thykier <niels@thykier.net>
This hint will block all "new" source migrations. Source migrations
for packages already in testing will be affected by this. As usual,
this hint can be overruled by an unblock hint.
Closes: GH#8
Signed-off-by: Niels Thykier <niels@thykier.net>
Reduce a "loop over all valid items" to a "loop over an item's
dependencies + reverse dependencies". For sparse graphs, this
is much more efficient.
Signed-off-by: Niels Thykier <niels@thykier.net>
Possibly, Britney should support this somewhat more gracefully. But
start with this work around for now.
Signed-off-by: Niels Thykier <niels@thykier.net>
We do not need these in the HeidiResult file, so we might as well stop
emitting them. Note that faux packages will still appear in other
output (like the "uninst" lists/caches).
Signed-off-by: Niels Thykier <niels@thykier.net>
python-apt's "TagFile" seems to cut the field short if it meets a
comment. Therefore allow comments in the actual field value to avoid
this nasty behaviour.
Signed-off-by: Niels Thykier <niels@thykier.net>
Packages in main should not need them. Presuming we eventually make
Britney enforce separation between components, "non-free" seems like a
better default.
Signed-off-by: Niels Thykier <niels@thykier.net>
If there is a regression in "present-and-installable" constraints (on
non-break architectures), then discard the item even if the nuninst
counters have improved.
Signed-off-by: Niels Thykier <niels@thykier.net>
Replace a "if" with an unconditionally false condition with a negative
assert of the "correct" condition. The bug has been present for 2½
years with no known adverse effects.
Signed-off-by: Niels Thykier <niels@thykier.net>
For (non-hint) migrations, split the set of affected into two
parts; one for reverse dependencies and one "negative dependencies"
(e.g. Conflicts).
If there are only regressions in the nuninst after checking the first
set, then there is no reason to continue with the second set (as
"negative dependencies" can only make it worse at that point).
Signed-off-by: Niels Thykier <niels@thykier.net>