Skip to content

Commit cdfec73

Browse files
committed
Begin Bazel 8 / rules_java 8 compatibility updates
Moves functions out of `//scala:scala.bzl` and updates `WORKSPACE` to load `//scala:toolchains.bzl` to avoid importing macros that depend on `JavaInfo` and `java_common` during `WORKSPACE` evaluation. Based on advice from @hvadehra in bazel-contrib#1652. I haven't tried this under Bzlmod yet, and it still fails with the following error. This is due to bumping to Protobuf v29.0 and protobuf-java:4.29.0, and I believe I can update `ExtraProtobufGenerator.scala` to fix this. But the point is that I do _not_ have to `load()` files from `@rules_java` after all. ```txt ERROR: .../external/com_google_protobuf/src/google/protobuf/BUILD.bazel:23:14: ProtoScalaPBRule external/com_google_protobuf/src/google/protobuf/any_proto_jvm_extra_protobuf_generator_scalapb.srcjar failed: (Exit 1): scalapb_worker failed: error executing ProtoScalaPBRule command (from target @@com_google_protobuf//src/google/protobuf:any_proto) bazel-out/.../bin/src/scala/scripts/scalapb_worker ... (remaining 2 arguments skipped) --jvm_extra_protobuf_generator_out: java.lang.NoSuchMethodError: 'java.lang.Object com.google.protobuf.DescriptorProtos$FieldOptions.getExtension(com.google.protobuf.GeneratedMessage$GeneratedExtension)' at scalapb.compiler.DescriptorImplicits$ExtendedFieldDescriptor.fieldOptions(DescriptorImplicits.scala:329) at scalapb.compiler.DescriptorImplicits$ExtendedFieldDescriptor.scalaName(DescriptorImplicits.scala:207) at scalapb.compiler.ProtoValidation.validateField(ProtoValidation.scala:121) at scalapb.compiler.ProtoValidation.$anonfun$validateMessage$3(ProtoValidation.scala:56) at scalapb.compiler.ProtoValidation.$anonfun$validateMessage$3$adapted(ProtoValidation.scala:56) at scala.collection.Iterator.foreach(Iterator.scala:943) at scala.collection.Iterator.foreach$(Iterator.scala:943) at scala.collection.AbstractIterator.foreach(Iterator.scala:1431) at scala.collection.IterableLike.foreach(IterableLike.scala:74) at scala.collection.IterableLike.foreach$(IterableLike.scala:73) at scala.collection.AbstractIterable.foreach(Iterable.scala:56) at scalapb.compiler.ProtoValidation.validateMessage(ProtoValidation.scala:56) at scalapb.compiler.ProtoValidation.$anonfun$validateFile$2(ProtoValidation.scala:17) at scalapb.compiler.ProtoValidation.$anonfun$validateFile$2$adapted(ProtoValidation.scala:17) at scala.collection.Iterator.foreach(Iterator.scala:943) at scala.collection.Iterator.foreach$(Iterator.scala:943) at scala.collection.AbstractIterator.foreach(Iterator.scala:1431) at scala.collection.IterableLike.foreach(IterableLike.scala:74) at scala.collection.IterableLike.foreach$(IterableLike.scala:73) at scala.collection.AbstractIterable.foreach(Iterable.scala:56) at scalapb.compiler.ProtoValidation.validateFile(ProtoValidation.scala:17) at scalapb.compiler.ProtoValidation.$anonfun$validateFiles$1(ProtoValidation.scala:10) at scalapb.compiler.ProtoValidation.$anonfun$validateFiles$1$adapted(ProtoValidation.scala:10) at scala.collection.immutable.Stream.foreach(Stream.scala:533) at scalapb.compiler.ProtoValidation.validateFiles(ProtoValidation.scala:10) at scalarules.test.extra_protobuf_generator.ExtraProtobufGenerator$.handleCodeGeneratorRequest(ExtraProtobufGenerator.scala:86) at scalarules.test.extra_protobuf_generator.ExtraProtobufGenerator$.run(ExtraProtobufGenerator.scala:55) at protocbridge.frontend.PluginFrontend$.$anonfun$runWithBytes$1(PluginFrontend.scala:51) at scala.util.Try$.apply(Try.scala:213) at protocbridge.frontend.PluginFrontend$.runWithBytes(PluginFrontend.scala:51) at protocbridge.frontend.PluginFrontend$.runWithInputStream(PluginFrontend.scala:121) at protocbridge.frontend.PosixPluginFrontend$.$anonfun$prepare$2(PosixPluginFrontend.scala:40) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) at scala.concurrent.impl.ExecutionContextImpl$DefaultThreadFactory$$anon$1$$anon$2.block(ExecutionContextImpl.scala:75) at java.base/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3118) at scala.concurrent.impl.ExecutionContextImpl$DefaultThreadFactory$$anon$1.blockOn(ExecutionContextImpl.scala:87) at scala.concurrent.package$.blocking(package.scala:146) at protocbridge.frontend.PosixPluginFrontend$.$anonfun$prepare$1(PosixPluginFrontend.scala:38) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:659) at scala.util.Success.$anonfun$map$1(Try.scala:255) at scala.util.Success.map(Try.scala:213) at scala.concurrent.Future.$anonfun$map$1(Future.scala:292) at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:42) at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:74) at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020) at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) java.lang.RuntimeException: Exit with code 1 at scala.sys.package$.error(package.scala:30) at scripts.ScalaPBWorker$.work(ScalaPBWorker.scala:44) at io.bazel.rulesscala.worker.Worker.persistentWorkerMain(Worker.java:96) at io.bazel.rulesscala.worker.Worker.workerMain(Worker.java:49) at scripts.ScalaPBWorker$.main(ScalaPBWorker.scala:39) at scripts.ScalaPBWorker.main(ScalaPBWorker.scala) ERROR: .../external/com_google_protobuf/src/google/protobuf/BUILD.bazel:23:14 Building source jar external/com_google_protobuf/src/google/protobuf/any_proto_scalapb-src.jar failed: (Exit 1): scalapb_worker failed: error executing ProtoScalaPBRule command (from target @@com_google_protobuf//src/google/protobuf:any_proto) bazel-out/darwin_arm64-opt-exec-ST-a828a81199fe/bin/src/scala/scripts/scalapb_worker ... (remaining 2 arguments skipped) ```
1 parent aa18181 commit cdfec73

