From 7c2819d1f63b7a2c5b1aa3b9acee032b5bf1d725 Mon Sep 17 00:00:00 2001 From: Zanie Blue Date: Mon, 21 Jul 2025 04:48:38 -0500 Subject: [PATCH] Match `--bounds` formatting for `uv_build` bounds in `uv init` (#14731) Closes #14724 https://chatgpt.com/codex/tasks/task_e_687a53ba646c8331baa4140c5b2bec70 --------- Co-authored-by: konstin --- crates/uv-build-backend/src/lib.rs | 28 ++++++++++----------- crates/uv-build-backend/src/metadata.rs | 12 ++++----- crates/uv/src/commands/project/init.rs | 9 ++++++- scripts/packages/built-by-uv/pyproject.toml | 2 +- 4 files changed, 29 insertions(+), 22 deletions(-) diff --git a/crates/uv-build-backend/src/lib.rs b/crates/uv-build-backend/src/lib.rs index 5e0efd6d5..5800d04d2 100644 --- a/crates/uv-build-backend/src/lib.rs +++ b/crates/uv-build-backend/src/lib.rs @@ -680,7 +680,7 @@ mod tests { license = { file = "license.txt" } [build-system] - requires = ["uv_build>=0.5.15,<0.6"] + requires = ["uv_build>=0.5.15,<0.6.0"] build-backend = "uv_build" "# }, @@ -748,7 +748,7 @@ mod tests { version = "1.0.0" [build-system] - requires = ["uv_build>=0.5.15,<0.6"] + requires = ["uv_build>=0.5.15,<0.6.0"] build-backend = "uv_build" "# }, @@ -812,7 +812,7 @@ mod tests { version = "1.0.0" [build-system] - requires = ["uv_build>=0.5.15,<0.6"] + requires = ["uv_build>=0.5.15,<0.6.0"] build-backend = "uv_build" [tool.uv.build-backend] @@ -854,7 +854,7 @@ mod tests { version = "1.0.0" [build-system] - requires = ["uv_build>=0.5.15,<0.6"] + requires = ["uv_build>=0.5.15,<0.6.0"] build-backend = "uv_build" [tool.uv.build-backend] @@ -879,7 +879,7 @@ mod tests { version = "1.0.0" [build-system] - requires = ["uv_build>=0.5.15,<0.6"] + requires = ["uv_build>=0.5.15,<0.6.0"] build-backend = "uv_build" [tool.uv.build-backend] @@ -928,7 +928,7 @@ mod tests { version = "1.0.0" [build-system] - requires = ["uv_build>=0.5.15,<0.6"] + requires = ["uv_build>=0.5.15,<0.6.0"] build-backend = "uv_build" [tool.uv.build-backend] @@ -959,7 +959,7 @@ mod tests { version = "1.0.0" [build-system] - requires = ["uv_build>=0.5.15,<0.6"] + requires = ["uv_build>=0.5.15,<0.6.0"] build-backend = "uv_build" "# }; @@ -1010,7 +1010,7 @@ mod tests { version = "1.0.0" [build-system] - requires = ["uv_build>=0.5.15,<0.6"] + requires = ["uv_build>=0.5.15,<0.6.0"] build-backend = "uv_build" [tool.uv.build-backend] @@ -1036,7 +1036,7 @@ mod tests { module-name = "simple_namespace.part" [build-system] - requires = ["uv_build>=0.5.15,<0.6"] + requires = ["uv_build>=0.5.15,<0.6.0"] build-backend = "uv_build" "# }; @@ -1104,7 +1104,7 @@ mod tests { namespace = true [build-system] - requires = ["uv_build>=0.5.15,<0.6"] + requires = ["uv_build>=0.5.15,<0.6.0"] build-backend = "uv_build" "# }; @@ -1127,7 +1127,7 @@ mod tests { namespace = true [build-system] - requires = ["uv_build>=0.5.15,<0.6"] + requires = ["uv_build>=0.5.15,<0.6.0"] build-backend = "uv_build" "# }; @@ -1188,7 +1188,7 @@ mod tests { namespace = true [build-system] - requires = ["uv_build>=0.5.15,<0.6"] + requires = ["uv_build>=0.5.15,<0.6.0"] build-backend = "uv_build" "# }; @@ -1211,7 +1211,7 @@ mod tests { module-name = "cloud-stubs.db.schema" [build-system] - requires = ["uv_build>=0.5.15,<0.6"] + requires = ["uv_build>=0.5.15,<0.6.0"] build-backend = "uv_build" "# }; @@ -1261,7 +1261,7 @@ mod tests { module-name = ["foo", "simple_namespace.part_a", "simple_namespace.part_b"] [build-system] - requires = ["uv_build>=0.5.15,<0.6"] + requires = ["uv_build>=0.5.15,<0.6.0"] build-backend = "uv_build" "# }; diff --git a/crates/uv-build-backend/src/metadata.rs b/crates/uv-build-backend/src/metadata.rs index 5997f72b6..d224fd788 100644 --- a/crates/uv-build-backend/src/metadata.rs +++ b/crates/uv-build-backend/src/metadata.rs @@ -171,7 +171,7 @@ impl PyProjectToml { /// /// ```toml /// [build-system] - /// requires = ["uv_build>=0.4.15,<0.5"] + /// requires = ["uv_build>=0.4.15,<0.5.0"] /// build-backend = "uv_build" /// ``` pub fn check_build_system(&self, uv_version: &str) -> Vec { @@ -826,7 +826,7 @@ mod tests { {payload} [build-system] - requires = ["uv_build>=0.4.15,<0.5"] + requires = ["uv_build>=0.4.15,<0.5.0"] build-backend = "uv_build" "# } @@ -909,7 +909,7 @@ mod tests { foo-bar = "foo:bar" [build-system] - requires = ["uv_build>=0.4.15,<0.5"] + requires = ["uv_build>=0.4.15,<0.5.0"] build-backend = "uv_build" "# }; @@ -1095,7 +1095,7 @@ mod tests { foo-bar = "foo:bar" [build-system] - requires = ["uv_build>=0.4.15,<0.5"] + requires = ["uv_build>=0.4.15,<0.5.0"] build-backend = "uv_build" "# }; @@ -1194,7 +1194,7 @@ mod tests { version = "0.1.0" [build-system] - requires = ["uv_build>=0.4.15,<0.5", "wheel"] + requires = ["uv_build>=0.4.15,<0.5.0", "wheel"] build-backend = "uv_build" "#}; let pyproject_toml = PyProjectToml::parse(contents).unwrap(); @@ -1230,7 +1230,7 @@ mod tests { version = "0.1.0" [build-system] - requires = ["uv_build>=0.4.15,<0.5"] + requires = ["uv_build>=0.4.15,<0.5.0"] build-backend = "setuptools" "#}; let pyproject_toml = PyProjectToml::parse(contents).unwrap(); diff --git a/crates/uv/src/commands/project/init.rs b/crates/uv/src/commands/project/init.rs index 4fd79b1c2..9ba2a434d 100644 --- a/crates/uv/src/commands/project/init.rs +++ b/crates/uv/src/commands/project/init.rs @@ -1,6 +1,7 @@ use anyhow::{Context, Result, anyhow}; use owo_colors::OwoColorize; use std::fmt::Write; +use std::iter; use std::path::{Path, PathBuf}; use std::process::{Command, Stdio}; use std::str::FromStr; @@ -944,7 +945,13 @@ fn pyproject_build_system(package: &PackageName, build_backend: ProjectBuildBack min_version.release()[0] == 0, "migrate to major version bumps" ); - let max_version = Version::new([0, min_version.release()[1] + 1]); + let max_version = Version::new( + [0, min_version.release()[1] + 1] + .into_iter() + // Add trailing zeroes to match the version length, to use the same style + // as `--bounds`. + .chain(iter::repeat_n(0, min_version.release().len() - 2)), + ); indoc::formatdoc! {r#" [build-system] requires = ["uv_build>={min_version},<{max_version}"] diff --git a/scripts/packages/built-by-uv/pyproject.toml b/scripts/packages/built-by-uv/pyproject.toml index b1914e071..b95f9862f 100644 --- a/scripts/packages/built-by-uv/pyproject.toml +++ b/scripts/packages/built-by-uv/pyproject.toml @@ -24,5 +24,5 @@ data = "assets" headers = "header" [build-system] -requires = ["uv_build>=0.8,<0.9"] +requires = ["uv_build>=0.8.0,<0.9.0"] build-backend = "uv_build"