Skip to content

Commit

Permalink
Add priorities for editables (#3133)
Browse files Browse the repository at this point in the history
## Summary

We weren't setting a priority for editables, so they were being visited
last.

I think there's still a problem whereby we're not aggressive enough in
visiting recursive extras (and, in fact, that's making it really hard to
write a test -- I wrote a test, but the most-reduced case still fails,
and I'd need to add a layer of indirection to make it
fail-on-main-but-pass-on-this-branch), but that problem likely already
existed on main prior to #3087, so I just want to get this quick fix out
now.

Closes #3127.

## Test Plan

- `git clone https://github.com/cda-tum/mqt-core.git`
- `cargo run venv`
- `cargo run pip install 'scikit-build-core[pyproject]>=0.8.1'
'setuptools_scm>=7' 'pybind11>=2.12' --resolution=lowest-direct`
- `cargo run pip install --no-build-isolation
'-ve.[test,qiskit,evaluation,coverage]' --resolution=lowest-direct`
  • Loading branch information
charliermarsh committed Apr 19, 2024
1 parent 2e88bb6 commit a241bc7
Showing 1 changed file with 16 additions and 9 deletions.
25 changes: 16 additions & 9 deletions crates/uv-resolver/src/resolver/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -831,10 +831,17 @@ impl<

// Add a dependency on each editable.
for (editable, metadata) in self.editables.iter() {
constraints.push(
PubGrubPackage::from_package(metadata.name.clone(), None, &self.urls),
Range::singleton(metadata.version.clone()),
);
let package =
PubGrubPackage::from_package(metadata.name.clone(), None, &self.urls);
let version = Range::singleton(metadata.version.clone());

// Update the package priorities.
priorities.insert(&package, &version);

// Add the editable as a direct dependency.
constraints.push(package, version);

// Add a dependency on each extra.
for extra in &editable.extras {
constraints.push(
PubGrubPackage::from_package(
Expand Down Expand Up @@ -891,7 +898,7 @@ impl<
)?;

for (dep_package, dep_version) in constraints.iter() {
debug!("Adding transitive dependency for {package}{version}: {dep_package}{dep_version}");
debug!("Adding transitive dependency for {package}=={version}: {dep_package}{dep_version}");

// Update the package priorities.
priorities.insert(dep_package, dep_version);
Expand Down Expand Up @@ -999,14 +1006,14 @@ impl<
self.markers,
)?;

for (package, version) in constraints.iter() {
debug!("Adding transitive dependency: {package}{version}");
for (dep_package, dep_version) in constraints.iter() {
debug!("Adding transitive dependency for {package}=={version}: {dep_package}{dep_version}");

// Update the package priorities.
priorities.insert(package, version);
priorities.insert(dep_package, dep_version);

// Emit a request to fetch the metadata for this package.
self.visit_package(package, request_sink).await?;
self.visit_package(dep_package, request_sink).await?;
}

Ok(Dependencies::Available(constraints.into()))
Expand Down

0 comments on commit a241bc7

Please sign in to comment.