How do lockers guarantee that backtracking is never needed? E.g. a simple case:
Top-level requirements: A, B
A’s requirements:
B == 1; sys_platform == "win32"
B == 2; sys_platform == "darwin"
Now, suppose the installer happens to process the top-level requirements in the order B
first, then A
. Since both B == 1
and B == 2
have to be listed in the lockfile, the installer has to pick one. Presumably it will pick B == 2
, because that’s the latest version. But on windows, this will later turn out to be a mistake, forcing it to backtrack…
Does that make this an invalid lockfile, or… what?