Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
10d5ac1
uv-pypi-types: rename ConflictPackage to ConflictKind
BurntSushi Nov 14, 2024
9026ff2
uv-pypi-types: add ConflictKind::Project
BurntSushi Nov 14, 2024
7fba6b5
uv-resolver: support project-level conflicts
BurntSushi Nov 14, 2024
1370e51
Merge branch 'main' into ag/package-level-conflict
zanieb Jul 10, 2025
dd410d0
Merge branch 'main' into ag/package-level-conflict
zanieb Jul 22, 2025
6ca33c7
Fully support project level conflicts
BurntSushi Jul 23, 2025
c379db0
Update `detect_conflicts` to take a `InstallTarget`
zanieb Jul 24, 2025
d54792b
Add `packages` utility to `InstallTarget`
zanieb Jul 24, 2025
95b6b20
Do not include conflicts for packages that will not be installed
zanieb Jul 24, 2025
827708e
Add test cases, improve `packages()`, fix errors
zanieb Jul 24, 2025
88eb0e9
Improve handling of package conflicts
zanieb Jul 24, 2025
3c1057d
Log resolver environments
zanieb Jul 24, 2025
d46a0f2
Remove unused dependency
zanieb Jul 24, 2025
9105464
Cleanup test
zanieb Jul 24, 2025
41b576b
Add more test cases
zanieb Jul 24, 2025
a4eff02
CLippy
zanieb Jul 24, 2025
3fea806
Add another extra test case
zanieb Jul 24, 2025
8e41471
Remove test cases moved to https://github.com/astral-sh/uv/pull/14879
zanieb Jul 24, 2025
05ce345
Revert "Log resolver environments"
zanieb Jul 24, 2025
a5ce1df
Update comments
zanieb Jul 24, 2025
fb0ca39
Expand comment
zanieb Jul 24, 2025
49a75fa
Add preview warning
zanieb Jul 24, 2025
22cce9d
Merge branch 'main' into zb/package-conflicts
zanieb Jul 25, 2025
55360d3
Merge with preview flag work
zanieb Jul 25, 2025
64a24f8
Merge branch 'main' into zb/package-conflicts
zanieb Jul 25, 2025
7927fb3
Add preview feature list
zanieb Jul 25, 2025
1dc7840
Fixup check
zanieb Jul 25, 2025
92f7621
Review
zanieb Aug 2, 2025
4e0d0ce
Merge branch 'main' into zb/package-conflicts
zanieb Aug 5, 2025
3c63ddd
Merge branch 'main' into zb/package-conflicts
zanieb Aug 5, 2025
9f23e5f
Merge branch 'main' into zb/package-conflicts
zanieb Aug 7, 2025
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
9 changes: 8 additions & 1 deletion crates/uv-configuration/src/preview.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ bitflags::bitflags! {
const JSON_OUTPUT = 1 << 2;
const PYLOCK = 1 << 3;
const ADD_BOUNDS = 1 << 4;
const EXTRA_BUILD_DEPENDENCIES = 1 << 5;
const PACKAGE_CONFLICTS = 1 << 5;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the thinking behind releasing this under a flag?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's in the summary

As with our existing support for conflicting extras, there are edge-cases here where the resolver will not fail even if there are conflicts that render a particular install target unusable. There's test coverage for some of these. We'll still error at install-time when the conflicting groups are selected. Due to the likelihood of bugs in this feature, I've marked it as a preview feature.

I'm just not sure we'll be able to meet our bar for correctness here in the first iteration.

const EXTRA_BUILD_DEPENDENCIES = 1 << 6;
}
}

Expand All @@ -29,6 +30,7 @@ impl PreviewFeatures {
Self::JSON_OUTPUT => "json-output",
Self::PYLOCK => "pylock",
Self::ADD_BOUNDS => "add-bounds",
Self::PACKAGE_CONFLICTS => "package-conflicts",
Self::EXTRA_BUILD_DEPENDENCIES => "extra-build-dependencies",
_ => panic!("`flag_as_str` can only be used for exactly one feature flag"),
}
Expand Down Expand Up @@ -72,6 +74,7 @@ impl FromStr for PreviewFeatures {
"json-output" => Self::JSON_OUTPUT,
"pylock" => Self::PYLOCK,
"add-bounds" => Self::ADD_BOUNDS,
"package-conflicts" => Self::PACKAGE_CONFLICTS,
"extra-build-dependencies" => Self::EXTRA_BUILD_DEPENDENCIES,
_ => {
warn_user_once!("Unknown preview feature: `{part}`");
Expand Down Expand Up @@ -235,6 +238,10 @@ mod tests {
assert_eq!(PreviewFeatures::JSON_OUTPUT.flag_as_str(), "json-output");
assert_eq!(PreviewFeatures::PYLOCK.flag_as_str(), "pylock");
assert_eq!(PreviewFeatures::ADD_BOUNDS.flag_as_str(), "add-bounds");
assert_eq!(
PreviewFeatures::PACKAGE_CONFLICTS.flag_as_str(),
"package-conflicts"
);
assert_eq!(
PreviewFeatures::EXTRA_BUILD_DEPENDENCIES.flag_as_str(),
"extra-build-dependencies"
Expand Down
Loading
Loading