uv
2352e745 - uv-resolver: fix conflict marker simplification bug

Commit
305 days ago
uv-resolver: fix conflict marker simplification bug The underlying cause here, I believe, was that we weren't accounting for the case where an edge could be visited *without* any extras enabled. Because of that, we got into situations where we thought there was only one path to an edge when there were actually more paths. This in turn lead to us erroneously doing simplification where it actually isn't justified. And in turn lead to duplicate versions of the same package being installed in the same environment. The fix for this ends up being really simple: in the case where we don't add any conflict items for a package during graph traversal, we materialize an empty set of conflicts to mark the case of no extras being enabled when visiting the child edges. This is enough to propagate the knowledge of multiple paths to the same edge and causes us to avoid doing improper simplifications. This does fix the problem in the snapshot, but it does also I think lead to other cases where simplifications are no longer possible (hence the changes to the airflow snapshot). But this seems expected, since we are doing strictly less simplification than we were before. It's unclear if all of those cases were actual bugs or not though.
Author
Committer
Parents
Loading