You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The problem: The fields below (and the subsequent petgraph code) are missing the url, so we can't tell apart edges that are only different by their url, but equal by package name and version. This means in specific cases like the one in the section below we drop a marker and install the wrong package.
Create two dependency edges in two different forks that have the same starting package name and version and the same target package name and version, but are different in their url.
Looking at how to merge identical forks, i found that the `Resolution`
can be simplified by treating it as a nodes and edges store (plus pins,
they are separate since they are per name-version, not per
(virtual-)package-version). This should also make #5294 more apparent,
which i didn't touch here.
I additionally added some doc comments to the `Resolution` types.
Summary
The problem: The fields below (and the subsequent petgraph code) are missing the url, so we can't tell apart edges that are only different by their url, but equal by package name and version. This means in specific cases like the one in the section below we drop a marker and install the wrong package.
uv/crates/uv-resolver/src/resolver/mod.rs
Lines 2375 to 2380 in 5a23f05
Reproduction
Create two dependency edges in two different forks that have the same starting package name and version and the same target package name and version, but are different in their url.
/home/ferris/projects/uv/debug/a1
:/home/ferris/projects/uv/debug/a2
:In the lockfile, we're indeed missing the marker:
Instead of respecting the markers, we always install
a3
andanyio==4.4.0
for python 3.10-3.12.The text was updated successfully, but these errors were encountered: