From 14e96bd57d4366cd7a85ef00c143e903e7f239e8 Mon Sep 17 00:00:00 2001 From: Ignas Anikevicius <240938+aignas@users.noreply.github.com> Date: Mon, 27 Apr 2026 22:37:29 +0900 Subject: [PATCH 1/4] fix(pypi): harden the WORKSPACE python detection in pip_repository A fixup to #3737 --- python/private/pypi/pip_repository.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/private/pypi/pip_repository.bzl b/python/private/pypi/pip_repository.bzl index b449f8dd85..aee05469c5 100644 --- a/python/private/pypi/pip_repository.bzl +++ b/python/private/pypi/pip_repository.bzl @@ -90,9 +90,9 @@ def _pip_repository_impl(rctx): python_interpreter = rctx.attr.python_interpreter, python_interpreter_target = rctx.attr.python_interpreter_target, ) - result = rctx.execute([python_interpreter, "--version"]) + result = rctx.execute([python_interpreter, "-c", "import sys; print(sys.version.split()[0])"]) if result.stdout: - python_version = result.stdout.strip().split(" ")[-1] + python_version = result.stdout.strip() else: fail("Could not determine Python version") platforms = [ From a65b5c0326ceb5ae9da4040682337391169601f9 Mon Sep 17 00:00:00 2001 From: Ignas Anikevicius <240938+aignas@users.noreply.github.com> Date: Mon, 27 Apr 2026 22:45:23 +0900 Subject: [PATCH 2/4] improve --- python/private/pypi/pip_repository.bzl | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/python/private/pypi/pip_repository.bzl b/python/private/pypi/pip_repository.bzl index aee05469c5..65fa9ff316 100644 --- a/python/private/pypi/pip_repository.bzl +++ b/python/private/pypi/pip_repository.bzl @@ -90,11 +90,10 @@ def _pip_repository_impl(rctx): python_interpreter = rctx.attr.python_interpreter, python_interpreter_target = rctx.attr.python_interpreter_target, ) - result = rctx.execute([python_interpreter, "-c", "import sys; print(sys.version.split()[0])"]) - if result.stdout: - python_version = result.stdout.strip() - else: - fail("Could not determine Python version") + result = rctx.execute([python_interpreter, "-S", "-c", "import sys; print(sys.version.split()[0])"]) + if result.return_code != 0 or not result.stdout.strip(): + fail("Could not determine Python version for interpreter %s: %s" % (python_interpreter, result.stderr or result.stdout)) + python_version = result.stdout.strip().splitlines()[-1] platforms = [ "linux_aarch64", "linux_arm", From c0d20c4351325090b4161c4bb6bbb52b95bfbe1b Mon Sep 17 00:00:00 2001 From: Ignas Anikevicius <240938+aignas@users.noreply.github.com> Date: Mon, 27 Apr 2026 22:47:25 +0900 Subject: [PATCH 3/4] fixup evaluate_markers signature in WORKSPACE --- python/private/pypi/pip_repository.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/private/pypi/pip_repository.bzl b/python/private/pypi/pip_repository.bzl index 65fa9ff316..71d10b0617 100644 --- a/python/private/pypi/pip_repository.bzl +++ b/python/private/pypi/pip_repository.bzl @@ -119,7 +119,7 @@ def _pip_repository_impl(rctx): platforms = platforms, ), extra_pip_args = rctx.attr.extra_pip_args, - evaluate_markers = lambda rctx, requirements: evaluate_markers( + evaluate_markers = lambda requirements: evaluate_markers( requirements = { # NOTE @aignas 2025-07-07: because we don't distinguish between # freethreaded and non-freethreaded, it is a 1:1 mapping. From 00b68a75fd70f3e280a825242ad97d9c5d56fedc Mon Sep 17 00:00:00 2001 From: Ignas Anikevicius <240938+aignas@users.noreply.github.com> Date: Mon, 27 Apr 2026 22:47:37 +0900 Subject: [PATCH 4/4] Revert "fixup evaluate_markers signature in WORKSPACE" This reverts commit c0d20c4351325090b4161c4bb6bbb52b95bfbe1b. --- python/private/pypi/pip_repository.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/private/pypi/pip_repository.bzl b/python/private/pypi/pip_repository.bzl index 71d10b0617..65fa9ff316 100644 --- a/python/private/pypi/pip_repository.bzl +++ b/python/private/pypi/pip_repository.bzl @@ -119,7 +119,7 @@ def _pip_repository_impl(rctx): platforms = platforms, ), extra_pip_args = rctx.attr.extra_pip_args, - evaluate_markers = lambda requirements: evaluate_markers( + evaluate_markers = lambda rctx, requirements: evaluate_markers( requirements = { # NOTE @aignas 2025-07-07: because we don't distinguish between # freethreaded and non-freethreaded, it is a 1:1 mapping.