From 44e880e7c3c1dac2277bc4d1fbe174dc0bfff8e9 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Tue, 13 Aug 2024 21:52:57 -0400 Subject: [PATCH] Remove same-graph merging in resolver --- crates/uv-resolver/src/resolver/mod.rs | 38 -------------------------- crates/uv/tests/ecosystem.rs | 4 +-- crates/uv/tests/lock.rs | 24 ++++++++-------- 3 files changed, 12 insertions(+), 54 deletions(-) diff --git a/crates/uv-resolver/src/resolver/mod.rs b/crates/uv-resolver/src/resolver/mod.rs index 70e248aefdda..1ec7658ec848 100644 --- a/crates/uv-resolver/src/resolver/mod.rs +++ b/crates/uv-resolver/src/resolver/mod.rs @@ -400,29 +400,6 @@ impl ResolverState bool { - // TODO(konsti): The edges being equal is not a requirement for the graph being equal. While - // an exact solution is too much here, we should ignore different in edges that point to - // nodes that are always installed. Example: root requires foo, root requires bar. bar - // forks, and one for the branches has bar -> foo while the other doesn't. The resolution - // is still the same graph since the presence or absence of the bar -> foo edge cannot - // change which packages and versions are installed. - self.nodes == other.nodes && self.edges == other.edges - } -} - impl ResolutionPackage { pub(crate) fn is_base(&self) -> bool { self.extra.is_none() && self.dev.is_none() diff --git a/crates/uv/tests/ecosystem.rs b/crates/uv/tests/ecosystem.rs index c301d216931d..4d2429a76a2f 100644 --- a/crates/uv/tests/ecosystem.rs +++ b/crates/uv/tests/ecosystem.rs @@ -33,9 +33,7 @@ fn packse() -> Result<()> { // Source: https://github.com/konstin/github-wikidata-bot/blob/8218d20985eb480cb8633026f9dabc9e5ec4b5e3/pyproject.toml #[test] fn github_wikidata_bot() -> Result<()> { - // TODO(charlie): This test became non-deterministic in https://github.com/astral-sh/uv/pull/6065. - // However, that fix is _correct_, and the non-determinism itself is an existing bug. - lock_ecosystem_package_non_deterministic("3.12", "github-wikidata-bot") + lock_ecosystem_package("3.12", "github-wikidata-bot") } // Source: https://github.com/psf/black/blob/9ff047a9575f105f659043f28573e1941e9cdfb3/pyproject.toml diff --git a/crates/uv/tests/lock.rs b/crates/uv/tests/lock.rs index 2cf2ee1b328c..fe91eb45e821 100644 --- a/crates/uv/tests/lock.rs +++ b/crates/uv/tests/lock.rs @@ -3626,19 +3626,17 @@ fn lock_python_version_marker_complement() -> Result<()> { ); }); - // TODO(charlie): This test became non-deterministic in https://github.com/astral-sh/uv/pull/6065. - // But that fix is correct, and the non-determinism itself is a bug. - // // Re-run with `--locked`. - // uv_snapshot!(context.filters(), context.lock().arg("--locked"), @r###" - // success: false - // exit_code: 2 - // ----- stdout ----- - // - // ----- stderr ----- - // warning: `uv lock` is experimental and may change without warning - // Resolved 4 packages in [TIME] - // error: The lockfile at `uv.lock` needs to be updated, but `--locked` was provided. To update the lockfile, run `uv lock`. - // "###); + // Re-run with `--locked`. + uv_snapshot!(context.filters(), context.lock().arg("--locked"), @r###" + success: false + exit_code: 2 + ----- stdout ----- + + ----- stderr ----- + warning: `uv lock` is experimental and may change without warning + Resolved 4 packages in [TIME] + error: The lockfile at `uv.lock` needs to be updated, but `--locked` was provided. To update the lockfile, run `uv lock`. + "###); Ok(()) }