Overhaul `@rules_java` bzl_library dep graph - Construct an accurate `bzl_library` target for the compatibility proxy - Updates `proto_support.bzl` to use the right `java_common` - Work towards fixing https://github.com/bazelbuild/bazel/issues/24455 PiperOrigin-RevId: 699129931 Change-Id: I55f6e744602e3760f69bc197a8f107fd119feee0
diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml index be62c01..efeeef1 100644 --- a/.bazelci/presubmit.yml +++ b/.bazelci/presubmit.yml
@@ -4,7 +4,6 @@ - "@remote_java_tools//java_tools/..." # TODO: Look into broken targets in //toolchains - "-//toolchains/..." - - "-//test/repo/..." # TODO: re-enable docs after protobuf is fixed - "-//java/docs/..." - "-//test:docs_up_to_date_test"
diff --git a/java/BUILD b/java/BUILD index caacb07..2074c38 100644 --- a/java/BUILD +++ b/java/BUILD
@@ -65,6 +65,13 @@ deps = ["//java/common"], ) +bzl_library( + name = "http_jar_bzl", + srcs = ["http_jar.bzl"], + visibility = ["//visibility:public"], + deps = ["@bazel_tools//tools:bzl_srcs"], +) + filegroup( name = "for_bazel_tests", testonly = 1,
diff --git a/java/bazel/rules/BUILD.bazel b/java/bazel/rules/BUILD.bazel index 1ffd8ef..0ffa9d4 100644 --- a/java/bazel/rules/BUILD.bazel +++ b/java/bazel/rules/BUILD.bazel
@@ -24,9 +24,10 @@ srcs = glob(["*.bzl"]), visibility = ["//visibility:public"], # for Bazel docgen deps = [ - "//java/common", + "//java/common:semantics_bzl", "//java/common/rules:core_rules", "//java/common/rules/impl", + "//java/private:internals", "@bazel_skylib//lib:paths", "@rules_cc//cc:find_cc_toolchain_bzl", "@rules_cc//cc/common",
diff --git a/java/common/BUILD b/java/common/BUILD index ef669cc..6850cb4 100644 --- a/java/common/BUILD +++ b/java/common/BUILD
@@ -14,14 +14,32 @@ bzl_library( name = "common", - srcs = glob(["*.bzl"]), + srcs = glob( + ["*.bzl"], + exclude = [ + "java_semantics.bzl", + "proguard_spec_info.bzl", + ], + ), + visibility = ["//visibility:public"], + deps = ["@compatibility_proxy//:proxy_bzl"], +) + +bzl_library( + name = "semantics_bzl", + srcs = ["java_semantics.bzl"], visibility = ["//visibility:public"], deps = [ - "//java/private:internals", - "@compatibility_proxy//:proxy_bzl", + "@rules_cc//cc/common", ], ) +bzl_library( + name = "proguard_spec_info_bzl", + srcs = ["proguard_spec_info.bzl"], + visibility = ["//visibility:public"], +) + filegroup( name = "for_bazel_tests", testonly = 1,
diff --git a/java/common/rules/BUILD b/java/common/rules/BUILD index 4ffe015..9d0678c 100644 --- a/java/common/rules/BUILD +++ b/java/common/rules/BUILD
@@ -38,7 +38,7 @@ deps = [ ":android_lint_bzl", ":rule_util_bzl", - "//java/common", + "//java/private:internals", "@bazel_skylib//lib:paths", "@rules_cc//cc/common", ], @@ -53,6 +53,7 @@ ], visibility = [ "//java:__subpackages__", + "@compatibility_proxy//:__pkg__", ], )
diff --git a/java/common/rules/impl/BUILD b/java/common/rules/impl/BUILD index fc96203..f50862c 100644 --- a/java/common/rules/impl/BUILD +++ b/java/common/rules/impl/BUILD
@@ -17,6 +17,7 @@ visibility = ["//java:__subpackages__"], deps = [ ":java_helper_bzl", + "//java/common:proguard_spec_info_bzl", "@com_google_protobuf//bazel/common:proto_info_bzl", ], )
diff --git a/java/private/BUILD b/java/private/BUILD index af9edbe..94bae8d 100644 --- a/java/private/BUILD +++ b/java/private/BUILD
@@ -7,7 +7,10 @@ srcs = [ "native.bzl", ], - visibility = ["//java:__subpackages__"], + visibility = [ + "//java:__subpackages__", + "@compatibility_proxy//:__pkg__", + ], ) bzl_library( @@ -19,7 +22,10 @@ "java_info.bzl", "message_bundle_info.bzl", ], - visibility = ["//java:__subpackages__"], + visibility = [ + "//java:__subpackages__", + "@compatibility_proxy//:__pkg__", + ], deps = [ ":native_bzl", "//java/common/rules:toolchain_rules", @@ -35,7 +41,7 @@ name = "proto_support", srcs = ["proto_support.bzl"], visibility = ["//visibility:public"], - deps = [":native_bzl"], + deps = ["@compatibility_proxy//:proxy_bzl"], ) filegroup(
diff --git a/java/private/proto_support.bzl b/java/private/proto_support.bzl index dcb8f09..dff978b 100644 --- a/java/private/proto_support.bzl +++ b/java/private/proto_support.bzl
@@ -13,7 +13,7 @@ # limitations under the License. """Support for Java compilation of protocol buffer generated code.""" -load("//java/common:java_common.bzl", "java_common") +load("@compatibility_proxy//:proxy.bzl", "java_common") # Partial support, because internal symbols are not available in older Bazel version # TODO: Once Java rules are moved into the rules_java, this should become a full support.
diff --git a/java/rules_java_deps.bzl b/java/rules_java_deps.bzl index 8ed5857..026ed4f 100644 --- a/java/rules_java_deps.bzl +++ b/java/rules_java_deps.bzl
@@ -6,15 +6,26 @@ def _compatibility_proxy_repo_impl(rctx): # TODO: use @bazel_features bazel = native.bazel_version - rctx.file( - "BUILD.bazel", - """ -load("@bazel_skylib//:bzl_library.bzl", "bzl_library") -bzl_library(name = "proxy_bzl", srcs = ["proxy.bzl"], visibility = ["//visibility:public"]) - """, - ) if not bazel or bazel >= "8": rctx.file( + "BUILD.bazel", + """ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") +exports_files(['proxy.bzl'], visibility = ["@rules_java//test:__pkg__"]) +bzl_library( + name = "proxy_bzl", + srcs = ["proxy.bzl"], + deps = [ + "@rules_java//java/bazel/rules", + "@rules_java//java/common/rules:toolchain_rules", + "@rules_java//java/private:internals", + "@rules_java//java:http_jar_bzl", + ], + visibility = ["//visibility:public"] +) + """, + ) + rctx.file( "proxy.bzl", """ load("@rules_java//java/bazel/rules:bazel_java_binary_wrapper.bzl", _java_binary = "java_binary") @@ -46,6 +57,22 @@ ) else: rctx.file( + "BUILD.bazel", + """ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") +exports_files(['proxy.bzl'], visibility = ["@rules_java//test:__pkg__"]) +bzl_library( + name = "proxy_bzl", + srcs = ["proxy.bzl"], + deps = [ + "@rules_java//java/private:native_bzl", + "@bazel_tools//tools:bzl_srcs", + ], + visibility = ["//visibility:public"] +) + """, + ) + rctx.file( "proxy.bzl", """ load("@bazel_tools//tools/build_defs/repo:http.bzl", _http_jar = "http_jar")
diff --git a/java/toolchains/BUILD b/java/toolchains/BUILD index adcd09a..29a572a 100644 --- a/java/toolchains/BUILD +++ b/java/toolchains/BUILD
@@ -14,10 +14,7 @@ name = "toolchain_rules", srcs = glob(["*.bzl"]), visibility = ["//visibility:public"], - deps = [ - "//java/private:native_bzl", - "@compatibility_proxy//:proxy_bzl", - ], + deps = ["@compatibility_proxy//:proxy_bzl"], ) filegroup(
diff --git a/test/BUILD.bazel b/test/BUILD.bazel index 00506f8..c9dd65b 100644 --- a/test/BUILD.bazel +++ b/test/BUILD.bazel
@@ -60,3 +60,9 @@ ) validate_configs() + +starlark_doc_extract( + name = "proxy_bzl_graph", + src = "@compatibility_proxy//:proxy.bzl", + deps = ["@compatibility_proxy//:proxy_bzl"], +)