From c8bbac5c6ebf43aa0f4646ab89d9e8176ff535fb Mon Sep 17 00:00:00 2001 From: ethernet Date: Sat, 19 Sep 2026 01:52:39 -0400 Subject: [PATCH] fix(ci): setup-pm puts the PM-managed uv on PATH for the test lanes uv is internal to PM (never on a user's PATH), so env_for() left it out of the exported PATH once the toolchain roots stopped listing python itself. The fresh-install, pm-toolchain cold and worker-contract suites drive real uv through shutil.which("uv") and failed with "requires real uv". --- scripts/ci/setup_toolchain.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/ci/setup_toolchain.py b/scripts/ci/setup_toolchain.py index 66241fad1b..8f7a4e5d77 100644 --- a/scripts/ci/setup_toolchain.py +++ b/scripts/ci/setup_toolchain.py @@ -151,6 +151,11 @@ def install(args) -> None: exported = {} outputs = {f"{name}-path": str(binaries[name]) for name in public_names} if "python" in names: + # uv is PM-internal (never on a user's PATH), but the test suites this + # toolchain serves drive real uv through shutil.which("uv"). + uv = get_package("uv").binary(store_root() / facts.get("uv")["entry"], target) + path.append(str(uv.parent)) + outputs["uv-path"] = str(uv) # Keep third-party CI tooling out of the verified interpreter store. # PM prepares the empty command environment through its normal builder. commands = args.home.resolve() / "python" / facts.get("python")["entry"]