Description
Hello @edsko,
Was it intentional for PlanIndex.dependencyClosure
to not follow setup dependencies? It seems that it could go either way. Very subtle, and not documented!
When I change this function to follow setup dependencies, I find cycleThroughSetupDep5
starts failing. The reason is that when we construct an InstallPlan, we check to see if all of the versions of each transitive dependency tree are consistent. This process uses PlanIndex.dependencyClosure
; and indeed if we don't chase setup dependencies we don't end up with inconsistent versions in our plans. I suppose it works out, but it is very finely balanced. To whit, I don't think we are able to detect if the solver produces an inconsistent set of versions for the setup dependency itself!
I encountered this while working on #3525. For now I'll hew to the old behavior, but I think this is a bit too tricky.