Add a recursive mode #36

Open
opened 2026-04-24 00:20:09 +00:00 by adamwill · 0 comments
Owner

ATM I don't think rmdepcheck provides recursive information. That is, if the update or removal under test causes the deps of package foo to be broken, we report that - but we don't report that things which depend on foo are also now not installable.

It should I think theoretically be possible to do a recursive mode by, well, recursively invoking get_modified_repoclosure. Take the results, then add all packages reported broken by the first pass as removals for a second pass, and keep going until there's no new breakages. This would require making it possible to pass binary package NEVRs into get_modified_repoclosure, but that's easy.

I do worry this might get too slow/intensive, and any time you're recursing to have to guard against infinite recursion or the potential of some kind of loop developing. But it's maybe worth looking at for some use cases, I guess.

ATM I don't think rmdepcheck provides recursive information. That is, if the update or removal under test causes the deps of package foo to be broken, we report that - but we don't report that things which depend on foo are *also* now not installable. It should I think theoretically be possible to do a recursive mode by, well, recursively invoking `get_modified_repoclosure`. Take the results, then add all packages reported broken by the first pass as removals for a second pass, and keep going until there's no new breakages. This would require making it possible to pass binary package NEVRs into `get_modified_repoclosure`, but that's easy. I do worry this might get too slow/intensive, and any time you're recursing to have to guard against infinite recursion or the potential of some kind of loop developing. But it's maybe worth looking at for some use cases, I guess.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
quality/rmdepcheck#36
No description provided.