Use `@bazel_features` for rules_java compatibility proxy The previous check would have eventually broken with Bazel 10. PiperOrigin-RevId: 805798844 Change-Id: I4ea5d594f0e370d7d3b7568d54626944fe8f1923
diff --git a/WORKSPACE b/WORKSPACE index acd7cae..475e9ef 100644 --- a/WORKSPACE +++ b/WORKSPACE
@@ -37,14 +37,21 @@ ], ) -load("//java:rules_java_deps.bzl", "rules_java_dependencies") - -rules_java_dependencies() +http_archive( + name = "bazel_features", + sha256 = "a660027f5a87f13224ab54b8dc6e191693c554f2692fcca46e8e29ee7dabc43b", + strip_prefix = "bazel_features-1.30.0", + url = "https://github.com/bazel-contrib/bazel_features/releases/download/v1.30.0/bazel_features-v1.30.0.tar.gz", +) load("@bazel_features//:deps.bzl", "bazel_features_deps") bazel_features_deps() +load("//java:rules_java_deps.bzl", "rules_java_dependencies") + +rules_java_dependencies() + load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility proto_bazel_features(name = "proto_bazel_features")
diff --git a/distro/relnotes.bzl b/distro/relnotes.bzl index ce04d50..9d76230 100644 --- a/distro/relnotes.bzl +++ b/distro/relnotes.bzl
@@ -38,12 +38,19 @@ sha256 = "$$sha", ) -load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") -rules_java_dependencies() +http_archive( + name = "bazel_features", + sha256 = "a660027f5a87f13224ab54b8dc6e191693c554f2692fcca46e8e29ee7dabc43b", + strip_prefix = "bazel_features-1.30.0", + url = "https://github.com/bazel-contrib/bazel_features/releases/download/v1.30.0/bazel_features-v1.30.0.tar.gz", +) load("@bazel_features//:deps.bzl", "bazel_features_deps") bazel_features_deps() +load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") +rules_java_dependencies() + # note that the following line is what is minimally required from protobuf for the java rules # consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility
diff --git a/java/rules_java_deps.bzl b/java/rules_java_deps.bzl index b32edd2..1eb2849 100644 --- a/java/rules_java_deps.bzl +++ b/java/rules_java_deps.bzl
@@ -1,12 +1,11 @@ """Module extension for compatibility with previous Bazel versions""" +load("@bazel_features//private:util.bzl", _bazel_version_ge = "ge") load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") def _compatibility_proxy_repo_impl(rctx): - # TODO: use @bazel_features - bazel = native.bazel_version - if not bazel or bazel >= "8": + if _bazel_version_ge("8.0.0"): rctx.file( "BUILD.bazel", """ @@ -210,15 +209,6 @@ ], ) -def bazel_features_repo(): - maybe( - http_archive, - name = "bazel_features", - sha256 = "a660027f5a87f13224ab54b8dc6e191693c554f2692fcca46e8e29ee7dabc43b", - strip_prefix = "bazel_features-1.30.0", - url = "https://github.com/bazel-contrib/bazel_features/releases/download/v1.30.0/bazel_features-v1.30.0.tar.gz", - ) - def rules_java_dependencies(): """An utility method to load non-toolchain dependencies of rules_java. @@ -232,4 +222,3 @@ zlib_repo() absl_repo() rules_license_repo() - bazel_features_repo()
diff --git a/test/repo/WORKSPACE b/test/repo/WORKSPACE index a6055e2..32cadb5 100644 --- a/test/repo/WORKSPACE +++ b/test/repo/WORKSPACE
@@ -5,14 +5,23 @@ path = "../../", ) -load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -rules_java_dependencies() +http_archive( + name = "bazel_features", + sha256 = "a660027f5a87f13224ab54b8dc6e191693c554f2692fcca46e8e29ee7dabc43b", + strip_prefix = "bazel_features-1.30.0", + url = "https://github.com/bazel-contrib/bazel_features/releases/download/v1.30.0/bazel_features-v1.30.0.tar.gz", +) load("@bazel_features//:deps.bzl", "bazel_features_deps") bazel_features_deps() +load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") + +rules_java_dependencies() + load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility proto_bazel_features(name = "proto_bazel_features") @@ -33,8 +42,6 @@ ], ) -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - http_archive( name = "rules_shell", sha256 = "3e114424a5c7e4fd43e0133cc6ecdfe54e45ae8affa14fadd839f29901424043",