diff --git a/.bazelrc b/.bazelrc index 9322cbb0..35dd806e 100644 --- a/.bazelrc +++ b/.bazelrc @@ -26,3 +26,6 @@ build --@protobuf//bazel/toolchains:prefer_prebuilt_protoc # Ruff linting via aspect_rules_lint build --aspects=//tools/lint:linters.bzl%ruff build --@aspect_rules_lint//lint:fail_on_violation + +# Use free-threaded Python 3.14t +build --platforms=//tools/platforms:freethreaded diff --git a/MODULE.bazel b/MODULE.bazel index 7863fa0f..b64c236d 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -5,9 +5,12 @@ module( register_toolchains("//tools/proto:python_toolchain_toolchain") +register_execution_platforms("//tools/platforms:freethreaded") + # --- Core dependencies --- bazel_dep(name = "bazel_skylib", version = "1.9.0") +bazel_dep(name = "platforms", version = "1.0.0") bazel_dep(name = "rules_python", version = "1.9.0") bazel_dep(name = "rules_go", version = "0.60.0") bazel_dep(name = "gazelle", version = "0.47.0") diff --git a/tools/platforms/BUILD.bazel b/tools/platforms/BUILD.bazel new file mode 100644 index 00000000..c34ead2c --- /dev/null +++ b/tools/platforms/BUILD.bazel @@ -0,0 +1,11 @@ +platform( + name = "freethreaded", + constraint_values = [ + "@aspect_rules_py//uv/private/constraints/abi:freethreading_enabled", + ], + flags = [ + "--@rules_python//python/config_settings:py_freethreaded=yes", + ], + parents = ["@platforms//host"], + visibility = ["//visibility:public"], +)