From ada22260898f853ae0ba97d25147cc95b2ff190e Mon Sep 17 00:00:00 2001 From: Zanie Date: Tue, 14 Nov 2023 12:06:26 -0600 Subject: [PATCH] Reduce the size of the `ConflictingVersions` err variant --- .../pip_compile__compile_unsolvable_requirements.snap | 8 ++++---- crates/puffin-resolver/src/error.rs | 4 ++-- crates/puffin-resolver/src/pubgrub/dependencies.rs | 5 ++--- crates/puffin-resolver/src/pubgrub/report.rs | 1 - crates/puffin-resolver/src/resolver.rs | 2 +- 5 files changed, 9 insertions(+), 11 deletions(-) diff --git a/crates/puffin-cli/tests/snapshots/pip_compile__compile_unsolvable_requirements.snap b/crates/puffin-cli/tests/snapshots/pip_compile__compile_unsolvable_requirements.snap index f4320bd8fc09..db0d74a94fc2 100644 --- a/crates/puffin-cli/tests/snapshots/pip_compile__compile_unsolvable_requirements.snap +++ b/crates/puffin-cli/tests/snapshots/pip_compile__compile_unsolvable_requirements.snap @@ -6,9 +6,9 @@ info: - pip-compile - pyproject.toml - "--cache-dir" - - /var/folders/bc/qlsk3t6x7c9fhhbvvcg68k9c0000gp/T/.tmpvGljPp + - /var/folders/bc/qlsk3t6x7c9fhhbvvcg68k9c0000gp/T/.tmpJ9Dkj3 env: - VIRTUAL_ENV: /var/folders/bc/qlsk3t6x7c9fhhbvvcg68k9c0000gp/T/.tmp2rBXR2/.venv + VIRTUAL_ENV: /var/folders/bc/qlsk3t6x7c9fhhbvvcg68k9c0000gp/T/.tmpBOyFGn/.venv --- success: false exit_code: 1 @@ -16,6 +16,6 @@ exit_code: 1 ----- stderr ----- × No solution found when resolving dependencies: - ╰─▶ my-project dependencies are unusable: `django==5.0b1` does not intersect - with `django==5.0a1` + ╰─▶ my-project dependencies are unusable: Conflicting versions for `django`: + `django==5.0b1` does not intersect with `django==5.0a1` diff --git a/crates/puffin-resolver/src/error.rs b/crates/puffin-resolver/src/error.rs index 8351dd165d23..59f0c6d75973 100644 --- a/crates/puffin-resolver/src/error.rs +++ b/crates/puffin-resolver/src/error.rs @@ -44,8 +44,8 @@ pub enum ResolveError { #[error("Conflicting URLs for package `{0}`: {1} and {2}")] ConflictingUrls(PackageName, String, String), - #[error("`{0}{1}` does not intersect with `{0}{2}`")] - ConflictingVersions(PubGrubPackage, Range, Range), + #[error("Conflicting versions for `{0}`: {1}")] + ConflictingVersions(String, String), #[error("Package `{0}` attempted to resolve via URL: {1}. URL dependencies must be expressed as direct requirements or constraints. Consider adding `{0} @ {1}` to your dependencies or constraints file.")] DisallowedUrl(PackageName, Url), diff --git a/crates/puffin-resolver/src/pubgrub/dependencies.rs b/crates/puffin-resolver/src/pubgrub/dependencies.rs index 955e1034dac9..e9fe2f110b6e 100644 --- a/crates/puffin-resolver/src/pubgrub/dependencies.rs +++ b/crates/puffin-resolver/src/pubgrub/dependencies.rs @@ -185,9 +185,8 @@ fn merge_versions( let result = left.intersection(right); if result.is_empty() { Err(ResolveError::ConflictingVersions( - package.clone(), - left.clone(), - right.clone(), + package.to_string(), + format!("`{package}{left}` does not intersect with `{package}{right}`"), )) } else { Ok(result) diff --git a/crates/puffin-resolver/src/pubgrub/report.rs b/crates/puffin-resolver/src/pubgrub/report.rs index 15521d6dd074..14f648916d03 100644 --- a/crates/puffin-resolver/src/pubgrub/report.rs +++ b/crates/puffin-resolver/src/pubgrub/report.rs @@ -1,6 +1,5 @@ use std::fmt; -use pubgrub::package::Package; use pubgrub::range::Range; use pubgrub::report::{DerivationTree, Derived, External, Reporter}; use pubgrub::term::Term; diff --git a/crates/puffin-resolver/src/resolver.rs b/crates/puffin-resolver/src/resolver.rs index eb17d5b83373..6b7abd393247 100644 --- a/crates/puffin-resolver/src/resolver.rs +++ b/crates/puffin-resolver/src/resolver.rs @@ -465,7 +465,7 @@ impl<'a, Context: BuildContext + Sync> Resolver<'a, Context> { self.markers, ); if let Err(err @ ResolveError::ConflictingVersions(..)) = constraints { - return Ok(Dependencies::Unusable(Some(format!("{err}")))); + return Ok(Dependencies::Unusable(Some(err.to_string()))); } let constraints = constraints?;