Update pubgrub (#5649)

We improved the API structure in pubgrub, and also update to generally
keep up with upstream.
This commit is contained in:
konsti 2024-07-31 14:54:11 +02:00 committed by GitHub
parent 2574f5b3fd
commit 981661c4af
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 19 additions and 25 deletions

2
Cargo.lock generated
View file

@ -2706,7 +2706,7 @@ dependencies = [
[[package]]
name = "pubgrub"
version = "0.2.1"
source = "git+https://github.com/astral-sh/pubgrub?rev=3f0ba760951ab0deeac874b98bb18fc90103fcf7#3f0ba760951ab0deeac874b98bb18fc90103fcf7"
source = "git+https://github.com/astral-sh/pubgrub?rev=2fac39371a47e7cb821e510aaa4de25405413d29#2fac39371a47e7cb821e510aaa4de25405413d29"
dependencies = [
"indexmap",
"log",

View file

@ -109,7 +109,7 @@ pathdiff = { version = "0.2.1" }
petgraph = { version = "0.6.4" }
platform-info = { version = "2.0.2" }
proc-macro2 = { version = "1.0.86" }
pubgrub = { git = "https://github.com/astral-sh/pubgrub", rev = "3f0ba760951ab0deeac874b98bb18fc90103fcf7" }
pubgrub = { git = "https://github.com/astral-sh/pubgrub", rev = "2fac39371a47e7cb821e510aaa4de25405413d29" }
pyo3 = { version = "0.21.0" }
pyo3-log = { version = "0.10.0" }
quote = { version = "1.0.36" }

View file

@ -1,5 +1,5 @@
use itertools::Itertools;
use pubgrub::range::Range;
use pubgrub::Range;
use std::fmt::{Display, Formatter};
use tracing::debug;

View file

@ -1,7 +1,6 @@
use std::convert::Infallible;
use pubgrub::range::Range;
use pubgrub::solver::{Dependencies, DependencyProvider};
use pubgrub::{Dependencies, DependencyProvider, Range};
use pep440_rs::Version;

View file

@ -2,8 +2,7 @@ use std::collections::{BTreeMap, BTreeSet};
use std::fmt::Formatter;
use std::sync::Arc;
use pubgrub::range::Range;
use pubgrub::report::{DefaultStringReporter, DerivationTree, External, Reporter};
use pubgrub::{DefaultStringReporter, DerivationTree, External, Range, Reporter};
use rustc_hash::FxHashMap;
use distribution_types::{BuiltDist, IndexLocations, InstalledDist, SourceDist};
@ -117,7 +116,7 @@ impl<T> From<tokio::sync::mpsc::error::SendError<T>> for ResolveError {
/// A wrapper around [`pubgrub::error::NoSolutionError`] that displays a resolution failure report.
#[derive(Debug)]
pub struct NoSolutionError {
error: pubgrub::error::NoSolutionError<UvDependencyProvider>,
error: pubgrub::NoSolutionError<UvDependencyProvider>,
available_versions: FxHashMap<PubGrubPackage, BTreeSet<Version>>,
selector: CandidateSelector,
python_requirement: PythonRequirement,
@ -141,7 +140,7 @@ impl NoSolutionError {
}
pub(crate) fn new(
error: pubgrub::error::NoSolutionError<UvDependencyProvider>,
error: pubgrub::NoSolutionError<UvDependencyProvider>,
available_versions: FxHashMap<PubGrubPackage, BTreeSet<Version>>,
selector: CandidateSelector,
python_requirement: PythonRequirement,

View file

@ -3,7 +3,7 @@
use std::ops::Bound::{self, *};
use std::ops::RangeBounds;
use pubgrub::range::{Range as PubGrubRange, Range};
use pubgrub::Range as PubGrubRange;
use rustc_hash::FxHashMap;
use pep440_rs::{Version, VersionSpecifier};
@ -125,7 +125,7 @@ fn string_is_disjoint(this: &MarkerExpression, other: &MarkerExpression) -> bool
true
}
pub(crate) fn python_range(expr: &MarkerExpression) -> Option<Range<Version>> {
pub(crate) fn python_range(expr: &MarkerExpression) -> Option<PubGrubRange<Version>> {
match expr {
MarkerExpression::Version {
key: MarkerValueVersion::PythonFullVersion,
@ -331,7 +331,7 @@ pub(crate) fn normalize_all(
MarkerTree::Expression(expr)
if bound.is_some_and(|bound| {
python_range(&expr).is_some_and(|supported_range| {
Range::from(bound.clone()).subset_of(&supported_range)
PubGrubRange::from(bound.clone()).subset_of(&supported_range)
})
}) =>
{

View file

@ -1,7 +1,7 @@
use std::iter;
use itertools::Itertools;
use pubgrub::range::Range;
use pubgrub::Range;
use tracing::warn;
use pep440_rs::{Version, VersionSpecifiers};

View file

@ -1,6 +1,6 @@
use std::cmp::Reverse;
use pubgrub::range::Range;
use pubgrub::Range;
use rustc_hash::FxHashMap;
use crate::fork_urls::ForkUrls;

View file

@ -6,10 +6,7 @@ use std::ops::Bound;
use derivative::Derivative;
use indexmap::IndexSet;
use owo_colors::OwoColorize;
use pubgrub::range::Range;
use pubgrub::report::{DerivationTree, Derived, External, ReportFormatter};
use pubgrub::term::Term;
use pubgrub::type_aliases::Map;
use pubgrub::{DerivationTree, Derived, External, Map, Range, ReportFormatter, Term};
use rustc_hash::FxHashMap;
use distribution_types::IndexLocations;

View file

@ -1,7 +1,7 @@
use std::ops::Bound;
use itertools::Itertools;
use pubgrub::range::Range;
use pubgrub::Range;
use thiserror::Error;
use pep440_rs::{Operator, PreRelease, Version, VersionSpecifier, VersionSpecifiers};

View file

@ -3,7 +3,7 @@ use std::collections::Bound;
use std::ops::Deref;
use itertools::Itertools;
use pubgrub::range::Range;
use pubgrub::Range;
use distribution_filename::WheelFilename;
use pep440_rs::{Operator, Version, VersionSpecifier, VersionSpecifiers};

View file

@ -1,7 +1,7 @@
use std::cmp::min;
use itertools::Itertools;
use pubgrub::range::Range;
use pubgrub::Range;
use rustc_hash::FxHashMap;
use tokio::sync::mpsc::Sender;
use tracing::{debug, trace};

View file

@ -13,8 +13,7 @@ use dashmap::DashMap;
use either::Either;
use futures::{FutureExt, StreamExt};
use itertools::Itertools;
use pubgrub::range::Range;
use pubgrub::solver::{Incompatibility, State};
use pubgrub::{Incompatibility, Range, State};
use rustc_hash::{FxHashMap, FxHashSet};
use tokio::sync::mpsc::{self, Receiver, Sender};
use tokio::sync::oneshot;
@ -1885,7 +1884,7 @@ impl<InstalledPackages: InstalledPackagesProvider> ResolverState<InstalledPackag
fn convert_no_solution_err(
&self,
mut err: pubgrub::error::NoSolutionError<UvDependencyProvider>,
mut err: pubgrub::NoSolutionError<UvDependencyProvider>,
fork_urls: ForkUrls,
markers: ResolverMarkers,
visited: &FxHashSet<PackageName>,
@ -2245,7 +2244,7 @@ impl ForkState {
let mut edges: FxHashSet<ResolutionDependencyEdge> = FxHashSet::default();
for (package, self_version) in &solution {
for id in &self.pubgrub.incompatibilities[package] {
let pubgrub::solver::Kind::FromDependencyOf(
let pubgrub::Kind::FromDependencyOf(
ref self_package,
ref self_range,
ref dependency_package,