From 3e3b44c300b21eb996a2957782421bc0f157af18 Mon Sep 17 00:00:00 2001 From: Derek Mauro Date: Tue, 30 Jul 2024 13:17:08 -0700 Subject: [PATCH] Remove auto-detection of Python toolchain from MODULE.bazel since it affects downstream users The correct solution appears to be https://rules-python.readthedocs.io/en/stable/toolchains.html#library-modules-with-dev-only-python-usage This change also includes a workaround for the new mechanism creating paths that are too long for Windows to handle. Fixes #4581 PiperOrigin-RevId: 657706984 Change-Id: I8ae6b9e5efeb7629d79d14e7d4d3889876282d17 --- MODULE.bazel | 16 ++++++++++++---- ci/windows-presubmit.bat | 7 ++++++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 8df73fba23..c9a52e058a 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -49,11 +49,19 @@ bazel_dep(name = "re2", version = "2024-07-02") bazel_dep(name = "rules_python", - version = "0.29.0") + version = "0.34.0", + dev_dependency = True) +# https://rules-python.readthedocs.io/en/stable/toolchains.html#library-modules-with-dev-only-python-usage +python = use_extension( + "@rules_python//python/extensions:python.bzl", + "python", + dev_dependency = True +) + +python.toolchain(python_version = "3.12", + is_default = True, + ignore_root_user_error = True) fake_fuchsia_sdk = use_repo_rule("//:fake_fuchsia_sdk.bzl", "fake_fuchsia_sdk") fake_fuchsia_sdk(name = "fuchsia_sdk") - -# https://github.com/bazelbuild/rules_python/blob/main/BZLMOD_SUPPORT.md#default-toolchain-is-not-the-local-system-python -register_toolchains("@bazel_tools//tools/python:autodetecting_toolchain") diff --git a/ci/windows-presubmit.bat b/ci/windows-presubmit.bat index 9753f9c0c5..1adc1a16ff 100644 --- a/ci/windows-presubmit.bat +++ b/ci/windows-presubmit.bat @@ -46,8 +46,13 @@ RMDIR /S /Q cmake_msvc2022 :: ---------------------------------------------------------------------------- :: Bazel +:: The default home directory on Kokoro is a long path which causes errors +:: because of Windows limitations on path length. +:: --output_user_root=C:\tmp causes Bazel to use a shorter path. SET BAZEL_VS=C:\Program Files\Microsoft Visual Studio\2022\Community -%BAZEL_EXE% test ... ^ +%BAZEL_EXE% ^ + --output_user_root=C:\tmp ^ + test ... ^ --compilation_mode=dbg ^ --copt=/std:c++14 ^ --copt=/WX ^