From faa243c9d8ec768773c5b3ce039ecce1735b9ecb Mon Sep 17 00:00:00 2001 From: konsti Date: Fri, 20 Feb 2026 08:39:27 +0100 Subject: [PATCH] Migrate tests from setuptools to uv_build (#18102) uv_build is faster and has less network use than uv_build, and it's a better practice to use it than setuptools, so we should do it in our own tests. Migrates only the easy tests, we do test setuptools features and quirks in some places, those aren't touched. One commit per migrated integration test file, for easier review. --------- Co-authored-by: Claude Opus 4.6 --- crates/uv/tests/it/cache_prune.rs | 11 +- crates/uv/tests/it/export.rs | 294 +++++++++++++++--------------- crates/uv/tests/it/lock.rs | 125 ++++++++----- crates/uv/tests/it/pip_compile.rs | 46 +++-- crates/uv/tests/it/pip_install.rs | 8 +- crates/uv/tests/it/run.rs | 203 ++++++++++++++++----- crates/uv/tests/it/sync.rs | 195 ++++++++++++++------ crates/uv/tests/it/tool_run.rs | 5 +- crates/uv/tests/it/tree.rs | 4 +- crates/uv/tests/it/workspace.rs | 104 +++++------ 10 files changed, 627 insertions(+), 368 deletions(-) diff --git a/crates/uv/tests/it/cache_prune.rs b/crates/uv/tests/it/cache_prune.rs index e2bd6c17c..cf638b862 100644 --- a/crates/uv/tests/it/cache_prune.rs +++ b/crates/uv/tests/it/cache_prune.rs @@ -332,12 +332,17 @@ fn prune_stale_revision() -> Result<()> { dependencies = [] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; - context.temp_dir.child("src").child("__init__.py").touch()?; + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; context.temp_dir.child("README").touch()?; let filters: Vec<_> = context diff --git a/crates/uv/tests/it/export.rs b/crates/uv/tests/it/export.rs index 673653ace..a9af0af99 100644 --- a/crates/uv/tests/it/export.rs +++ b/crates/uv/tests/it/export.rs @@ -29,8 +29,8 @@ fn requirements_txt_dependency() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -77,8 +77,8 @@ fn requirements_txt_export_no_header() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -123,8 +123,8 @@ fn requirements_txt_dependency_extra() -> Result<()> { dependencies = ["flask[dotenv]"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -210,8 +210,8 @@ fn requirements_txt_project_extra() -> Result<()> { pytest = ["iniconfig"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -423,8 +423,8 @@ fn requirements_txt_dependency_marker() -> Result<()> { dependencies = ["anyio ; sys_platform == 'darwin'", "iniconfig"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -478,8 +478,8 @@ fn requirements_txt_dependency_multiple_markers() -> Result<()> { ] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -561,8 +561,8 @@ fn requirements_txt_dependency_conflicting_markers() -> Result<()> { ] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -808,8 +808,8 @@ fn requirements_txt_non_root() -> Result<()> { child = { workspace = true } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -823,8 +823,8 @@ fn requirements_txt_non_root() -> Result<()> { dependencies = ["iniconfig>=2"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -869,8 +869,8 @@ fn allrequirements_txt_() -> Result<()> { child = { workspace = true } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -884,8 +884,8 @@ fn allrequirements_txt_() -> Result<()> { dependencies = ["iniconfig>=2"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -944,8 +944,8 @@ fn requirements_txt_frozen() -> Result<()> { child = { workspace = true } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -959,8 +959,8 @@ fn requirements_txt_frozen() -> Result<()> { dependencies = ["iniconfig>=2"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -1026,8 +1026,8 @@ fn requirements_txt_create_missing_dir() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -1510,8 +1510,8 @@ fn requirements_txt_non_project_workspace() -> Result<()> { dependencies = ["iniconfig"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -1588,8 +1588,8 @@ fn requirements_txt_non_project_fork() -> Result<()> { dependencies = ["anyio==2.0.0 ; sys_platform == 'win32'", "anyio==3.0.0 ; sys_platform == 'linux'"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -1803,10 +1803,15 @@ fn requirements_txt_relative_path() -> Result<()> { dependencies = ["iniconfig>=2"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + dependency + .child("src") + .child("dependency") + .child("__init__.py") + .touch()?; let project = context.temp_dir.child("project"); project.child("pyproject.toml").write_str( @@ -1821,10 +1826,15 @@ fn requirements_txt_relative_path() -> Result<()> { dependency = { path = "../dependency" } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + project + .child("src") + .child("project") + .child("__init__.py") + .touch()?; context.lock().current_dir(&project).assert().success(); @@ -1894,8 +1904,8 @@ fn devrequirements_txt_() -> Result<()> { dev-dependencies = ["anyio"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -1986,8 +1996,8 @@ fn requirements_txt_no_hashes() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -2028,8 +2038,8 @@ fn requirements_txt_output_file() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -2101,8 +2111,8 @@ fn requirements_txt_no_emit() -> Result<()> { child = { workspace = true } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -2116,8 +2126,8 @@ fn requirements_txt_no_emit() -> Result<()> { dependencies = ["iniconfig>=2"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -2235,8 +2245,8 @@ fn requirements_txt_no_emit() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -2337,8 +2347,8 @@ fn requirements_txt_only_emit() -> Result<()> { child = { workspace = true } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -2352,8 +2362,8 @@ fn requirements_txt_only_emit() -> Result<()> { dependencies = ["iniconfig>=2"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -2423,8 +2433,8 @@ fn requirements_txt_no_editable() -> Result<()> { child = { workspace = true } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -2438,8 +2448,8 @@ fn requirements_txt_no_editable() -> Result<()> { dependencies = ["iniconfig>=2"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -2944,8 +2954,8 @@ fn requirements_txt_conflicts() -> Result<()> { extra2 = ["sortedcontainers==2.4.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -3679,8 +3689,8 @@ fn pep_751_dependency() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -3742,8 +3752,8 @@ fn pep_751_export_no_header() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -3803,8 +3813,8 @@ fn pep_751_export_no_editable() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -3866,8 +3876,8 @@ fn pep_751_dependency_extra() -> Result<()> { dependencies = ["flask[dotenv]"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -3987,8 +3997,8 @@ fn pep_751_project_extra() -> Result<()> { pytest = ["iniconfig"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -4425,8 +4435,8 @@ fn pep_751_infer_output_format() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -4561,8 +4571,8 @@ fn pep_751_filename() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -4943,8 +4953,8 @@ fn cyclonedx_export_basic() -> Result<()> { dependencies = ["urllib3==2.2.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -5025,8 +5035,8 @@ fn cyclonedx_export_direct_url() -> Result<()> { dependencies = ["idna @ https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -5108,8 +5118,8 @@ fn cyclonedx_export_git_dependency() -> Result<()> { dependencies = ["urllib3 @ git+https://github.com/urllib3/urllib3.git@2.2.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -5190,8 +5200,8 @@ fn cyclonedx_export_no_dependencies() -> Result<()> { dependencies = [] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -5263,8 +5273,8 @@ fn cyclonedx_export_mixed_source_types() -> Result<()> { ] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -5373,8 +5383,8 @@ fn cyclonedx_export_project_extra() -> Result<()> { pytest = ["iniconfig==2.0.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -5459,8 +5469,8 @@ fn cyclonedx_export_project_extra_with_optional_flag() -> Result<()> { pytest = ["iniconfig==2.0.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -5572,8 +5582,8 @@ fn cyclonedx_export_with_workspace_member() -> Result<()> { child2 = { workspace = true } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -5587,8 +5597,8 @@ fn cyclonedx_export_with_workspace_member() -> Result<()> { dependencies = ["iniconfig==2.0.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -5602,8 +5612,8 @@ fn cyclonedx_export_with_workspace_member() -> Result<()> { dependencies = [] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -5737,8 +5747,8 @@ fn cyclonedx_export_workspace_non_root() -> Result<()> { child = { workspace = true } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -5752,8 +5762,8 @@ fn cyclonedx_export_workspace_non_root() -> Result<()> { dependencies = ["iniconfig==2.0.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -5844,8 +5854,8 @@ fn cyclonedx_export_workspace_with_extras() -> Result<()> { child = { workspace = true } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -5859,8 +5869,8 @@ fn cyclonedx_export_workspace_with_extras() -> Result<()> { dependencies = ["typing-extensions==4.10.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -6065,8 +6075,8 @@ fn cyclonedx_export_workspace_frozen() -> Result<()> { child = { workspace = true } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -6080,8 +6090,8 @@ fn cyclonedx_export_workspace_frozen() -> Result<()> { dependencies = ["iniconfig==2.0.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -6226,8 +6236,8 @@ fn cyclonedx_export_workspace_all_packages() -> Result<()> { members = ["child1", "child2"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -6241,8 +6251,8 @@ fn cyclonedx_export_workspace_all_packages() -> Result<()> { dependencies = ["iniconfig==2.0.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -6256,8 +6266,8 @@ fn cyclonedx_export_workspace_all_packages() -> Result<()> { dependencies = ["sniffio==1.3.1"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -6415,8 +6425,8 @@ fn cyclonedx_export_all_packages_non_workspace_root_dependency() -> Result<()> { dependencies = ["urllib3==2.2.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -6521,8 +6531,8 @@ fn cyclonedx_export_workspace_mixed_dependencies() -> Result<()> { child1 = { workspace = true } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -6539,8 +6549,8 @@ fn cyclonedx_export_workspace_mixed_dependencies() -> Result<()> { child2 = { workspace = true } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -6554,8 +6564,8 @@ fn cyclonedx_export_workspace_mixed_dependencies() -> Result<()> { dependencies = ["sniffio==1.3.1"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -6699,8 +6709,8 @@ fn cyclonedx_export_dependency_marker() -> Result<()> { ] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -6802,8 +6812,8 @@ fn cyclonedx_export_multiple_dependency_markers() -> Result<()> { ] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -6928,8 +6938,8 @@ fn cyclonedx_export_dependency_extra() -> Result<()> { dependencies = ["cryptography[ssh]==42.0.5"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -7614,8 +7624,8 @@ fn cyclonedx_export_no_emit() -> Result<()> { child = { workspace = true } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -7629,8 +7639,8 @@ fn cyclonedx_export_no_emit() -> Result<()> { dependencies = ["iniconfig==2.0.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -7812,8 +7822,8 @@ fn cyclonedx_export_relative_path() -> Result<()> { dependencies = ["iniconfig==2.0.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -7830,8 +7840,8 @@ fn cyclonedx_export_relative_path() -> Result<()> { dependency = { path = "../dependency" } [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -8127,8 +8137,8 @@ fn cyclonedx_export_dev_dependencies() -> Result<()> { dev-dependencies = ["urllib3==2.2.1"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -8348,8 +8358,8 @@ fn cyclonedx_export_all_packages_conflicting_workspace_members() -> Result<()> { ] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -8363,8 +8373,8 @@ fn cyclonedx_export_all_packages_conflicting_workspace_members() -> Result<()> { dependencies = ["sortedcontainers==2.4.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -8492,8 +8502,8 @@ fn cyclonedx_export_alternative_registry() -> Result<()> { dependencies = ["torch==2.6.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [[tool.uv.index]] name = "pytorch-cpu" @@ -8894,8 +8904,8 @@ fn pylock_toml_filter_by_requires_python() -> Result<()> { dependencies = ["numpy==1.26.4"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; diff --git a/crates/uv/tests/it/lock.rs b/crates/uv/tests/it/lock.rs index 22cdd752b..3c72cdf95 100644 --- a/crates/uv/tests/it/lock.rs +++ b/crates/uv/tests/it/lock.rs @@ -2923,8 +2923,8 @@ fn lock_conflicting_project_basic1() -> Result<()> { foo = ["sortedcontainers==2.4.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -2963,8 +2963,8 @@ fn lock_conflicting_project_basic1() -> Result<()> { foo = ["sortedcontainers==2.4.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -3047,6 +3047,13 @@ fn lock_conflicting_project_basic1() -> Result<()> { Resolved 3 packages in [TIME] "); + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; + // Install from the lockfile. uv_snapshot!(context.filters(), context.sync().arg("--frozen"), @" success: true @@ -3893,11 +3900,19 @@ fn lock_conflicting_project_basic2() -> Result<()> { ] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + context.temp_dir.child("README.md").touch()?; + context + .temp_dir + .child("src") + .child("example") + .child("__init__.py") + .touch()?; + uv_snapshot!(context.filters(), context.lock(), @" success: true exit_code: 0 @@ -4069,8 +4084,8 @@ fn lock_conflicting_mixed() -> Result<()> { project2 = ["sortedcontainers==2.4.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -4112,8 +4127,8 @@ fn lock_conflicting_mixed() -> Result<()> { project2 = ["sortedcontainers==2.4.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -4197,6 +4212,13 @@ fn lock_conflicting_mixed() -> Result<()> { Resolved 3 packages in [TIME] "); + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; + // Install from the lockfile. uv_snapshot!(context.filters(), context.sync().arg("--frozen"), @" success: true @@ -7579,8 +7601,8 @@ fn lock_relative_and_absolute_paths() -> Result<()> { license = {text = "MIT"} [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; context.temp_dir.child("b/b/__init__.py").touch()?; @@ -7596,8 +7618,8 @@ fn lock_relative_and_absolute_paths() -> Result<()> { license = {text = "MIT"} [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; context.temp_dir.child("c/c/__init__.py").touch()?; @@ -9058,8 +9080,8 @@ fn lock_exclusion() -> Result<()> { dependencies = ["project"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.sources] project = { path = ".." } @@ -9259,8 +9281,8 @@ fn lock_non_workspace_source() -> Result<()> { dependencies = [] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -9310,8 +9332,8 @@ fn lock_no_workspace_source() -> Result<()> { dependencies = [] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -9367,8 +9389,8 @@ fn lock_peer_member() -> Result<()> { dependencies = [] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -9478,8 +9500,8 @@ async fn lock_index_workspace_member() -> Result<()> { iniconfig = {{ index = "my-index" }} [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, proxy_uri = proxy.uri() ))?; @@ -9613,8 +9635,8 @@ fn lock_dev_transitive() -> Result<()> { dependencies = ["foo", "baz", "iniconfig>1"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.sources] foo = { path = "../foo" } @@ -9638,14 +9660,17 @@ fn lock_dev_transitive() -> Result<()> { dependencies = [] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv] dev-dependencies = ["typing-extensions>4"] "#, )?; + bar.child("src").child("bar").child("__init__.py").touch()?; + baz.child("src").child("baz").child("__init__.py").touch()?; + uv_snapshot!(context.filters(), context.lock().current_dir(&bar), @" success: true exit_code: 0 @@ -10776,8 +10801,8 @@ fn lock_no_sources() -> Result<()> { dependencies = ["iniconfig"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -12987,8 +13012,8 @@ fn lock_editable() -> Result<()> { dependencies = ["library"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.sources] library = { path = "../../library" } @@ -13004,8 +13029,8 @@ fn lock_editable() -> Result<()> { dependencies = [] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; library.child("src/__init__.py").touch()?; @@ -13087,8 +13112,8 @@ fn lock_editable() -> Result<()> { dependencies = ["library"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.sources] library = { path = "../../library", editable = true } @@ -14931,8 +14956,8 @@ fn lock_add_member_with_build_system() -> Result<()> { dependencies = ["anyio>3"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -15831,8 +15856,8 @@ fn lock_remove_member_non_project() -> Result<()> { dependencies = ["anyio>3"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -16667,8 +16692,8 @@ fn lock_narrowed_python_version() -> Result<()> { dependencies = ["iniconfig"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -19394,8 +19419,8 @@ fn lock_repeat_named_index_member() -> Result<()> { url = "https://astral-sh.github.io/pytorch-mirror/whl/cpu" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.sources] idna = { index = "pytorch" } @@ -19802,8 +19827,8 @@ fn lock_explicit_virtual_project() -> Result<()> { dependencies = ["black"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv] package = false @@ -24672,8 +24697,8 @@ fn lock_group_workspace() -> Result<()> { testing = ["pytest>8"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -28544,8 +28569,8 @@ fn lock_script_path() -> Result<()> { dependencies = ["iniconfig"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; diff --git a/crates/uv/tests/it/pip_compile.rs b/crates/uv/tests/it/pip_compile.rs index 92373fc05..be3581a16 100644 --- a/crates/uv/tests/it/pip_compile.rs +++ b/crates/uv/tests/it/pip_compile.rs @@ -186,7 +186,8 @@ fn compile_pyproject_toml() -> Result<()> { let pyproject_toml = context.temp_dir.child("pyproject.toml"); pyproject_toml.write_str( r#"[build-system] -requires = ["setuptools>=42"] +requires = ["uv_build>=0.7,<10000"] +build-backend = "uv_build" [project] name = "project" @@ -227,7 +228,8 @@ fn compile_pyproject_toml_dynamic_version() -> Result<()> { let pyproject_toml = context.temp_dir.child("pyproject.toml"); pyproject_toml.write_str( r#"[build-system] -requires = ["setuptools>=42"] +requires = ["uv_build>=0.7,<10000"] +build-backend = "uv_build" [project] name = "project" @@ -267,7 +269,8 @@ fn compile_pyproject_toml_with_line_annotation() -> Result<()> { let pyproject_toml = context.temp_dir.child("pyproject.toml"); pyproject_toml.write_str( r#"[build-system] -requires = ["setuptools>=42"] +requires = ["uv_build>=0.7,<10000"] +build-backend = "uv_build" [project] name = "project" @@ -698,7 +701,8 @@ fn compile_pyproject_toml_extra() -> Result<()> { let pyproject_toml = context.temp_dir.child("pyproject.toml"); pyproject_toml.write_str( r#"[build-system] -requires = ["setuptools>=42"] +requires = ["uv_build>=0.7,<10000"] +build-backend = "uv_build" [project] name = "project" @@ -741,7 +745,8 @@ fn compile_pyproject_toml_extra_name_normalization() -> Result<()> { let pyproject_toml = context.temp_dir.child("pyproject.toml"); pyproject_toml.write_str( r#"[build-system] -requires = ["setuptools>=42"] +requires = ["uv_build>=0.7,<10000"] +build-backend = "uv_build" [project] name = "project" @@ -784,7 +789,8 @@ fn compile_pyproject_toml_extra_missing() -> Result<()> { let pyproject_toml = context.temp_dir.child("pyproject.toml"); pyproject_toml.write_str( r#"[build-system] -requires = ["setuptools>=42"] +requires = ["uv_build>=0.7,<10000"] +build-backend = "uv_build" [project] name = "project" @@ -1151,7 +1157,8 @@ fn compile_pyproject_toml_invalid_name() -> Result<()> { let pyproject_toml = context.temp_dir.child("pyproject.toml"); pyproject_toml.write_str( r#"[build-system] -requires = ["setuptools>=42"] +requires = ["uv_build>=0.7,<10000"] +build-backend = "uv_build" [project] name = "!project" @@ -1169,9 +1176,9 @@ dependencies = [ ----- stderr ----- error: Failed to parse: `pyproject.toml` - Caused by: TOML parse error at line 5, column 8 + Caused by: TOML parse error at line 6, column 8 | - 5 | name = "!project" + 6 | name = "!project" | ^^^^^^^^^^ Not a valid package or extra name: "!project". Names must start and end with a letter or digit and may only contain -, _, ., and alphanumeric characters. "# @@ -1187,7 +1194,8 @@ fn compile_pyproject_toml_extras_missing() -> Result<()> { let pyproject_toml = context.temp_dir.child("pyproject.toml"); pyproject_toml.write_str( r#"[build-system] -requires = ["setuptools>=42"] +requires = ["uv_build>=0.7,<10000"] +build-backend = "uv_build" [project] name = "project" @@ -1249,7 +1257,8 @@ fn invalid_extra_name() -> Result<()> { let pyproject_toml = context.temp_dir.child("pyproject.toml"); pyproject_toml.write_str( r#"[build-system] -requires = ["setuptools>=42"] +requires = ["uv_build>=0.7,<10000"] +build-backend = "uv_build" [project] name = "project" @@ -3154,7 +3163,8 @@ fn compile_pyproject_toml_all_extras() -> Result<()> { let pyproject_toml = context.temp_dir.child("pyproject.toml"); pyproject_toml.write_str( r#"[build-system] -requires = ["setuptools>=42"] +requires = ["uv_build>=0.7,<10000"] +build-backend = "uv_build" [project] name = "project" @@ -3210,7 +3220,8 @@ fn compile_pyproject_toml_all_extras_annotation_line() -> Result<()> { let pyproject_toml = context.temp_dir.child("pyproject.toml"); pyproject_toml.write_str( r#"[build-system] -requires = ["setuptools>=42"] +requires = ["uv_build>=0.7,<10000"] +build-backend = "uv_build" [project] name = "project" @@ -3257,7 +3268,8 @@ fn compile_does_not_allow_both_extra_and_all_extras() -> Result<()> { let pyproject_toml = context.temp_dir.child("pyproject.toml"); pyproject_toml.write_str( r#"[build-system] -requires = ["setuptools>=42"] +requires = ["uv_build>=0.7,<10000"] +build-backend = "uv_build" [project] name = "project" @@ -3300,7 +3312,8 @@ fn compile_unsolvable_requirements() -> Result<()> { let pyproject_toml = context.temp_dir.child("pyproject.toml"); pyproject_toml.write_str( r#"[build-system] -requires = ["setuptools>=42"] +requires = ["uv_build>=0.7,<10000"] +build-backend = "uv_build" [project] name = "my-project" @@ -3332,7 +3345,8 @@ fn compile_unsolvable_requirements_version_not_available() -> Result<()> { let pyproject_toml = context.temp_dir.child("pyproject.toml"); pyproject_toml.write_str( r#"[build-system] -requires = ["setuptools>=42"] +requires = ["uv_build>=0.7,<10000"] +build-backend = "uv_build" [project] name = "my-project" diff --git a/crates/uv/tests/it/pip_install.rs b/crates/uv/tests/it/pip_install.rs index 3d29517ca..71dcf8fcb 100644 --- a/crates/uv/tests/it/pip_install.rs +++ b/crates/uv/tests/it/pip_install.rs @@ -3419,9 +3419,13 @@ fn install_no_downgrade() -> Result<()> { dependencies = [] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; + idna.child("src") + .child("idna") + .child("__init__.py") + .touch()?; // Install the local `idna`. uv_snapshot!(context.filters(), context.pip_install() diff --git a/crates/uv/tests/it/run.rs b/crates/uv/tests/it/run.rs index 2dc8d532f..6b8d2ce25 100644 --- a/crates/uv/tests/it/run.rs +++ b/crates/uv/tests/it/run.rs @@ -29,10 +29,16 @@ fn run_with_python_version() -> Result<()> { ] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; + context + .temp_dir + .child("src") + .child("foo") + .child("__init__.py") + .touch()?; let test_script = context.temp_dir.child("main.py"); test_script.write_str(indoc! { r#" import importlib.metadata @@ -156,10 +162,16 @@ fn run_args() -> Result<()> { dependencies = [] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; + context + .temp_dir + .child("src") + .child("foo") + .child("__init__.py") + .touch()?; // We treat arguments before the command as uv arguments uv_snapshot!(context.filters(), context.run().arg("--help").arg("python"), @" @@ -210,10 +222,16 @@ fn run_no_args() -> Result<()> { dependencies = [] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; + context + .temp_dir + .child("src") + .child("foo") + .child("__init__.py") + .touch()?; // Run without specifying any arguments. #[cfg(not(windows))] @@ -278,10 +296,16 @@ fn run_pep723_script() -> Result<()> { dependencies = ["anyio"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; + context + .temp_dir + .child("src") + .child("foo") + .child("__init__.py") + .touch()?; // If the script contains a PEP 723 tag, we should install its requirements. let test_script = context.temp_dir.child("main.py"); @@ -547,10 +571,16 @@ fn run_pythonw_script() -> Result<()> { dependencies = ["anyio"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; + context + .temp_dir + .child("src") + .child("foo") + .child("__init__.py") + .touch()?; let test_script = context.temp_dir.child("main.pyw"); test_script.write_str(indoc! { r" @@ -1057,8 +1087,8 @@ fn run_managed_false() -> Result<()> { dependencies = ["anyio"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv] managed = false @@ -1159,10 +1189,16 @@ fn run_with() -> Result<()> { dependencies = ["sniffio==1.3.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; + context + .temp_dir + .child("src") + .child("foo") + .child("__init__.py") + .touch()?; let test_script = context.temp_dir.child("main.py"); test_script.write_str(indoc! { r" @@ -1286,10 +1322,16 @@ fn run_with_pyvenv_cfg_file() -> Result<()> { requires-python = ">=3.8" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; + context + .temp_dir + .child("src") + .child("foo") + .child("__init__.py") + .touch()?; let test_script = context.temp_dir.child("main.py"); test_script.write_str(indoc! { r#" @@ -1339,8 +1381,8 @@ fn run_with_overlay_interpreter() -> Result<()> { dependencies = ["anyio"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [project.scripts] main = "foo:main" @@ -2167,10 +2209,16 @@ fn run_locked() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; // Running with `--locked` should error, if no lockfile is present. uv_snapshot!(context.filters(), context.run().arg("--locked").arg("--").arg("python").arg("--version"), @" @@ -2254,8 +2302,8 @@ fn run_locked() -> Result<()> { dependencies = ["iniconfig"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -2331,10 +2379,16 @@ fn run_frozen() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; // Running with `--frozen` should error, if no lockfile is present. uv_snapshot!(context.filters(), context.run().arg("--frozen").arg("--").arg("python").arg("--version"), @" @@ -2358,8 +2412,8 @@ fn run_frozen() -> Result<()> { dependencies = ["iniconfig"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -2396,10 +2450,16 @@ fn run_no_sync() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; // Running with `--no-sync` should succeed error, even if the lockfile isn't present. uv_snapshot!(context.filters(), context.run().arg("--no-sync").arg("--").arg("python").arg("--version"), @" @@ -2455,10 +2515,16 @@ fn run_no_sync_env_var() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; // Running with `UV_NO_SYNC=1` should succeed, even if the lockfile isn't present. uv_snapshot!(context.filters(), context.run().env(EnvVars::UV_NO_SYNC, "1").arg("--").arg("python").arg("--version"), @" @@ -2510,10 +2576,16 @@ fn run_empty_requirements_txt() -> Result<()> { dependencies = ["anyio", "sniffio==1.3.1"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; + context + .temp_dir + .child("src") + .child("foo") + .child("__init__.py") + .touch()?; let test_script = context.temp_dir.child("main.py"); test_script.write_str(indoc! { r" @@ -2570,10 +2642,16 @@ fn run_requirements_txt() -> Result<()> { dependencies = ["anyio", "sniffio==1.3.1"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; + context + .temp_dir + .child("src") + .child("foo") + .child("__init__.py") + .touch()?; let test_script = context.temp_dir.child("main.py"); test_script.write_str(indoc! { r" @@ -2720,10 +2798,16 @@ fn run_requirements_txt_arguments() -> Result<()> { dependencies = ["typing_extensions"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; + context + .temp_dir + .child("src") + .child("foo") + .child("__init__.py") + .touch()?; let test_script = context.temp_dir.child("main.py"); test_script.write_str(indoc! { r" @@ -2774,8 +2858,8 @@ fn run_editable() -> Result<()> { dependencies = [] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; @@ -3006,10 +3090,16 @@ fn run_without_output() -> Result<()> { dependencies = ["anyio", "sniffio==1.3.1"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; + context + .temp_dir + .child("src") + .child("foo") + .child("__init__.py") + .touch()?; let test_script = context.temp_dir.child("main.py"); test_script.write_str(indoc! { r" @@ -3490,10 +3580,16 @@ fn run_isolated_does_not_modify_lock() -> Result<()> { ] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; + context + .temp_dir + .child("src") + .child("foo") + .child("__init__.py") + .touch()?; let test_script = context.temp_dir.child("main.py"); test_script.write_str(indoc! { r#" import importlib.metadata @@ -3593,10 +3689,16 @@ fn run_isolated_with_frozen() -> Result<()> { ] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; + context + .temp_dir + .child("src") + .child("foo") + .child("__init__.py") + .touch()?; let test_script = context.temp_dir.child("main.py"); test_script.write_str(indoc! { r#" import importlib.metadata @@ -3776,8 +3878,8 @@ fn run_invalid_project_table() -> Result<()> { repository = 'https://github.com/octocat/octocat-python' [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; @@ -6173,10 +6275,15 @@ fn run_target_workspace_discovery() -> Result<()> { dependencies = ["iniconfig"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; + workspace + .child("src") + .child("foo") + .child("__init__.py") + .touch()?; // Create a script in the workspace that imports from the project. workspace.child("script.py").write_str(indoc! { r" diff --git a/crates/uv/tests/it/sync.rs b/crates/uv/tests/it/sync.rs index b4d0930f4..5a0f7c9f8 100644 --- a/crates/uv/tests/it/sync.rs +++ b/crates/uv/tests/it/sync.rs @@ -241,8 +241,8 @@ fn package() -> Result<()> { dependencies = ["iniconfig>=1"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -252,6 +252,12 @@ fn package() -> Result<()> { let init = src.child("__init__.py"); init.touch()?; + child + .child("src") + .child("child") + .child("__init__.py") + .touch()?; + uv_snapshot!(context.filters(), context.sync().arg("--package").arg("child"), @" success: true exit_code: 0 @@ -699,11 +705,11 @@ fn mixed_requires_python() -> Result<()> { let child = context.temp_dir.child("packages").child("bird-feeder"); child.create_dir_all()?; - let src = context.temp_dir.child("src").child("bird_feeder"); - src.create_dir_all()?; - - let init = src.child("__init__.py"); - init.touch()?; + child + .child("src") + .child("bird_feeder") + .child("__init__.py") + .touch()?; let pyproject_toml = child.child("pyproject.toml"); pyproject_toml.write_str( @@ -714,8 +720,8 @@ fn mixed_requires_python() -> Result<()> { requires-python = ">=3.9" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -1766,13 +1772,19 @@ fn sync_build_isolation_extra() -> Result<()> { compile = ["source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz"] [build-system] - requires = ["setuptools >= 40.9.0"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv] no-build-isolation-package = ["source-distribution"] "#, )?; + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; // Running `uv sync` should fail for the `compile` extra. uv_snapshot!(context.filters(), context.sync().arg("--extra").arg("compile"), @r#" @@ -4636,10 +4648,17 @@ fn sync_group_member() -> Result<()> { dependencies = ["iniconfig>=1"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + context + .temp_dir + .child("child") + .child("src") + .child("child") + .child("__init__.py") + .touch()?; // Generate a lockfile. context.lock().assert().success(); @@ -4695,10 +4714,17 @@ fn sync_group_non_project_member() -> Result<()> { dependencies = ["iniconfig>=1"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + context + .temp_dir + .child("child") + .child("src") + .child("child") + .child("__init__.py") + .touch()?; // Generate a lockfile. uv_snapshot!(context.filters(), context.lock(), @" @@ -4802,14 +4828,20 @@ fn sync_group_self() -> Result<()> { test = ["idna>=3"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [dependency-groups] foo = ["project", "typing-extensions>=4"] bar = ["project[test]"] "#, )?; + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; // Generate a lockfile. uv_snapshot!(context.filters(), context.lock(), @" @@ -5349,10 +5381,16 @@ fn read_metadata_statically_over_the_cache() -> Result<()> { dependencies = ["anyio>=4,<5"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; context.sync().assert().success(); let lock1 = context.read("uv.lock"); @@ -5382,10 +5420,16 @@ fn no_install_project() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; // Generate a lockfile. context.lock().assert().success(); @@ -5436,8 +5480,8 @@ fn no_install_workspace() -> Result<()> { dependencies = ["anyio==3.7.0", "child"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.workspace] members = ["child"] @@ -5446,6 +5490,12 @@ fn no_install_workspace() -> Result<()> { child = { workspace = true } "#, )?; + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; // Add a workspace member. let child = context.temp_dir.child("child"); @@ -5458,8 +5508,8 @@ fn no_install_workspace() -> Result<()> { dependencies = ["iniconfig>=1"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; child @@ -5575,8 +5625,8 @@ fn no_install_local() -> Result<()> { dependencies = ["anyio==3.7.0", "local", "local-editable", "workspace-member"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.sources] local = { path = "./local" } @@ -5587,6 +5637,12 @@ fn no_install_local() -> Result<()> { members = ["workspace-member"] "#, )?; + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; // Add a local package, local editable package, and then a workspace member // as a dependency. @@ -5659,10 +5715,16 @@ fn no_install_package() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; // Generate a lockfile. context.lock().assert().success(); @@ -5716,8 +5778,8 @@ fn no_install_project_no_build() -> Result<()> { dependencies = ["anyio==3.7.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -6166,10 +6228,16 @@ fn convert_to_virtual() -> Result<()> { dependencies = ["iniconfig"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; // Running `uv sync` should install the project itself. uv_snapshot!(context.filters(), context.sync(), @" @@ -6361,10 +6429,16 @@ fn convert_to_package() -> Result<()> { dependencies = ["iniconfig"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + context + .temp_dir + .child("src") + .child("project") + .child("__init__.py") + .touch()?; // Running `uv sync` should install the project itself. uv_snapshot!(context.filters(), context.sync(), @" @@ -7382,10 +7456,16 @@ fn sync_update_project() -> Result<()> { dependencies = ["iniconfig"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; + context + .temp_dir + .child("src") + .child("my_project") + .child("__init__.py") + .touch()?; uv_snapshot!(context.filters(), context.sync(), @" success: true @@ -8065,8 +8145,8 @@ fn transitive_dev() -> Result<()> { requires-python = ">=3.12" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv] dev-dependencies = ["iniconfig>=1"] @@ -8079,6 +8159,12 @@ fn transitive_dev() -> Result<()> { let init = src.child("__init__.py"); init.touch()?; + child + .child("src") + .child("child") + .child("__init__.py") + .touch()?; + uv_snapshot!(context.filters(), context.sync().arg("--dev"), @" success: true exit_code: 0 @@ -8113,8 +8199,8 @@ fn sync_no_editable() -> Result<()> { dependencies = ["child"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.sources] child = { workspace = true } @@ -8130,6 +8216,13 @@ fn sync_no_editable() -> Result<()> { let init = src.child("__init__.py"); init.touch()?; + context + .temp_dir + .child("src") + .child("root") + .child("__init__.py") + .touch()?; + let child = context.temp_dir.child("child"); fs_err::create_dir_all(&child)?; @@ -8142,8 +8235,8 @@ fn sync_no_editable() -> Result<()> { requires-python = ">=3.12" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -8411,8 +8504,8 @@ fn build_system_requires_workspace() -> Result<()> { dependencies = ["typing-extensions>=3.10"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -8494,8 +8587,8 @@ fn build_system_requires_path() -> Result<()> { dependencies = ["typing-extensions>=3.10"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; @@ -9121,8 +9214,8 @@ fn sync_all() -> Result<()> { dependencies = ["anyio>3", "child"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.workspace] members = ["child"] @@ -9149,8 +9242,8 @@ fn sync_all() -> Result<()> { dependencies = ["iniconfig>=1"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; child diff --git a/crates/uv/tests/it/tool_run.rs b/crates/uv/tests/it/tool_run.rs index bd5bb0cef..fa5aa2822 100644 --- a/crates/uv/tests/it/tool_run.rs +++ b/crates/uv/tests/it/tool_run.rs @@ -2585,14 +2585,15 @@ fn run_with_env_file() -> anyhow::Result<()> { script = "foo.main:run" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "# })?; // Create the `foo` module. let foo_project_src = foo_dir.child("src"); let foo_module = foo_project_src.child("foo"); + foo_module.child("__init__.py").touch()?; let foo_main_py = foo_module.child("main.py"); foo_main_py.write_str(indoc! { r#" def run(): diff --git a/crates/uv/tests/it/tree.rs b/crates/uv/tests/it/tree.rs index 1e0eeee7b..701e2f50a 100644 --- a/crates/uv/tests/it/tree.rs +++ b/crates/uv/tests/it/tree.rs @@ -1144,8 +1144,8 @@ fn non_project_member() -> Result<()> { dependencies = ["iniconfig", "sniffio", "anyio"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#, )?; diff --git a/crates/uv/tests/it/workspace.rs b/crates/uv/tests/it/workspace.rs index 1f2cdb6dd..6c419908d 100644 --- a/crates/uv/tests/it/workspace.rs +++ b/crates/uv/tests/it/workspace.rs @@ -1355,8 +1355,8 @@ fn workspace_inherit_sources() -> Result<()> { requires-python = ">=3.12" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.workspace] members = ["packages/*"] @@ -1372,8 +1372,8 @@ fn workspace_inherit_sources() -> Result<()> { dependencies = ["library"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; leaf.child("src/__init__.py").touch()?; @@ -1386,8 +1386,8 @@ fn workspace_inherit_sources() -> Result<()> { dependencies = [] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; library.child("src/__init__.py").touch()?; @@ -1415,8 +1415,8 @@ fn workspace_inherit_sources() -> Result<()> { dependencies = ["library"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.sources] library = { path = "../../../library", editable = true } @@ -1443,8 +1443,8 @@ fn workspace_inherit_sources() -> Result<()> { dependencies = ["library"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; // Update the root to include the source. @@ -1456,8 +1456,8 @@ fn workspace_inherit_sources() -> Result<()> { requires-python = ">=3.12" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.sources] library = { path = "../library", editable = true } @@ -1532,8 +1532,8 @@ fn workspace_inherit_sources() -> Result<()> { requires-python = ">=3.12" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.sources] library = { path = "../library", editable = true } @@ -1550,8 +1550,8 @@ fn workspace_inherit_sources() -> Result<()> { dependencies = ["library"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.sources] application = { path = "../application", editable = true } @@ -1589,8 +1589,8 @@ fn workspace_unsatisfiable_member_dependencies() -> Result<()> { requires-python = ">=3.12" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.workspace] members = ["packages/*"] @@ -1606,8 +1606,8 @@ fn workspace_unsatisfiable_member_dependencies() -> Result<()> { dependencies = ["httpx>9999"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; leaf.child("src/__init__.py").touch()?; @@ -1645,8 +1645,8 @@ fn workspace_unsatisfiable_member_dependencies_conflicting() -> Result<()> { requires-python = ">=3.12" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.workspace] members = ["packages/*"] @@ -1662,8 +1662,8 @@ fn workspace_unsatisfiable_member_dependencies_conflicting() -> Result<()> { dependencies = ["anyio==4.1.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; foo.child("src/__init__.py").touch()?; let bar = workspace.child("packages").child("bar"); @@ -1674,8 +1674,8 @@ fn workspace_unsatisfiable_member_dependencies_conflicting() -> Result<()> { dependencies = ["anyio==4.2.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; bar.child("src/__init__.py").touch()?; @@ -1713,8 +1713,8 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_threeway() -> Result< requires-python = ">=3.12" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.workspace] members = ["packages/*"] @@ -1730,8 +1730,8 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_threeway() -> Result< dependencies = ["anyio==4.1.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; red.child("src/__init__.py").touch()?; let knot = workspace.child("packages").child("knot"); @@ -1742,8 +1742,8 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_threeway() -> Result< dependencies = ["anyio==4.2.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; knot.child("src/__init__.py").touch()?; @@ -1757,8 +1757,8 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_threeway() -> Result< dependencies = ["anyio==4.3.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; bird.child("src/__init__.py").touch()?; @@ -1796,8 +1796,8 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_extra() -> Result<()> requires-python = ">=3.12" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.workspace] members = ["packages/*"] @@ -1813,8 +1813,8 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_extra() -> Result<()> dependencies = ["anyio==4.1.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; foo.child("src/__init__.py").touch()?; let bar = workspace.child("packages").child("bar"); @@ -1827,8 +1827,8 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_extra() -> Result<()> some_extra = ["anyio==4.2.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; bar.child("src/__init__.py").touch()?; @@ -1866,8 +1866,8 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_dev() -> Result<()> { requires-python = ">=3.12" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.workspace] members = ["packages/*"] @@ -1883,8 +1883,8 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_dev() -> Result<()> { dependencies = ["anyio==4.1.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; foo.child("src/__init__.py").touch()?; let bar = workspace.child("packages").child("bar"); @@ -1894,8 +1894,8 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_dev() -> Result<()> { version = "0.1.0" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv] dev-dependencies = ["anyio==4.2.0"] @@ -1937,8 +1937,8 @@ fn workspace_member_name_shadows_dependencies() -> Result<()> { requires-python = ">=3.12" [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" [tool.uv.workspace] members = ["packages/*"] @@ -1954,8 +1954,8 @@ fn workspace_member_name_shadows_dependencies() -> Result<()> { dependencies = ["anyio==4.1.0"] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; foo.child("src/__init__.py").touch()?; @@ -1968,8 +1968,8 @@ fn workspace_member_name_shadows_dependencies() -> Result<()> { dependencies = [] [build-system] - requires = ["setuptools>=42"] - build-backend = "setuptools.build_meta" + requires = ["uv_build>=0.7,<10000"] + build-backend = "uv_build" "#})?; anyio.child("src/__init__.py").touch()?;