uv/docs
Zanie Blue 8f71d239f8
Add support for `package`-level conflicts in workspaces (#14906)
Revives https://github.com/astral-sh/uv/pull/9130

Previously, we allowed scoping conflicting extras or groups to specific
packages, e.g. ,`{ package = "foo", extra = "bar" }` for a conflict in
`foo[bar]`. Now, we allow dropping the `extra` or `group` bit and using
`{ package = "foo" }` directly which declares a conflict with `foo`'s
production dependencies.

This means you can declare conflicts between workspace members, e.g.:

```
[tool.uv]
conflicts = [[{ package = "foo" }, { package = "bar" }]]
```

would not allow `foo` and `bar` to be installed at the same time.

Similarly, a conflict can be declared between a package and a group:

```
[tool.uv]
conflicts = [[{ package = "foo" }, { group = "lint" }]]
```

which would mean, e.g., that `--only-group lint` would be required for
the invocation.

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 would not recommend reading the commits as there's some slop from not
wanting to rebase Andrew's branch.

---------

Co-authored-by: Andrew Gallant <andrew@astral.sh>
2025-08-08 07:44:58 -05:00
..
.overrides Add ``last updated`` for document (#11164) 2025-02-03 22:28:47 -05:00
assets Add `static` assets to docs pages (#6951) 2024-09-02 20:00:30 -04:00
concepts Add support for `package`-level conflicts in workspaces (#14906) 2025-08-08 07:44:58 -05:00
getting-started Add missing periods (`.`) to list elements in `Features` docs page (#15138) 2025-08-07 15:42:50 -05:00
guides Bump version to v0.8.6 (#15137) 2025-08-07 16:17:14 +01:00
js Rename "Dependency specifiers" section to exclude PEP 508 reference (#14631) 2025-07-15 12:55:57 -05:00
pip Clarify which portions of requires-python behavior are consistent with pip (#14752) 2025-07-20 09:44:25 -04:00
reference Harden ZIP streaming to reject repeated entries and other malformed ZIP files (#15136) 2025-08-07 15:31:48 +01:00
stylesheets Improve visibility of copy and line separator in dark mode (#14987) 2025-07-31 06:50:12 -05:00
.gitignore Add structured documentation (#4426) 2024-06-26 11:28:42 -05:00
index.md Fix PowerShell code blocks (#13511) 2025-05-17 21:06:48 -05:00
requirements-insiders.in Reference the root requirements from the insiders requirements file (#5105) 2024-07-16 09:51:16 -05:00
requirements-insiders.txt Add an `llms.txt` to uv (#13929) 2025-06-10 07:46:49 -04:00
requirements.in Add an `llms.txt` to uv (#13929) 2025-06-10 07:46:49 -04:00
requirements.txt Add an `llms.txt` to uv (#13929) 2025-06-10 07:46:49 -04:00