Skip to content

Commit bcf43ea

Browse files
committed
Update Bazel dependencies and load rules for Bazel 9 compatibility
1 parent 7726bec commit bcf43ea

File tree

16 files changed

+1567
-681
lines changed

16 files changed

+1567
-681
lines changed

.bazelci/presubmit.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
matrix:
44
bazel: [
5-
7.4.1,
6-
8.2.1,
5+
7.7.1,
6+
8.4.2,
77
last_green,
88
]
99
platform: [
10-
ubuntu2004,
10+
ubuntu2404,
1111
macos,
1212
macos_arm64,
1313
# windows # TODO: Windows unit tests don't work yet.

.bazelrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ common --tool_java_runtime_version=17
66
# Workaround for a rules_java + bazel < 8.3.0 issue. It should only be relevant
77
# for bazel@HEAD and rolling releases.
88
# https://github.com/bazelbuild/bazel/pull/26119
9-
common --repositories_without_autoloads=bazel_features_version,bazel_features_globals
9+
common --repositories_without_autoloads=bazel_features_version,bazel_features_globals,cc_compatibility_proxy
1010

1111
# Newer versions of protobuf require downstream transitive projects to set C++ language version flags.
1212
common:linux --cxxopt=-std=c++17

.bazelversion

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7.4.0
1+
9.0.0rc3

.bcr/presubmit.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
bcr_test_module:
22
module_path: examples/basicapp
33
matrix:
4-
platform: ["ubuntu2004", "macos", "windows"]
5-
bazel: ["7.4.1", "8.0.0", "rolling"]
4+
platform: ["ubuntu2404", "macos", "windows"]
5+
bazel: ["7.7.1", "8.4.2", "rolling"]
66
tasks:
77
run_test_module:
88
name: "Verify build targets with bzlmod"

MODULE.bazel

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,32 @@ module(
44
compatibility_level = 1,
55
)
66

7-
bazel_dep(name = "platforms", version = "0.0.5")
7+
bazel_dep(name = "platforms", version = "1.0.0")
88
bazel_dep(name = "rules_license", version = "1.0.0")
9-
bazel_dep(name = "rules_java", version = "8.13.0")
10-
bazel_dep(name = "rules_cc", version = "0.1.1")
11-
bazel_dep(name = "rules_shell", version = "0.1.2")
9+
bazel_dep(name = "rules_java", version = "9.3.0")
10+
bazel_dep(name = "rules_cc", version = "0.2.14")
11+
bazel_dep(name = "rules_shell", version = "0.6.1")
1212

13-
bazel_dep(name = "stardoc", version = "0.7.2", dev_dependency = True)
13+
bazel_dep(name = "stardoc", version = "0.8.0", dev_dependency = True)
1414

1515
rules_java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains")
1616
use_repo(rules_java_toolchains, "remote_java_tools")
1717

18-
bazel_dep(name = "protobuf", version = "31.1", repo_name = "com_google_protobuf")
19-
bazel_dep(name = "rules_jvm_external", version = "6.6")
20-
bazel_dep(name = "bazel_skylib", version = "1.0.3")
18+
bazel_dep(name = "protobuf", version = "33.1", repo_name = "com_google_protobuf")
19+
bazel_dep(name = "rules_jvm_external", version = "6.9")
20+
bazel_dep(name = "bazel_skylib", version = "1.8.1")
2121
bazel_dep(name = "rules_robolectric", version = "4.14.1.2", repo_name = "robolectric")
2222

2323
register_toolchains("//toolchains/android:all")
2424

2525
register_toolchains("//toolchains/android_sdk:all")
2626

2727
# go-related dependency setup
28-
bazel_dep(name = "rules_go", version = "0.51.0-rc2", repo_name = "io_bazel_rules_go")
29-
bazel_dep(name = "gazelle", version = "0.40.0", repo_name = "bazel_gazelle")
28+
bazel_dep(name = "rules_go", version = "0.59.0", repo_name = "io_bazel_rules_go")
29+
bazel_dep(name = "gazelle", version = "0.47.0", repo_name = "bazel_gazelle")
3030
bazel_dep(name = "abseil-py", version = "2.1.0", repo_name = "py_absl")
31-
bazel_dep(name = "bazel_worker_api", version = "0.0.4")
32-
bazel_dep(name = "bazel_worker_java", version = "0.0.4")
31+
bazel_dep(name = "bazel_worker_api", version = "0.0.8")
32+
bazel_dep(name = "bazel_worker_java", version = "0.0.8")
3333

3434
go_sdk = use_extension("@io_bazel_rules_go//go:extensions.bzl", "go_sdk")
3535
go_sdk.download(version = "1.22.4")
@@ -46,7 +46,7 @@ use_repo(
4646
)
4747

4848
# python-related dependency setup
49-
bazel_dep(name = "rules_python", version = "0.37.1", repo_name = "rules_python")
49+
bazel_dep(name = "rules_python", version = "1.6.0", repo_name = "rules_python")
5050

5151
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
5252
python.toolchain(
@@ -55,10 +55,9 @@ python.toolchain(
5555
)
5656

5757
# proto-related dependency setup
58-
bazel_dep(name = "rules_proto", version = "6.0.2", repo_name = "rules_proto")
58+
bazel_dep(name = "rules_proto", version = "7.1.0", repo_name = "rules_proto")
5959

6060
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
61-
6261
# Maven for android_ide_common need to be separated into their own separate maven_install for now
6362
# due to compatibility issues with newer versions.
6463
maven.install(
@@ -79,8 +78,8 @@ maven.install(
7978
# These technically aren't needed, but the protobuf version pulled
8079
# in by these older deps has compatibility issues with the newer
8180
# protobuf runtimes.
82-
"com.google.protobuf:protobuf-java:4.31.1",
83-
"com.google.protobuf:protobuf-java-util:4.31.1",
81+
"com.google.protobuf:protobuf-java:4.33.1",
82+
"com.google.protobuf:protobuf-java-util:4.33.1",
8483
],
8584
repositories = [
8685
"https://maven.google.com",
@@ -89,6 +88,7 @@ maven.install(
8988
use_starlark_android_rules = True,
9089
)
9190
use_repo(maven, "android_ide_common_30_1_3")
91+
9292
maven.install(
9393
name = "rules_android_maven",
9494
aar_import_bzl_label = "@rules_android//rules:rules.bzl",
@@ -117,8 +117,8 @@ maven.install(
117117
"jakarta.inject:jakarta.inject-api:2.0.1",
118118
"junit:junit:4.13.2",
119119
"com.beust:jcommander:1.82",
120-
"com.google.protobuf:protobuf-java:4.31.1",
121-
"com.google.protobuf:protobuf-java-util:4.31.1",
120+
"com.google.protobuf:protobuf-java:4.33.1",
121+
"com.google.protobuf:protobuf-java-util:4.33.1",
122122
"com.google.code.findbugs:jsr305:3.0.2",
123123
"androidx.databinding:databinding-compiler:8.7.0",
124124
"org.ow2.asm:asm:9.6",
@@ -157,10 +157,9 @@ maven.install(
157157
],
158158
# To generate, run:
159159
# REPIN=1 bazelisk run --enable_bzlmod @rules_android_maven//:pin
160-
# lock_file = "//:rules_android_maven_install.json",
160+
lock_file = "//:rules_android_maven_install.json",
161161
use_starlark_android_rules = True,
162162
)
163-
164163
use_repo(
165164
maven,
166165
"rules_android_maven",
@@ -177,7 +176,7 @@ bazel_dep(
177176
)
178177
bazel_dep(
179178
name = "cgrindel_bazel_starlib",
180-
version = "0.17.0",
179+
version = "0.18.0",
181180
dev_dependency = True,
182181
)
183182

@@ -187,7 +186,7 @@ bazel_binaries = use_extension(
187186
dev_dependency = True,
188187
)
189188
bazel_binaries.download(version = "last_green")
190-
use_repo(bazel_binaries, "bazel_binaries")
189+
use_repo(bazel_binaries, "bazel_binaries", "bazel_binaries_bazelisk", "build_bazel_bazel_last_green")
191190

192191
# extension for apksignerextensions
193192
apksig_extension = use_extension("//bzlmod_extensions:apksig.bzl", "apksig_extension")

WORKSPACE

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@ load("prereqs.bzl", "rules_android_prereqs")
66

77
rules_android_prereqs(dev_mode = True)
88

9-
load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies")
10-
rules_java_dependencies()
11-
129
load("@bazel_features//:deps.bzl", "bazel_features_deps")
1310
bazel_features_deps()
1411

12+
load("@rules_cc//cc:extensions.bzl", "compatibility_proxy_repo")
13+
compatibility_proxy_repo()
14+
15+
load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies")
16+
rules_java_dependencies()
17+
1518
# note that the following line is what is minimally required from protobuf for the java rules
1619
# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl
1720
load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility

defs.bzl

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ def rules_android_workspace():
5757
# These technically aren't needed, but the protobuf version pulled
5858
# in by these older deps has compatibility issues with the newer
5959
# protobuf runtimes.
60-
"com.google.protobuf:protobuf-java:4.31.1",
61-
"com.google.protobuf:protobuf-java-util:4.31.1",
60+
"com.google.protobuf:protobuf-java:4.33.1",
61+
"com.google.protobuf:protobuf-java-util:4.33.1",
6262
],
6363
repositories = [
6464
"https://maven.google.com",
@@ -94,8 +94,8 @@ def rules_android_workspace():
9494
"jakarta.inject:jakarta.inject-api:2.0.1",
9595
"junit:junit:4.13.2",
9696
"com.beust:jcommander:1.82",
97-
"com.google.protobuf:protobuf-java:4.31.1",
98-
"com.google.protobuf:protobuf-java-util:4.31.1",
97+
"com.google.protobuf:protobuf-java:4.33.1",
98+
"com.google.protobuf:protobuf-java-util:4.33.1",
9999
"com.google.code.findbugs:jsr305:3.0.2",
100100
"androidx.databinding:databinding-compiler:8.7.0",
101101
"org.ow2.asm:asm:9.6",
@@ -141,16 +141,17 @@ def rules_android_workspace():
141141
)
142142

143143
maven_install(
144-
# Specifically named since the worker API lib needs `@maven` to exist.
144+
# Specifically named since the worker API lib needs `@bazel_worker_maven` to exist
145+
# in WORKSPACE mode.
145146
# All lines in the artifacts list must be tagged "bazel worker api" for
146147
# the presubmit maven artifact consistency checker to pass.
147-
name = "maven",
148+
name = "bazel_worker_maven",
148149
artifacts = [ # bazel worker api
149150
"com.google.code.gson:gson:2.10.1", # bazel worker api
150151
"com.google.errorprone:error_prone_annotations:2.23.0", # bazel worker api
151152
"com.google.guava:guava:33.0.0-jre", # bazel worker api
152-
"com.google.protobuf:protobuf-java:4.27.2", # bazel worker api
153-
"com.google.protobuf:protobuf-java-util:4.27.2", # bazel worker api
153+
"com.google.protobuf:protobuf-java:4.33.1", # bazel worker api
154+
"com.google.protobuf:protobuf-java-util:4.33.1", # bazel worker api
154155
"junit:junit:4.13.2", # bazel worker api
155156
"org.mockito:mockito-core:5.4.0", # bazel worker api
156157
"com.google.truth:truth:1.4.0", # bazel worker api
@@ -170,12 +171,8 @@ def rules_android_workspace():
170171
gazelle_dependencies()
171172
# gazelle:repository go_repository name=org_golang_x_xerrors importpath=golang.org/x/xerrors
172173

173-
go_repository(
174-
name = "org_golang_google_protobuf",
175-
importpath = "google.golang.org/protobuf",
176-
sum = "h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=",
177-
version = "v1.31.0",
178-
)
174+
# Note: org_golang_google_protobuf is now set up by go_rules_dependencies()
175+
# with proper patches for newer protobuf versions.
179176

180177
go_repository(
181178
name = "com_github_google_go_cmp",

examples/basicapp/.bazelrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ common --tool_java_runtime_version=17
1313
# Workaround for a rules_java + bazel < 8.3.0 issue. It should only be relevant
1414
# for bazel@HEAD and rolling releases.
1515
# https://github.com/bazelbuild/bazel/pull/26119
16-
common --repositories_without_autoloads=bazel_features_version,bazel_features_globals
16+
common --repositories_without_autoloads=bazel_features_version,bazel_features_globals,cc_compatibility_proxy
1717

1818
# Newer versions of protobuf require downstream transitive projects to set C++ language version flags.
1919
common:linux --cxxopt=-std=c++17

examples/basicapp/MODULE.bazel

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ module(
22
name = "basicapp",
33
)
44

5-
bazel_dep(name = "rules_java", version = "8.12.0")
6-
bazel_dep(name = "bazel_skylib", version = "1.3.0")
5+
bazel_dep(name = "rules_java", version = "9.0.3")
6+
bazel_dep(name = "bazel_skylib", version = "1.8.1")
7+
bazel_dep(name = "rules_jvm_external", version = "6.7")
78

89
bazel_dep(
910
name = "rules_android",

examples/basicapp/WORKSPACE

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,16 @@ local_repository(
99
load("@rules_android//:prereqs.bzl", "rules_android_prereqs")
1010
rules_android_prereqs()
1111

12+
load("@bazel_features//:deps.bzl", "bazel_features_deps")
13+
bazel_features_deps()
14+
15+
load("@rules_cc//cc:extensions.bzl", "compatibility_proxy_repo")
16+
compatibility_proxy_repo()
17+
1218
##### rules_java setup for rules_android #####
1319
load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies")
1420
rules_java_dependencies()
1521

16-
load("@bazel_features//:deps.bzl", "bazel_features_deps")
17-
bazel_features_deps()
18-
1922
# note that the following line is what is minimally required from protobuf for the java rules
2023
# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl
2124
load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility

0 commit comments

Comments
 (0)