mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 13:25:00 +00:00
Fix forced resolution with all extras in uv version
(#14434)
Closes https://github.com/astral-sh/uv/issues/14433 Same as https://github.com/astral-sh/uv/pull/13380
This commit is contained in:
parent
c3f13d2505
commit
85c0fc963b
2 changed files with 55 additions and 1 deletions
|
@ -385,7 +385,7 @@ async fn lock_and_sync(
|
|||
let default_groups = default_dependency_groups(project.pyproject_toml())?;
|
||||
let default_extras = DefaultExtras::default();
|
||||
let groups = DependencyGroups::default().with_defaults(default_groups);
|
||||
let extras = ExtrasSpecification::from_all_extras().with_defaults(default_extras);
|
||||
let extras = ExtrasSpecification::default().with_defaults(default_extras);
|
||||
let install_options = InstallOptions::default();
|
||||
|
||||
// Convert to an `AddTarget` by attaching the appropriate interpreter or environment.
|
||||
|
|
|
@ -1958,3 +1958,57 @@ fn version_set_evil_constraints() -> Result<()> {
|
|||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Bump the version with conflicting extras, to ensure we're activating the correct subset of
|
||||
/// extras during the resolve.
|
||||
#[test]
|
||||
fn version_extras() -> Result<()> {
|
||||
let context = TestContext::new("3.12");
|
||||
|
||||
let pyproject_toml = context.temp_dir.child("pyproject.toml");
|
||||
pyproject_toml.write_str(
|
||||
r#"
|
||||
[project]
|
||||
name = "myproject"
|
||||
version = "1.10.31"
|
||||
requires-python = ">=3.12"
|
||||
|
||||
[project.optional-dependencies]
|
||||
foo = ["requests"]
|
||||
bar = ["httpx"]
|
||||
baz = ["flask"]
|
||||
|
||||
[tool.uv]
|
||||
conflicts = [[{"extra" = "foo"}, {"extra" = "bar"}]]
|
||||
"#,
|
||||
)?;
|
||||
|
||||
uv_snapshot!(context.filters(), context.version()
|
||||
.arg("--bump").arg("patch"), @r"
|
||||
success: true
|
||||
exit_code: 0
|
||||
----- stdout -----
|
||||
myproject 1.10.31 => 1.10.32
|
||||
|
||||
----- stderr -----
|
||||
Resolved 19 packages in [TIME]
|
||||
Audited in [TIME]
|
||||
");
|
||||
|
||||
// Sync an extra, we should not remove it.
|
||||
context.sync().arg("--extra").arg("foo").assert().success();
|
||||
|
||||
uv_snapshot!(context.filters(), context.version()
|
||||
.arg("--bump").arg("patch"), @r"
|
||||
success: true
|
||||
exit_code: 0
|
||||
----- stdout -----
|
||||
myproject 1.10.32 => 1.10.33
|
||||
|
||||
----- stderr -----
|
||||
Resolved 19 packages in [TIME]
|
||||
Audited in [TIME]
|
||||
");
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue