diff --git a/crates/uv-settings/src/settings.rs b/crates/uv-settings/src/settings.rs index b2c10107b..01e57a187 100644 --- a/crates/uv-settings/src/settings.rs +++ b/crates/uv-settings/src/settings.rs @@ -639,9 +639,8 @@ pub struct ResolverInstallerOptions { default = "[]", value_type = "dict", example = r#" - [extra-build-dependencies] - pytest = ["setuptools"] - "# + extra-build-dependencies = { pytest = ["setuptools"] } + "# )] pub extra_build_dependencies: Option, /// Extra environment variables to set when building certain packages. @@ -652,8 +651,7 @@ pub struct ResolverInstallerOptions { default = r#"{}"#, value_type = r#"dict[str, dict[str, str]]"#, example = r#" - [tool.uv.extra-build-variables] - flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" } + extra-build-variables = { flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" } } "# )] pub extra_build_variables: Option, @@ -1178,8 +1176,7 @@ pub struct PipOptions { default = "[]", value_type = "dict", example = r#" - [extra-build-dependencies] - pytest = ["setuptools"] + extra-build-dependencies = { pytest = ["setuptools"] } "# )] pub extra_build_dependencies: Option, @@ -1191,8 +1188,7 @@ pub struct PipOptions { default = r#"{}"#, value_type = r#"dict[str, dict[str, str]]"#, example = r#" - [extra-build-variables] - flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" } + extra-build-variables = { flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" } } "# )] pub extra_build_variables: Option, diff --git a/crates/uv-workspace/src/pyproject.rs b/crates/uv-workspace/src/pyproject.rs index 3bc7322fe..66d46d1ce 100644 --- a/crates/uv-workspace/src/pyproject.rs +++ b/crates/uv-workspace/src/pyproject.rs @@ -22,7 +22,7 @@ use serde::{Deserialize, Deserializer, Serialize}; use thiserror::Error; use uv_build_backend::BuildBackendSettings; -use uv_distribution_types::{ExtraBuildVariables, Index, IndexName, RequirementSource}; +use uv_distribution_types::{Index, IndexName, RequirementSource}; use uv_fs::{PortablePathBuf, relative_to}; use uv_git_types::GitReference; use uv_macros::OptionsMetadata; @@ -428,35 +428,6 @@ pub struct ToolUv { )] pub dependency_groups: Option, - /// Additional build dependencies for packages. - /// - /// This allows extending the PEP 517 build environment for the project's dependencies with - /// additional packages. This is useful for packages that assume the presence of packages, like, - /// `pip`, and do not declare them as build dependencies. - #[option( - default = "[]", - value_type = "dict", - example = r#" - [tool.uv.extra-build-dependencies] - pytest = ["pip"] - "# - )] - pub extra_build_dependencies: Option, - - /// Extra environment variables to set when building certain packages. - /// - /// Environment variables will be added to the environment when building the - /// specified packages. - #[option( - default = r#"{}"#, - value_type = r#"dict[str, dict[str, str]]"#, - example = r#" - [tool.uv.extra-build-variables] - flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" } - "# - )] - pub extra_build_variables: Option, - /// The project's development dependencies. /// /// Development dependencies will be installed by default in `uv run` and `uv sync`, but will diff --git a/crates/uv-workspace/src/workspace.rs b/crates/uv-workspace/src/workspace.rs index 62aa9ca1c..d277dc7c8 100644 --- a/crates/uv-workspace/src/workspace.rs +++ b/crates/uv-workspace/src/workspace.rs @@ -1970,8 +1970,6 @@ mod tests { "package": null, "default-groups": null, "dependency-groups": null, - "extra-build-dependencies": null, - "extra-build-variables": null, "dev-dependencies": null, "override-dependencies": null, "constraint-dependencies": null, @@ -2072,8 +2070,6 @@ mod tests { "package": null, "default-groups": null, "dependency-groups": null, - "extra-build-dependencies": null, - "extra-build-variables": null, "dev-dependencies": null, "override-dependencies": null, "constraint-dependencies": null, @@ -2287,8 +2283,6 @@ mod tests { "package": null, "default-groups": null, "dependency-groups": null, - "extra-build-dependencies": null, - "extra-build-variables": null, "dev-dependencies": null, "override-dependencies": null, "constraint-dependencies": null, @@ -2398,8 +2392,6 @@ mod tests { "package": null, "default-groups": null, "dependency-groups": null, - "extra-build-dependencies": null, - "extra-build-variables": null, "dev-dependencies": null, "override-dependencies": null, "constraint-dependencies": null, @@ -2522,8 +2514,6 @@ mod tests { "package": null, "default-groups": null, "dependency-groups": null, - "extra-build-dependencies": null, - "extra-build-variables": null, "dev-dependencies": null, "override-dependencies": null, "constraint-dependencies": null, @@ -2620,8 +2610,6 @@ mod tests { "package": null, "default-groups": null, "dependency-groups": null, - "extra-build-dependencies": null, - "extra-build-variables": null, "dev-dependencies": null, "override-dependencies": null, "constraint-dependencies": null, diff --git a/crates/uv/tests/it/sync.rs b/crates/uv/tests/it/sync.rs index b2ff3a16a..1e63246bf 100644 --- a/crates/uv/tests/it/sync.rs +++ b/crates/uv/tests/it/sync.rs @@ -12745,7 +12745,7 @@ fn sync_build_dependencies_respect_locked_versions() -> Result<()> { uv_snapshot!(context.filters(), context.sync(), @r#" success: false - exit_code: 2 + exit_code: 1 ----- stdout ----- ----- stderr ----- @@ -12756,12 +12756,16 @@ fn sync_build_dependencies_respect_locked_versions() -> Result<()> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dependencies marked with `match-runtime = true` cannot include version specifiers - error: Failed to parse: `pyproject.toml` - Caused by: TOML parse error at line 11, column 9 - | - 11 | child = [{ requirement = "anyio>4", match-runtime = true }] - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Dependencies marked with `match-runtime = true` cannot include version specifiers + Resolved [N] packages in [TIME] + × Failed to build `child @ file://[TEMP_DIR]/child` + ├─▶ The build backend returned an error + ╰─▶ Call to `build_backend.build_wheel` failed (exit status: 1) + + [stderr] + `EXPECTED_ANYIO_VERSION` not set + + hint: This usually indicates a problem with the package or the build environment. + help: `child` was included because `parent` (v0.1.0) depends on `child` "#); Ok(()) diff --git a/docs/reference/settings.md b/docs/reference/settings.md index 97e9656b0..45da90002 100644 --- a/docs/reference/settings.md +++ b/docs/reference/settings.md @@ -202,49 +202,6 @@ environments = ["sys_platform == 'darwin'"] --- -### [`extra-build-dependencies`](#extra-build-dependencies) {: #extra-build-dependencies } - -Additional build dependencies for packages. - -This allows extending the PEP 517 build environment for the project's dependencies with -additional packages. This is useful for packages that assume the presence of packages, like, -`pip`, and do not declare them as build dependencies. - -**Default value**: `[]` - -**Type**: `dict` - -**Example usage**: - -```toml title="pyproject.toml" - -[tool.uv.extra-build-dependencies] -pytest = ["pip"] -``` - ---- - -### [`extra-build-variables`](#extra-build-variables) {: #extra-build-variables } - -Extra environment variables to set when building certain packages. - -Environment variables will be added to the environment when building the -specified packages. - -**Default value**: `{}` - -**Type**: `dict[str, dict[str, str]]` - -**Example usage**: - -```toml title="pyproject.toml" - -[tool.uv.extra-build-variables] -flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" } -``` - ---- - ### [`index`](#index) {: #index } The indexes to use when resolving dependencies. @@ -1188,14 +1145,12 @@ additional packages. This is useful for packages that assume the presence of pac ```toml [tool.uv] - [extra-build-dependencies] - pytest = ["setuptools"] + extra-build-dependencies = { pytest = ["setuptools"] } ``` === "uv.toml" ```toml - [extra-build-dependencies] - pytest = ["setuptools"] + extra-build-dependencies = { pytest = ["setuptools"] } ``` --- @@ -1216,14 +1171,13 @@ specified packages. === "pyproject.toml" ```toml - [tool.uv.extra-build-variables] - flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" } + [tool.uv] + extra-build-variables = { flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" } } ``` === "uv.toml" ```toml - [tool.uv.extra-build-variables] - flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" } + extra-build-variables = { flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" } } ``` --- @@ -2741,15 +2695,13 @@ additional packages. This is useful for packages that assume the presence of pac ```toml [tool.uv.pip] - [extra-build-dependencies] - pytest = ["setuptools"] + extra-build-dependencies = { pytest = ["setuptools"] } ``` === "uv.toml" ```toml [pip] - [extra-build-dependencies] - pytest = ["setuptools"] + extra-build-dependencies = { pytest = ["setuptools"] } ``` --- @@ -2772,15 +2724,13 @@ specified packages. ```toml [tool.uv.pip] - [extra-build-variables] - flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" } + extra-build-variables = { flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" } } ``` === "uv.toml" ```toml [pip] - [extra-build-variables] - flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" } + extra-build-variables = { flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" } } ``` --- diff --git a/uv.schema.json b/uv.schema.json index 94220a608..4b6d3a7d5 100644 --- a/uv.schema.json +++ b/uv.schema.json @@ -226,7 +226,7 @@ ] }, "extra-build-dependencies": { - "description": "Additional build dependencies for packages.\n\nThis allows extending the PEP 517 build environment for the project's dependencies with\nadditional packages. This is useful for packages that assume the presence of packages, like,\n`pip`, and do not declare them as build dependencies.", + "description": "Additional build dependencies for packages.\n\nThis allows extending the PEP 517 build environment for the project's dependencies with\nadditional packages. This is useful for packages that assume the presence of packages like\n`pip`, and do not declare them as build dependencies.", "anyOf": [ { "$ref": "#/definitions/ExtraBuildDependencies"