Skip to content

Commit

Permalink
Use fork preferences in resolution
Browse files Browse the repository at this point in the history
With this change, the "preferences-dependent-forking" packse scenario becomes stable.
  • Loading branch information
konstin committed Jul 26, 2024
1 parent f149824 commit d31a01e
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
12 changes: 11 additions & 1 deletion crates/uv-resolver/src/resolver/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,17 @@ impl<InstalledPackages: InstalledPackagesProvider> ResolverState<InstalledPackag
self.requires_python.clone(),
);
let mut preferences = self.preferences.clone();
let mut forked_states = vec![state];
let mut forked_states = if let ResolverMarkers::Universal {
fork_preferences: Some(fork_preferences),
} = &self.markers
{
fork_preferences
.iter()
.map(|fork_preference| state.clone().with_markers(fork_preference.clone()))
.collect()
} else {
vec![state]
};
let mut resolutions = vec![];

'FORK: while let Some(mut state) = forked_states.pop() {
Expand Down
4 changes: 2 additions & 2 deletions crates/uv/src/commands/project/lock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ async fn do_lock(
&Reinstall::default(),
upgrade,
None,
resolver_markers,
resolver_markers.clone(),
python_requirement.clone(),
&client,
&flat_index,
Expand Down Expand Up @@ -516,7 +516,7 @@ async fn do_lock(
&Reinstall::default(),
upgrade,
None,
ResolverMarkers::universal(None),
resolver_markers,
python_requirement,
&client,
&flat_index,
Expand Down

0 comments on commit d31a01e

Please sign in to comment.