Skip to content

Commit 12f610f

Browse files
committed
bazel: Fix Bazel 8 WORKSPACE support
There's some rearranging happening here, like moving jar_jar later. But the main thing is downgrading rules_java to 8.15.2. rules_java 8.16 and later somehow break protobuf: ``` File ".../external/com_google_protobuf/bazel/private/proto_library_rule.bzl", line 43, column 17, in _get_import_prefix if not paths.is_normalized(import_prefix): Error: 'struct' value has no field or method 'is_normalized' Available attributes: basename, dirname, is_absolute, join, normalize, relativize, replace_extension, split_extension ``` protocolbuffers/protobuf#17687 claims that this is due to not using bazel_skylib 1.7.0, but protobuf_deps is defining bazel_skylib to be 1.7.0 and nothing earlier seems to be defining bazel_skylib. So we'll leave this as a bit of a mystery for later. rules_java 8.15.2 is still newer than protobuf_deps's 8.6.1.
1 parent 7c87bf4 commit 12f610f

File tree

2 files changed

+49
-41
lines changed

2 files changed

+49
-41
lines changed

WORKSPACE

Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,34 @@
11
workspace(name = "io_grpc_grpc_java")
22

33
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
4+
load("//:repositories.bzl", "IO_GRPC_GRPC_JAVA_ARTIFACTS", "IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS", "grpc_java_repositories")
45

5-
http_archive(
6-
name = "bazel_features",
7-
sha256 = "a660027f5a87f13224ab54b8dc6e191693c554f2692fcca46e8e29ee7dabc43b",
8-
strip_prefix = "bazel_features-1.30.0",
9-
url = "https://github.com/bazel-contrib/bazel_features/releases/download/v1.30.0/bazel_features-v1.30.0.tar.gz",
10-
)
11-
12-
load("@bazel_features//:deps.bzl", "bazel_features_deps")
13-
14-
bazel_features_deps()
6+
grpc_java_repositories()
157

168
http_archive(
179
name = "rules_java",
18-
sha256 = "4e1a28a25c2efa53500c928d22ceffbc505dd95b335a2d025836a293b592212f",
10+
sha256 = "47632cc506c858011853073449801d648e10483d4b50e080ec2549a4b2398960",
1911
urls = [
20-
"https://github.com/bazelbuild/rules_java/releases/download/9.1.0/rules_java-9.1.0.tar.gz",
12+
"https://github.com/bazelbuild/rules_java/releases/download/8.15.2/rules_java-8.15.2.tar.gz",
2113
],
2214
)
2315

24-
load("@rules_java//java:rules_java_deps.bzl", "compatibility_proxy_repo")
16+
load("@com_google_protobuf//:protobuf_deps.bzl", "PROTOBUF_MAVEN_ARTIFACTS", "protobuf_deps")
2517

26-
compatibility_proxy_repo()
18+
protobuf_deps()
2719

28-
http_archive(
29-
name = "rules_jvm_external",
30-
sha256 = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac",
31-
strip_prefix = "rules_jvm_external-5.3",
32-
url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/5.3/rules_jvm_external-5.3.tar.gz",
33-
)
20+
load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies")
3421

35-
load("@rules_jvm_external//:defs.bzl", "maven_install")
36-
load("//:repositories.bzl", "IO_GRPC_GRPC_JAVA_ARTIFACTS", "IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS", "grpc_java_repositories")
22+
rules_java_dependencies()
3723

38-
grpc_java_repositories()
24+
load("@bazel_features//:deps.bzl", "bazel_features_deps")
25+
26+
bazel_features_deps()
3927

4028
load("@bazel_jar_jar//:jar_jar.bzl", "jar_jar_repositories")
4129

4230
jar_jar_repositories()
4331

44-
load("@com_google_protobuf//:protobuf_deps.bzl", "PROTOBUF_MAVEN_ARTIFACTS", "protobuf_deps")
45-
46-
protobuf_deps()
47-
4832
load("@rules_python//python:repositories.bzl", "py_repositories")
4933

5034
py_repositories()
@@ -55,6 +39,15 @@ switched_rules_by_language(
5539
name = "com_google_googleapis_imports",
5640
)
5741

42+
http_archive(
43+
name = "rules_jvm_external",
44+
sha256 = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac",
45+
strip_prefix = "rules_jvm_external-5.3",
46+
url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/5.3/rules_jvm_external-5.3.tar.gz",
47+
)
48+
49+
load("@rules_jvm_external//:defs.bzl", "maven_install")
50+
5851
maven_install(
5952
artifacts = IO_GRPC_GRPC_JAVA_ARTIFACTS + PROTOBUF_MAVEN_ARTIFACTS,
6053
override_targets = IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS,

examples/WORKSPACE

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,42 +14,57 @@ local_repository(
1414
path = "..",
1515
)
1616

17-
http_archive(
18-
name = "rules_jvm_external",
19-
sha256 = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac",
20-
strip_prefix = "rules_jvm_external-5.3",
21-
url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/5.3/rules_jvm_external-5.3.tar.gz",
22-
)
23-
2417
load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_ARTIFACTS", "IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS", "grpc_java_repositories")
25-
load("@rules_jvm_external//:defs.bzl", "maven_install")
2618

2719
grpc_java_repositories()
2820

29-
load("@bazel_jar_jar//:jar_jar.bzl", "jar_jar_repositories")
30-
31-
jar_jar_repositories()
21+
http_archive(
22+
name = "rules_java",
23+
sha256 = "47632cc506c858011853073449801d648e10483d4b50e080ec2549a4b2398960",
24+
urls = [
25+
"https://github.com/bazelbuild/rules_java/releases/download/8.15.2/rules_java-8.15.2.tar.gz",
26+
],
27+
)
3228

3329
# Protobuf now requires C++14 or higher, which requires Bazel configuration
3430
# outside the WORKSPACE. See .bazelrc in this directory.
3531
load("@com_google_protobuf//:protobuf_deps.bzl", "PROTOBUF_MAVEN_ARTIFACTS", "protobuf_deps")
3632

3733
protobuf_deps()
3834

39-
load("@rules_python//python:repositories.bzl", "py_repositories")
35+
load("@rules_java//java:rules_java_deps.bzl", "compatibility_proxy_repo", "rules_java_dependencies")
4036

41-
py_repositories()
37+
rules_java_dependencies()
38+
39+
load("@bazel_features//:deps.bzl", "bazel_features_deps")
4240

43-
load("@rules_java//java:rules_java_deps.bzl", "compatibility_proxy_repo")
41+
bazel_features_deps()
4442

4543
compatibility_proxy_repo()
4644

45+
load("@bazel_jar_jar//:jar_jar.bzl", "jar_jar_repositories")
46+
47+
jar_jar_repositories()
48+
49+
load("@rules_python//python:repositories.bzl", "py_repositories")
50+
51+
py_repositories()
52+
4753
load("@com_google_googleapis//:repository_rules.bzl", "switched_rules_by_language")
4854

4955
switched_rules_by_language(
5056
name = "com_google_googleapis_imports",
5157
)
5258

59+
http_archive(
60+
name = "rules_jvm_external",
61+
sha256 = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac",
62+
strip_prefix = "rules_jvm_external-5.3",
63+
url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/5.3/rules_jvm_external-5.3.tar.gz",
64+
)
65+
66+
load("@rules_jvm_external//:defs.bzl", "maven_install")
67+
5368
maven_install(
5469
artifacts = [
5570
"com.google.api.grpc:grpc-google-cloud-pubsub-v1:0.1.24",

0 commit comments

Comments
 (0)