Add docs for constraint-dependencies and override-dependencies (#6596)

Add missing portions of documents reported in #6518 and #5248(Comment).

## Summary

<img width="600" alt="override"
src="https://github.com/user-attachments/assets/062f0036-8672-4c68-b21c-aebdeb79b58b">

<img width="600" alt="constraint"
src="https://github.com/user-attachments/assets/f5ef1aa2-0662-4352-a1a0-3af1127fb7fb">
This commit is contained in:
Di-Is 2024-08-27 08:40:06 +09:00 committed by GitHub
parent 100e45ca33
commit 154ea243d0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 142 additions and 10 deletions

View file

@ -168,6 +168,47 @@ specified as `KEY=VALUE` pairs.
---
#### [`constraint-dependencies`](#constraint-dependencies) {: #constraint-dependencies }
Constraints to apply when resolving the project's dependencies.
Constraints are used to restrict the versions of dependencies that are selected during
resolution.
Including a package as a constraint will _not_ trigger installation of the package on its
own; instead, the package must be requested elsewhere in the project's first-party or
transitive dependencies.
!!! note
In `uv lock`, `uv sync`, and `uv run`, uv will only read `constraint-dependencies` from
the `pyproject.toml` at the workspace root, and will ignore any declarations in other
workspace members or `uv.toml` files.
**Default value**: `[]`
**Type**: `list[str]`
**Example usage**:
=== "pyproject.toml"
```toml
[tool.uv]
# Ensure that the grpcio version is always less than 1.65, if it's requested by a
# transitive dependency.
constraint-dependencies = ["grpcio<1.65"]
```
=== "uv.toml"
```toml
# Ensure that the grpcio version is always less than 1.65, if it's requested by a
# transitive dependency.
constraint-dependencies = ["grpcio<1.65"]
```
---
#### [`dev-dependencies`](#dev-dependencies) {: #dev-dependencies }
The project's development dependencies. Development dependencies will be installed by
@ -772,6 +813,48 @@ Disable network access, relying only on locally cached data and locally availabl
---
#### [`override-dependencies`](#override-dependencies) {: #override-dependencies }
Overrides to apply when resolving the project's dependencies.
Overrides are used to force selection of a specific version of a package, regardless of the
version requested by any other package, and regardless of whether choosing that version
would typically constitute an invalid resolution.
While constraints are _additive_, in that they're combined with the requirements of the
constituent packages, overrides are _absolute_, in that they completely replace the
requirements of any constituent packages.
!!! note
In `uv lock`, `uv sync`, and `uv run`, uv will only read `override-dependencies` from
the `pyproject.toml` at the workspace root, and will ignore any declarations in other
workspace members or `uv.toml` files.
**Default value**: `[]`
**Type**: `list[str]`
**Example usage**:
=== "pyproject.toml"
```toml
[tool.uv]
# Always install Werkzeug 2.3.0, regardless of whether transitive dependencies request
# a different version.
override-dependencies = ["werkzeug==2.3.0"]
```
=== "uv.toml"
```toml
# Always install Werkzeug 2.3.0, regardless of whether transitive dependencies request
# a different version.
override-dependencies = ["werkzeug==2.3.0"]
```
---
#### [`prerelease`](#prerelease) {: #prerelease }
The strategy to use when considering pre-release versions.