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

Reply via email to