We could kind of easily mark all that are "Rescued" as such by only considering the dependencies of Rescued packages also as Rescued. That sentence sounds odd, but consider this dependency graph:
src:A bin:A bin:A-dev (depends on B-dev) src:B bin:B bin:B-dev Seed: A & B 1. The seed would pull in src:A and bin:A 2. The seed would pull in src:B and bin:B 3. The processing of includes reaches A-dev and it would get "Rescued from A" 4. A-dev is added with Dependencies, this puts B-dev in _all 5. The processing of includes reaches B-dev and it is skipped being already present Result: A-dev Rescued from A B-dev A-dev But the same with different include processing order 1. The seed would pull in src:A and bin:A 2. The seed would pull in src:B and bin:B 3. The processing of includes reaches B-dev and it would get "Rescued from B" 4. B-dev is added with Dependencies, this puts A-dev in _all 5. The processing of includes reaches A-dev and it is skipped being already present Result: B-dev Rescued from B A-dev B-dev In both cases the same set of packages would be seeded. But the reporting what dragged things in will be different and that makes debugging seed changes harder than it needs to be. If a dependency out of the "actual seeding" (not includes) has pulled in a package it already is in _all. So I think we could make it more clear that much more package than we think are in due to auto-includes. But we can't just keep output._all unchanged (which would simplify the check) as then we'd end up adding packages twice - once for a dependency from a "Rescue" include and once "itself" being an include. The "why" argument in def _add_package(self, seed, pkg, why, self._remember_why(seed._reasons, pkg, why, build_tree, recommends) self._remember_why(output._all_reasons, pkg, why, build_tree, But then it calls into "self._add_dependency_tree" which looses the reasoning the parent was brought in. Well, the change I have that sorts it already makes it reproducible which this bug is about. While later one can consider adding "indirectly rescued" labels somehow that would be too error prone to change atm. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1895106 Title: output non reproducible inhibiting verification of changes To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/germinate/+bug/1895106/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
