Hi Simon, On Sat, Apr 22, 2023 at 11:41:29AM +0100, Simon McVittie wrote: > You might reasonably say that "the maintainer of bar didn't add the > correct Breaks/Replaces on foo" is a RC bug in bar - and it is! - but > judging by the number of "missing Breaks/Replaces" bug reports that have > to be opened by unstable users (sometimes me), it's a very easy mistake > to make.
That number seemed quite vague to me and I wanted to get a better handle on it. The rough idea here should be that we have some package from bullseye and "upgrade" it to a different package from bookworm. Generating useful candidates for this can be done using Contents. Given candidates, I've attached a validation script: ./check_conflicts.sh $OLDPKG bullseye $NEWPKG bookworm In order to draw value from it, the output must be parsed. The exit code can be non-zero for various reasons. As for candidate generation, I think one can either just try them all (which takes a bit longer on the validation phase) or reduce their number by ignoring existing Breaks+Replaces, but I haven't found an elegant solution for the latter yet. In any case, unstable has around: * 5700 Breaks * 6500 Replaces * 100 unpack errors due to missing Breaks+Replaces That latter number has just been turned into rc bugs... So maybe it isn't as bad as we think it is, but it definitely is an aspect that may require a more automated solution. In any case, that also gives us a rough idea on how many Breaks+Replaces we'd have to convert to Conflicts. 6000 likely is an upper bound. I expect that it is probably below 1000 since we can ignore conflicting paths that reside below /usr only. I'm not sure whether these numbers argue in favour or against the projected approach. Helmut
check_conflicts.sh
Description: Bourne shell script