File tree

46 files changed

+422
-428
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+422
-428
lines changed

.bazelrc

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ build:windows --worker_quit_after_build --enable_runfiles
66

77
# Remove upon completing Bzlmod compatibility work.
88
# - https://github.com/bazelbuild/rules_scala/issues/1482
9-
build --noenable_bzlmod
9+
build --noenable_bzlmod --enable_workspace

.bazelversion

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6.5.0
1+
8.0.0rc6

WORKSPACE

+16-21
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,28 @@
11
workspace(name = "io_bazel_rules_scala")
22

3-
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
3+
load("//scala:deps.bzl", "load_rules_dependencies")
44

5-
http_archive(
6-
name = "bazel_skylib",
7-
sha256 = "b8a1527901774180afc798aeb28c4634bdccf19c4d98e7bdd1ce79d1fe9aaad7",
8-
urls = [
9-
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.4.1/bazel-skylib-1.4.1.tar.gz",
10-
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.4.1/bazel-skylib-1.4.1.tar.gz",
11-
],
12-
)
5+
load_rules_dependencies()
6+
7+
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
138

149
load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
1510

1611
bazel_skylib_workspace()
1712

13+
load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies")
14+
15+
rules_java_dependencies()
16+
17+
load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
18+
19+
protobuf_deps()
20+
1821
http_archive(
1922
name = "rules_python",
20-
sha256 = "ca77768989a7f311186a29747e3e95c936a41dffac779aff6b443db22290d913",
21-
strip_prefix = "rules_python-0.36.0",
22-
url = "https://github.com/bazelbuild/rules_python/releases/download/0.36.0/rules_python-0.36.0.tar.gz",
23+
sha256 = "690e0141724abb568267e003c7b6d9a54925df40c275a870a4d934161dc9dd53",
24+
strip_prefix = "rules_python-0.40.0",
25+
url = "https://github.com/bazelbuild/rules_python/releases/download/0.40.0/rules_python-0.40.0.tar.gz",
2326
)
2427

2528
load("@rules_python//python:repositories.bzl", "py_repositories")
@@ -39,7 +42,7 @@ load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config")
3942

4043
scala_config(enable_compiler_dependency_tracking = True)
4144

42-
load("//scala:scala.bzl", "scala_toolchains")
45+
load("//scala:toolchains.bzl", "scala_toolchains")
4346

4447
scala_toolchains(
4548
fetch_sources = True,
@@ -64,14 +67,6 @@ load("@rules_proto//proto:setup.bzl", "rules_proto_setup")
6467

6568
rules_proto_setup()
6669

67-
load("@rules_proto//proto:toolchains.bzl", "rules_proto_toolchains")
68-
69-
rules_proto_toolchains()
70-
71-
load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
72-
73-
protobuf_deps()
74-
7570
# needed for the cross repo proto test
7671
local_repository(
7772
name = "proto_cross_repo_boundary",
+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6.5.0
1+
8.0.0rc6

dt_patches/test_dt_patches/WORKSPACE

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config")
3131

3232
scala_config(enable_compiler_dependency_tracking = True)
3333

34-
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_toolchains")
34+
load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_toolchains")
3535
load(
3636
"@io_bazel_rules_scala//scala:scala_cross_version.bzl",
3737
"default_maven_server_urls",
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6.5.0
1+
8.0.0rc6

dt_patches/test_dt_patches_user_srcjar/WORKSPACE

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config")
3131

3232
scala_config(enable_compiler_dependency_tracking = True)
3333

34-
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_toolchains")
34+
load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_toolchains")
3535
load(
3636
"@io_bazel_rules_scala//scala:scala_cross_version.bzl",
3737
"default_maven_server_urls",

examples/crossbuild/.bazelversion

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6.5.0
1+
8.0.0rc6

examples/crossbuild/WORKSPACE

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ scala_config(
3838
],
3939
)
4040

41-
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_toolchains")
41+
load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_toolchains")
4242

4343
scala_toolchains(scalatest = True)
4444

examples/scala3/.bazelversion

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6.5.0
1+
8.0.0rc6

examples/scala3/WORKSPACE

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config")
3131

3232
scala_config(scala_version = "3.5.2")
3333

34-
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_toolchains")
34+
load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_toolchains")
3535

3636
scala_toolchains(fetch_sources = True)
3737

examples/semanticdb/.bazelversion

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6.5.0
1+
8.0.0rc6

examples/semanticdb/WORKSPACE

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config")
3434

3535
scala_config(scala_version = "2.13.15")
3636

37-
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_toolchains")
37+
load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_toolchains")
3838

3939
scala_toolchains(fetch_sources = True)
4040

Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6.5.0
1+
8.0.0rc6

examples/testing/multi_frameworks_toolchain/WORKSPACE

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config")
3131

3232
scala_config()
3333

34-
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_toolchains")
34+
load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_toolchains")
3535

3636
scala_toolchains(
3737
fetch_sources = True,
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6.5.0
1+
8.0.0rc6

examples/testing/scalatest_repositories/WORKSPACE

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config")
3131

3232
scala_config()
3333

34-
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_toolchains")
34+
load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_toolchains")
3535

3636
scala_toolchains(
3737
fetch_sources = True,
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6.5.0
1+
8.0.0rc6

examples/testing/specs2_junit_repositories/WORKSPACE

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config")
3131

3232
scala_config()
3333

34-
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_toolchains")
34+
load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_toolchains")
3535

3636
scala_toolchains(
3737
fetch_sources = True,

jmh/jmh.bzl

-28
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,5 @@
11
load("//scala/private:rules/scala_binary.bzl", "scala_binary")
22
load("//scala/private:rules/scala_library.bzl", "scala_library")
3-
load(
4-
"//scala:scala_cross_version.bzl",
5-
"default_maven_server_urls",
6-
)
7-
load("//third_party/repositories:repositories.bzl", "repositories")
8-
load("@io_bazel_rules_scala_config//:config.bzl", "SCALA_VERSION")
9-
10-
def jmh_artifact_ids():
11-
return [
12-
"io_bazel_rules_scala_org_openjdk_jmh_jmh_core",
13-
"io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_asm",
14-
"io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_reflection",
15-
"io_bazel_rules_scala_org_ow2_asm_asm",
16-
"io_bazel_rules_scala_net_sf_jopt_simple_jopt_simple",
17-
"io_bazel_rules_scala_org_apache_commons_commons_math3",
18-
]
19-
20-
def jmh_repositories(
21-
maven_servers = default_maven_server_urls(),
22-
overriden_artifacts = {}):
23-
repositories(
24-
scala_version = SCALA_VERSION,
25-
for_artifact_ids = jmh_artifact_ids(),
26-
fetch_sources = False,
27-
maven_servers = maven_servers,
28-
overriden_artifacts = overriden_artifacts,
29-
)
30-
native.register_toolchains("@io_bazel_rules_scala_toolchains//jmh:all")
313

324
def _scala_generate_benchmark(ctx):
335
# we use required providers to ensure JavaInfo exists

jmh/toolchain/toolchain.bzl

+33-5
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,43 @@
11
load("//scala/private/toolchain_deps:toolchain_deps.bzl", "expose_toolchain_deps")
22
load("//scala:providers.bzl", "declare_deps_provider", _DepsInfo = "DepsInfo")
3-
load("//scala:scala_cross_version.bzl", "repositories")
3+
load(
4+
"//scala:scala_cross_version.bzl",
5+
"default_maven_server_urls",
6+
_versioned_repositories = "repositories",
7+
)
8+
load("//third_party/repositories:repositories.bzl", "repositories")
49
load("@io_bazel_rules_scala_config//:config.bzl", "SCALA_VERSION")
510

11+
612
DEP_PROVIDERS = [
713
"jmh_classpath",
814
"jmh_core",
915
"benchmark_generator",
1016
"benchmark_generator_runtime",
1117
]
1218

19+
def jmh_artifact_ids():
20+
return [
21+
"io_bazel_rules_scala_org_openjdk_jmh_jmh_core",
22+
"io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_asm",
23+
"io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_reflection",
24+
"io_bazel_rules_scala_org_ow2_asm_asm",
25+
"io_bazel_rules_scala_net_sf_jopt_simple_jopt_simple",
26+
"io_bazel_rules_scala_org_apache_commons_commons_math3",
27+
]
28+
29+
def jmh_repositories(
30+
maven_servers = default_maven_server_urls(),
31+
overriden_artifacts = {}):
32+
repositories(
33+
scala_version = SCALA_VERSION,
34+
for_artifact_ids = jmh_artifact_ids(),
35+
fetch_sources = False,
36+
maven_servers = maven_servers,
37+
overriden_artifacts = overriden_artifacts,
38+
)
39+
native.register_toolchains("@io_bazel_rules_scala_toolchains//jmh:all")
40+
1341
def _jmh_toolchain_impl(ctx):
1442
toolchain = platform_common.ToolchainInfo(
1543
dep_providers = ctx.attr.dep_providers,
@@ -60,7 +88,7 @@ def setup_jmh_toolchain(name):
6088
name = "jmh_core_provider",
6189
deps_id = "jmh_core",
6290
visibility = ["//visibility:public"],
63-
deps = repositories(SCALA_VERSION, [
91+
deps = _versioned_repositories(SCALA_VERSION, [
6492
"@io_bazel_rules_scala_org_openjdk_jmh_jmh_core",
6593
]),
6694
)
@@ -69,7 +97,7 @@ def setup_jmh_toolchain(name):
6997
name = "jmh_classpath_provider",
7098
deps_id = "jmh_classpath",
7199
visibility = ["//visibility:public"],
72-
deps = repositories(SCALA_VERSION, [
100+
deps = _versioned_repositories(SCALA_VERSION, [
73101
"@io_bazel_rules_scala_net_sf_jopt_simple_jopt_simple",
74102
"@io_bazel_rules_scala_org_apache_commons_commons_math3",
75103
]),
@@ -81,7 +109,7 @@ def setup_jmh_toolchain(name):
81109
visibility = ["//visibility:public"],
82110
deps = [
83111
"@io_bazel_rules_scala//src/java/io/bazel/rulesscala/jar",
84-
] + repositories(SCALA_VERSION, [
112+
] + _versioned_repositories(SCALA_VERSION, [
85113
"@io_bazel_rules_scala_org_openjdk_jmh_jmh_core",
86114
"@io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_asm",
87115
"@io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_reflection",
@@ -92,7 +120,7 @@ def setup_jmh_toolchain(name):
92120
name = "benchmark_generator_runtime_provider",
93121
deps_id = "benchmark_generator_runtime",
94122
visibility = ["//visibility:public"],
95-
deps = repositories(SCALA_VERSION, [
123+
deps = _versioned_repositories(SCALA_VERSION, [
96124
"@io_bazel_rules_scala_org_openjdk_jmh_jmh_generator_asm",
97125
]),
98126
)

scala/deps.bzl

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
2+
3+
def load_rules_dependencies():
4+
if not native.existing_rule("bazel_skylib"):
5+
http_archive(
6+
name = "bazel_skylib",
7+
sha256 = "bc283cdfcd526a52c3201279cda4bc298652efa898b10b4db0837dc51652756f",
8+
urls = [
9+
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz",
10+
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz",
11+
],
12+
)
13+
14+
if not native.existing_rule("rules_cc"):
15+
http_archive(
16+
name = "rules_cc",
17+
urls = ["https://github.com/bazelbuild/rules_cc/releases/download/0.1.0/rules_cc-0.1.0.tar.gz"],
18+
sha256 = "4b12149a041ddfb8306a8fd0e904e39d673552ce82e4296e96fac9cbf0780e59",
19+
strip_prefix = "rules_cc-0.1.0",
20+
)
21+
22+
if not native.existing_rule("com_google_absl"):
23+
http_archive(
24+
name = "com_google_absl",
25+
sha256 = "f50e5ac311a81382da7fa75b97310e4b9006474f9560ac46f54a9967f07d4ae3",
26+
strip_prefix = "abseil-cpp-20240722.0",
27+
url = "https://github.com/abseil/abseil-cpp/archive/refs/tags/20240722.0.tar.gz",
28+
)
29+
30+
if not native.existing_rule("rules_java"):
31+
http_archive(
32+
name = "rules_java",
33+
urls = [
34+
"https://github.com/bazelbuild/rules_java/releases/download/8.5.1/rules_java-8.5.1.tar.gz",
35+
],
36+
sha256 = "1389206b2208c5f33a05dd96e51715b0855c480c082b7bb4889a8e07fcff536c",
37+
)
38+
39+
if not native.existing_rule("com_google_protobuf"):
40+
http_archive(
41+
name = "com_google_protobuf",
42+
sha256 = "10a0d58f39a1a909e95e00e8ba0b5b1dc64d02997f741151953a2b3659f6e78c",
43+
strip_prefix = "protobuf-29.0",
44+
url = "https://github.com/protocolbuffers/protobuf/archive/refs/tags/v29.0.tar.gz",
45+
)
46+
47+
if not native.existing_rule("rules_proto"):
48+
http_archive(
49+
name = "rules_proto",
50+
sha256 = "0e5c64a2599a6e26c6a03d6162242d231ecc0de219534c38cb4402171def21e8",
51+
strip_prefix = "rules_proto-7.0.2",
52+
url = "https://github.com/bazelbuild/rules_proto/releases/download/7.0.2/rules_proto-7.0.2.tar.gz",
53+
)
54+

0 commit comments

Comments
 (0)