Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions crates/uv/tests/pip_compile_scenarios.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//! DO NOT EDIT
//!
//! Generated with `./scripts/sync_scenarios.sh`
//! Scenarios from <https://github.com/astral-sh/packse/tree/0.3.14/scenarios>
//! Scenarios from <https://github.com/astral-sh/packse/tree/0.3.15/scenarios>
//!
#![cfg(all(feature = "python", feature = "pypi", unix))]

Expand All @@ -27,9 +27,9 @@ fn command(context: &TestContext, python_versions: &[&str]) -> Command {
.arg("compile")
.arg("requirements.in")
.arg("--index-url")
.arg("https://astral-sh.github.io/packse/0.3.14/simple-html/")
.arg("https://astral-sh.github.io/packse/0.3.15/simple-html/")
.arg("--find-links")
.arg("https://raw.githubusercontent.com/astral-sh/packse/0.3.14/vendor/links.html")
.arg("https://raw.githubusercontent.com/astral-sh/packse/0.3.15/vendor/links.html")
.arg("--cache-dir")
.arg(context.cache_dir.path())
.env("VIRTUAL_ENV", context.venv.as_os_str())
Expand Down
51 changes: 48 additions & 3 deletions crates/uv/tests/pip_install_scenarios.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//! DO NOT EDIT
//!
//! Generated with `./scripts/sync_scenarios.sh`
//! Scenarios from <https://github.com/astral-sh/packse/tree/0.3.14/scenarios>
//! Scenarios from <https://github.com/astral-sh/packse/tree/0.3.15/scenarios>
//!
#![cfg(all(feature = "python", feature = "pypi", unix))]

Expand Down Expand Up @@ -46,9 +46,9 @@ fn command(context: &TestContext) -> Command {
.arg("pip")
.arg("install")
.arg("--index-url")
.arg("https://astral-sh.github.io/packse/0.3.14/simple-html/")
.arg("https://astral-sh.github.io/packse/0.3.15/simple-html/")
.arg("--find-links")
.arg("https://raw.githubusercontent.com/astral-sh/packse/0.3.14/vendor/links.html")
.arg("https://raw.githubusercontent.com/astral-sh/packse/0.3.15/vendor/links.html")
.arg("--cache-dir")
.arg(context.cache_dir.path())
.env("VIRTUAL_ENV", context.venv.as_os_str())
Expand Down Expand Up @@ -1258,6 +1258,51 @@ fn transitive_incompatible_with_transitive() {
);
}

/// The user requires `a`, which requires two incompatible, existing versions of
/// package `b`
///
/// ```text
/// transitive-incompatible-versions
/// ├── environment
/// │ └── python3.8
/// ├── root
/// │ └── requires a==1.0.0
/// │ └── satisfied by a-1.0.0
/// └── a
/// └── a-1.0.0
/// ├── requires b==2.0.0
/// └── unsatisfied: no versions for package
/// └── requires b==1.0.0
/// └── unsatisfied: no versions for package
/// ```
#[test]
fn transitive_incompatible_versions() {
let context = TestContext::new("3.8");

// In addition to the standard filters, swap out package names for shorter messages
let mut filters = context.filters();
filters.push((r"transitive-incompatible-versions-", "package-"));

uv_snapshot!(filters, command(&context)
.arg("transitive-incompatible-versions-a==1.0.0")
, @r###"
success: false
exit_code: 1
----- stdout -----

----- stderr -----
× No solution found when resolving dependencies:
╰─▶ Because package-a==1.0.0 depends on package-b==1.0.0 and package-a==1.0.0 depends on package-b==2.0.0, we can conclude that package-a==1.0.0 cannot be used.
And because you require package-a==1.0.0, we can conclude that the requirements are unsatisfiable.
"###);

assert_not_installed(
&context.venv,
"transitive_incompatible_versions_a",
&context.temp_dir,
);
}

/// A simple version constraint should not exclude published versions with local
/// segments.
///
Expand Down
16 changes: 9 additions & 7 deletions scripts/scenarios/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ charset-normalizer==3.3.2
# via requests
chevron-blue==0.2.1
# via packse
docutils==0.21.post1
docutils==0.21.2
# via readme-renderer
hatchling==1.22.5
hatchling==1.24.2
# via packse
idna==3.6
idna==3.7
# via requests
importlib-metadata==7.1.0
# via twine
jaraco-classes==3.4.0
# via keyring
jaraco-context==5.3.0
# via keyring
jaraco-functools==4.0.0
jaraco-functools==4.0.1
# via keyring
keyring==25.1.0
# via twine
Expand All @@ -36,17 +36,19 @@ nh3==0.2.17
# via readme-renderer
packaging==24.0
# via hatchling
packse==0.3.14
packse==0.3.15
pathspec==0.12.1
# via hatchling
pkginfo==1.10.0
# via twine
pluggy==1.4.0
pluggy==1.5.0
# via hatchling
pygments==2.17.2
# via
# readme-renderer
# rich
pyyaml==6.0.1
# via packse
readme-renderer==43.0
# via twine
requests==2.31.0
Expand All @@ -59,7 +61,7 @@ rfc3986==2.0.0
# via twine
rich==13.7.1
# via twine
setuptools==69.2.0
setuptools==69.5.1
# via packse
trove-classifiers==2024.4.10
# via hatchling
Expand Down