diff --git a/.bcr/presubmit.yml b/.bcr/presubmit.yml index 508ee11..2dcdc32 100644 --- a/.bcr/presubmit.yml +++ b/.bcr/presubmit.yml @@ -2,7 +2,7 @@ bcr_test_module: module_path: "e2e/smoke" matrix: platform: ["debian10", "macos", "ubuntu2004", "windows"] - bazel: ["7.x"] + bazel: ["7.x", "8.x"] tasks: run_tests: name: "Run test module" diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e21346c..b10c9f9 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,13 +18,12 @@ concurrency: jobs: test: - uses: bazel-contrib/.github/.github/workflows/bazel.yaml@v6 + uses: bazel-contrib/.github/.github/workflows/bazel.yaml@646899086d7aaee8e532540480f3e91e00596234 # Dec 11 2024 with: folders: '[".", "e2e/smoke", "examples"]' exclude: | [ - {"bazelversion": "6.4.0"}, {"folder": ".", "bzlmodEnabled": false}, {"folder": "examples", "bzlmodEnabled": false}, - {"folder": ".", "os": "windows-latest"} + {"bazelversion": "8.0.0", "bzlmodEnabled": false}, ] diff --git a/MODULE.bazel b/MODULE.bazel index 940b2fb..4e9a8cd 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -8,7 +8,7 @@ module( bazel_dep(name = "bazel_features", version = "1.9.0") bazel_dep(name = "bazel_skylib", version = "1.4.1") -bazel_dep(name = "rules_proto", version = "6.0.0") +bazel_dep(name = "rules_proto", version = "7.1.0") bazel_dep(name = "platforms", version = "0.0.10") bazel_dep(name = "aspect_bazel_lib", version = "2.8.1", dev_dependency = True) diff --git a/README.md b/README.md index 0b9c087..3322fa4 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,4 @@ -# Pre-built protoc toolchain for Bazel 7 - -> [!CAUTION] -> Bazel 8 and recent rules_proto changes broke this toolchain. -> We don't currently have any plans to address this. -> Instead, we expect someone on the protobuf team to follow through with the -> "End Goal" promised in https://protobuf.dev/news/2024-10-01/ -> where this functionality is upstreamed. -> Follow https://github.com/protocolbuffers/protobuf/issues/19558 +# Pre-built protoc toolchain for Bazel _#NeverCompileProtocAgain_ diff --git a/e2e/smoke/.bazelversion b/e2e/smoke/.bazelversion new file mode 120000 index 0000000..96cf949 --- /dev/null +++ b/e2e/smoke/.bazelversion @@ -0,0 +1 @@ +../../.bazelversion \ No newline at end of file diff --git a/e2e/smoke/MODULE.bazel b/e2e/smoke/MODULE.bazel index ae51e6b..72aee7e 100644 --- a/e2e/smoke/MODULE.bazel +++ b/e2e/smoke/MODULE.bazel @@ -1,5 +1,5 @@ bazel_dep(name = "toolchains_protoc", version = "0.0.0") -bazel_dep(name = "rules_proto", version = "6.0.0-rc2") +bazel_dep(name = "rules_proto", version = "7.1.0") local_path_override( module_name = "toolchains_protoc", diff --git a/examples/.bazelrc b/examples/.bazelrc index 7e8772b..06d1d1b 100644 --- a/examples/.bazelrc +++ b/examples/.bazelrc @@ -2,8 +2,5 @@ common --incompatible_enable_proto_toolchain_resolution common --@aspect_rules_py//py:interpreter_version=3.9.18 -# See https://github.com/bazelbuild/rules_python/issues/1069#issuecomment-1942053014 -common --action_env=RULES_PYTHON_ENABLE_PYSTAR=0 - # Force rules_go to disable CGO even though we have a (fake) C++ toolchain registered. common --host_platform=//tools:no_cgo_host_platform diff --git a/examples/.bazelversion b/examples/.bazelversion deleted file mode 100644 index 1502020..0000000 --- a/examples/.bazelversion +++ /dev/null @@ -1 +0,0 @@ -7.3.0 diff --git a/examples/.bazelversion b/examples/.bazelversion new file mode 120000 index 0000000..b332604 --- /dev/null +++ b/examples/.bazelversion @@ -0,0 +1 @@ +../.bazelversion \ No newline at end of file diff --git a/examples/BUILD.bazel b/examples/BUILD.bazel index ce6cb5f..91da985 100644 --- a/examples/BUILD.bazel +++ b/examples/BUILD.bazel @@ -1,6 +1,5 @@ load("@rules_go//proto:def.bzl", "go_proto_library") load("@rules_proto//proto:defs.bzl", "proto_library") -load("@rules_python//python:proto.bzl", "py_proto_library") package(default_visibility = ["//visibility:public"]) @@ -10,15 +9,21 @@ proto_library( deps = ["@com_google_protobuf//:any_proto"], ) -py_proto_library( - name = "foo_py_proto", - deps = [":foo_proto"], -) +# Broken because rules_python's py_proto_library doesnt produce the same +# PyInfo symbol that py_test expects. +# load("@rules_python//python:proto.bzl", "py_proto_library") +# py_proto_library( +# name = "foo_py_proto", +# deps = [":foo_proto"], +# ) -java_proto_library( - name = "foo_java_proto", - deps = [":foo_proto"], -) +# Broken by https://github.com/protocolbuffers/protobuf/pull/19679 +# which causes building C++ code from source. +# TODO: re-enable once protobuf honors the toolchain +# java_proto_library( +# name = "foo_java_proto", +# deps = [":foo_proto"], +# ) go_proto_library( name = "foo_go_proto", diff --git a/examples/MODULE.bazel b/examples/MODULE.bazel index 90ea055..310bfbf 100644 --- a/examples/MODULE.bazel +++ b/examples/MODULE.bazel @@ -1,10 +1,11 @@ bazel_dep(name = "toolchains_protoc", version = "0.0.0") -bazel_dep(name = "aspect_bazel_lib", version = "2.8.1") -bazel_dep(name = "aspect_rules_py", version = "0.7.1") -bazel_dep(name = "rules_java", version = "7.6.5") -bazel_dep(name = "rules_proto", version = "6.0.0") -bazel_dep(name = "rules_python", version = "0.32.2") -bazel_dep(name = "rules_go", version = "0.48.0") +bazel_dep(name = "aspect_bazel_lib", version = "2.11.0") +bazel_dep(name = "aspect_rules_py", version = "1.0.0") +bazel_dep(name = "platforms", version = "0.0.11") +bazel_dep(name = "rules_java", version = "8.6.3") +bazel_dep(name = "rules_proto", version = "7.1.0") +bazel_dep(name = "rules_python", version = "1.0.0") +bazel_dep(name = "rules_go", version = "0.52.0") bazel_dep(name = "rules_uv", version = "0.10.0") # This example is in the same repo with the ruleset, so we should point to the code at HEAD diff --git a/examples/java/BUILD b/examples/java/BUILD index fe35ad5..e0f5fe8 100644 --- a/examples/java/BUILD +++ b/examples/java/BUILD @@ -1,9 +1,10 @@ -java_binary( - name = "java", - srcs = ["Main.java"], - main_class = "Main", - deps = [ - "//:foo_java_proto", - "@protobuf-java//jar", - ], -) +# See comment in examples/BUILD.bazel +# java_binary( +# name = "java", +# srcs = ["Main.java"], +# main_class = "Main", +# deps = [ +# "//:foo_java_proto", +# "@protobuf-java//jar", +# ], +# ) diff --git a/examples/python/BUILD b/examples/python/BUILD index a55aab0..5f3d3b4 100644 --- a/examples/python/BUILD +++ b/examples/python/BUILD @@ -1,5 +1,6 @@ -py_test( - name = "message_test", - srcs = ["message_test.py"], - deps = ["//:foo_py_proto"], -) +# See comment in examples/BUILD.bazel +# py_test( +# name = "message_test", +# srcs = ["message_test.py"], +# deps = ["//:foo_py_proto"], +# )