Skip to content

PlanIndex.dependencyClosure does not follow setup dependencies(?) #3528

Closed
@ezyang

Description

@ezyang

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions