Skip to content

universal-lock: check that markers are disjoint before forking #3926

@BurntSushi

Description

@BurntSushi

In #3831, I decided to punt on checking whether markers were disjoint before forking the resolver. But we need to do this for correctness. Namely, if we fork because two different dependency specifications reference the same package but their markers are not disjoint, then we could wind up in a situation where two different versions of the same package would be installed according to the lock file. Which, of course, we cannot do. So we can only permit forking when marker expressions are completely disjoint, thus guaranteeing that only one version will be selected at install time.

Metadata

Metadata

Assignees

Labels

internalA refactor or improvement that is not user-facing

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions