Skip to content

Commit 9b432df

Browse files
authored
Add googleapis and grpc-java (#1699)
These are in the same PR since they have a circular dependency on each other Fixes: #353 Fixes: #1113
1 parent 1ec7544 commit 9b432df

12 files changed

+2424
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
module(
2+
name = "googleapis",
3+
version = "0.0.0-20240326-1c8d509c5",
4+
repo_name = "com_google_googleapis",
5+
)
6+
7+
bazel_dep(name = "grpc", version = "1.56.3.bcr.1", repo_name = "com_github_grpc_grpc")
8+
bazel_dep(name = "grpc-java", version = "1.62.2", repo_name = "io_grpc_grpc_java")
9+
bazel_dep(name = "protobuf", version = "21.7", repo_name = "com_google_protobuf")
10+
bazel_dep(name = "rules_go", version = "0.46.0", repo_name = "io_bazel_rules_go")
11+
bazel_dep(name = "rules_proto", version = "5.3.0-21.7")
12+
bazel_dep(name = "rules_python", version = "0.31.0")
13+
14+
switched_rules = use_extension("//:extensions.bzl", "switched_rules")
15+
16+
# TODO: Enable support for other languages with bzlmod
17+
switched_rules.use_languages(
18+
cc = True,
19+
# csharp = True,
20+
# gapic = True,
21+
go = True,
22+
grpc = True,
23+
java = True,
24+
# nodejs = True,
25+
# php = True,
26+
python = True,
27+
# ruby = True,
28+
)
29+
use_repo(switched_rules, "com_google_googleapis_imports")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
diff --git a/MODULE.bazel b/MODULE.bazel
2+
new file mode 100644
3+
index 000000000..169133e43
4+
--- /dev/null
5+
+++ b/MODULE.bazel
6+
@@ -0,0 +1,29 @@
7+
+module(
8+
+ name = "googleapis",
9+
+ version = "0.0.0-20240326-1c8d509c5",
10+
+ repo_name = "com_google_googleapis",
11+
+)
12+
+
13+
+bazel_dep(name = "grpc", version = "1.56.3.bcr.1", repo_name = "com_github_grpc_grpc")
14+
+bazel_dep(name = "grpc-java", version = "1.62.2", repo_name = "io_grpc_grpc_java")
15+
+bazel_dep(name = "protobuf", version = "21.7", repo_name = "com_google_protobuf")
16+
+bazel_dep(name = "rules_go", version = "0.46.0", repo_name = "io_bazel_rules_go")
17+
+bazel_dep(name = "rules_proto", version = "5.3.0-21.7")
18+
+bazel_dep(name = "rules_python", version = "0.31.0")
19+
+
20+
+switched_rules = use_extension("//:extensions.bzl", "switched_rules")
21+
+
22+
+# TODO: Enable support for other languages with bzlmod
23+
+switched_rules.use_languages(
24+
+ cc = True,
25+
+ # csharp = True,
26+
+ # gapic = True,
27+
+ go = True,
28+
+ grpc = True,
29+
+ java = True,
30+
+ # nodejs = True,
31+
+ # php = True,
32+
+ python = True,
33+
+ # ruby = True,
34+
+)
35+
+use_repo(switched_rules, "com_google_googleapis_imports")
36+
diff --git a/extensions.bzl b/extensions.bzl
37+
new file mode 100644
38+
index 000000000..9aa161841
39+
--- /dev/null
40+
+++ b/extensions.bzl
41+
@@ -0,0 +1,59 @@
42+
+load(":repository_rules.bzl", "switched_rules_by_language")
43+
+
44+
+_use_languages_tag = tag_class(
45+
+ attrs = {
46+
+ "cc": attr.bool(default = False),
47+
+ "csharp": attr.bool(default = False),
48+
+ "gapic": attr.bool(default = False),
49+
+ "go": attr.bool(default = False),
50+
+ "go_test": attr.bool(default = False),
51+
+ "grpc": attr.bool(default = False),
52+
+ "java": attr.bool(default = False),
53+
+ "nodejs": attr.bool(default = False),
54+
+ "php": attr.bool(default = False),
55+
+ "python": attr.bool(default = False),
56+
+ "ruby": attr.bool(default = False),
57+
+ },
58+
+)
59+
+
60+
+def _switched_rules_impl(ctx):
61+
+ attrs = {}
62+
+ for module in ctx.modules:
63+
+ if not module.is_root:
64+
+ continue
65+
+
66+
+ is_tag_set = False
67+
+ set_tag_name = ""
68+
+
69+
+ for t in module.tags.use_languages:
70+
+ if is_tag_set:
71+
+ fail("Multiple use_language tags are set in the root module: '{}' and '{}'. Only one is allowed.".format(set_tag_name, module.name))
72+
+
73+
+ is_tag_set = True
74+
+ set_tag_name = module.name
75+
+
76+
+ attrs = {
77+
+ "cc": t.cc,
78+
+ "csharp": t.csharp,
79+
+ "gapic": t.gapic,
80+
+ "go": t.go,
81+
+ "go_test": t.go_test,
82+
+ "grpc": t.grpc,
83+
+ "java": t.java,
84+
+ "nodejs": t.nodejs,
85+
+ "php": t.php,
86+
+ "python": t.python,
87+
+ "ruby": t.ruby,
88+
+ }
89+
+
90+
+ switched_rules_by_language(
91+
+ name = "com_google_googleapis_imports",
92+
+ **attrs
93+
+ )
94+
+
95+
+switched_rules = module_extension(
96+
+ implementation = _switched_rules_impl,
97+
+ tag_classes = {
98+
+ "use_languages": _use_languages_tag,
99+
+ },
100+
+)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
matrix:
2+
platform: ["debian10", "macos", "ubuntu2004", "windows"]
3+
bazel: ["7.x"]
4+
tasks:
5+
verify_targets:
6+
platform: ${{ platform }}
7+
bazel: ${{ bazel }}
8+
build_targets:
9+
- '@googleapis//google/devtools/source/v1:source_proto'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"integrity": "sha256-uFSuF925M8JJUw90PbjXjfgJBd+0JoElVWSh0ZId/Dw=",
3+
"strip_prefix": "googleapis-1c8d509c574aeab7478be1bfd4f2e8f0931cfead",
4+
"url": "https://github.com/googleapis/googleapis/archive/1c8d509c574aeab7478be1bfd4f2e8f0931cfead.tar.gz",
5+
"patch_strip": 1,
6+
"patches": {
7+
"add_module_bazel.patch": "sha256-fyl8LjxecJdTeeCNtpG4rfZMDiSOPTUi7HvJGDWvP1o="
8+
}
9+
}

modules/googleapis/metadata.json

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"homepage": "https://github.com/googleapis/googleapis",
3+
"maintainers": [
4+
{
5+
"email": "[email protected]",
6+
"name": "No Maintainer Specified"
7+
}
8+
],
9+
"repository": [
10+
"github:googleapis/googleapis"
11+
],
12+
"versions": [
13+
"0.0.0-20240326-1c8d509c5"
14+
],
15+
"yanked_versions": {}
16+
}

modules/grpc-java/1.62.2/MODULE.bazel

+197
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
module(
2+
name = "grpc-java",
3+
version = "1.62.2",
4+
compatibility_level = 0,
5+
repo_name = "io_grpc_grpc_java",
6+
)
7+
8+
bazel_dep(name = "googleapis", version = "0.0.0-20240326-1c8d509c5", repo_name = "com_google_googleapis")
9+
bazel_dep(name = "grpc", version = "1.56.3.bcr.1", repo_name = "com_github_grpc_grpc")
10+
bazel_dep(name = "protobuf", version = "23.1", repo_name = "com_google_protobuf")
11+
bazel_dep(name = "rules_cc", version = "0.0.9")
12+
bazel_dep(name = "rules_go", version = "0.46.0", repo_name = "io_bazel_rules_go")
13+
bazel_dep(name = "rules_jvm_external", version = "6.0")
14+
bazel_dep(name = "rules_proto", version = "5.3.0-21.7")
15+
16+
non_module_deps = use_extension("//:repositories.bzl", "grpc_java_repositories_extension")
17+
use_repo(
18+
non_module_deps,
19+
"com_github_cncf_xds",
20+
"envoy_api",
21+
"io_grpc_grpc_proto",
22+
)
23+
24+
grpc_repo_deps_ext = use_extension("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_repo_deps_ext")
25+
use_repo(
26+
grpc_repo_deps_ext,
27+
"com_envoyproxy_protoc_gen_validate",
28+
"com_github_cncf_udpa",
29+
"opencensus_proto",
30+
)
31+
32+
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
33+
maven.install(
34+
name = "grpc_java_maven",
35+
artifacts = [
36+
"com.google.android:annotations:4.1.1.4",
37+
"com.google.api.grpc:proto-google-common-protos:2.29.0",
38+
"com.google.auth:google-auth-library-credentials:1.4.0",
39+
"com.google.auth:google-auth-library-oauth2-http:1.4.0",
40+
"com.google.auto.value:auto-value-annotations:1.10.4",
41+
"com.google.auto.value:auto-value:1.10.4",
42+
"com.google.code.findbugs:jsr305:3.0.2",
43+
"com.google.code.gson:gson:2.10.1",
44+
"com.google.errorprone:error_prone_annotations:2.23.0",
45+
"com.google.guava:failureaccess:1.0.1",
46+
"com.google.guava:guava:32.1.3-android",
47+
"com.google.re2j:re2j:1.7",
48+
"com.google.truth:truth:1.1.5",
49+
"com.squareup.okhttp:okhttp:2.7.5",
50+
"com.squareup.okio:okio:2.10.0", # 3.0+ needs swapping to -jvm; need work to avoid flag-day
51+
"io.netty:netty-buffer:4.1.100.Final",
52+
"io.netty:netty-codec-http2:4.1.100.Final",
53+
"io.netty:netty-codec-http:4.1.100.Final",
54+
"io.netty:netty-codec-socks:4.1.100.Final",
55+
"io.netty:netty-codec:4.1.100.Final",
56+
"io.netty:netty-common:4.1.100.Final",
57+
"io.netty:netty-handler-proxy:4.1.100.Final",
58+
"io.netty:netty-handler:4.1.100.Final",
59+
"io.netty:netty-resolver:4.1.100.Final",
60+
"io.netty:netty-tcnative-boringssl-static:2.0.61.Final",
61+
"io.netty:netty-tcnative-classes:2.0.61.Final",
62+
"io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.100.Final",
63+
"io.netty:netty-transport-native-unix-common:4.1.100.Final",
64+
"io.netty:netty-transport:4.1.100.Final",
65+
"io.opencensus:opencensus-api:0.31.0",
66+
"io.opencensus:opencensus-contrib-grpc-metrics:0.31.0",
67+
"io.perfmark:perfmark-api:0.26.0",
68+
"junit:junit:4.13.2",
69+
"org.apache.tomcat:annotations-api:6.0.53",
70+
"org.codehaus.mojo:animal-sniffer-annotations:1.23",
71+
],
72+
lock_file = "//:maven_install.json",
73+
repositories = [
74+
"https://repo1.maven.org/maven2",
75+
"https://maven.google.com",
76+
],
77+
)
78+
use_repo(maven, "grpc_java_maven", "unpinned_grpc_java_maven")
79+
maven.override(
80+
name = "grpc_java_maven",
81+
coordinates = "com.google.protobuf:protobuf-java",
82+
target = "@com_google_protobuf//:protobuf_java",
83+
)
84+
maven.override(
85+
name = "grpc_java_maven",
86+
coordinates = "com.google.protobuf:protobuf-java-util",
87+
target = "@com_google_protobuf//:protobuf_java_util",
88+
)
89+
maven.override(
90+
name = "grpc_java_maven",
91+
coordinates = "com.google.protobuf:protobuf-javalite",
92+
target = "@com_google_protobuf_javalite//:protobuf_javalite",
93+
)
94+
maven.override(
95+
name = "grpc_java_maven",
96+
coordinates = "io.grpc:grpc-alts",
97+
target = "@io_grpc_grpc_java//alts",
98+
)
99+
maven.override(
100+
name = "grpc_java_maven",
101+
coordinates = "io.grpc:grpc-api",
102+
target = "@io_grpc_grpc_java//api",
103+
)
104+
maven.override(
105+
name = "grpc_java_maven",
106+
coordinates = "io.grpc:grpc-auth",
107+
target = "@io_grpc_grpc_java//auth",
108+
)
109+
maven.override(
110+
name = "grpc_java_maven",
111+
coordinates = "io.grpc:grpc-census",
112+
target = "@io_grpc_grpc_java//census",
113+
)
114+
maven.override(
115+
name = "grpc_java_maven",
116+
coordinates = "io.grpc:grpc-context",
117+
target = "@io_grpc_grpc_java//context",
118+
)
119+
maven.override(
120+
name = "grpc_java_maven",
121+
coordinates = "io.grpc:grpc-core",
122+
target = "@io_grpc_grpc_java//core:core_maven",
123+
)
124+
maven.override(
125+
name = "grpc_java_maven",
126+
coordinates = "io.grpc:grpc-googleapis",
127+
target = "@io_grpc_grpc_java//googleapis",
128+
)
129+
maven.override(
130+
name = "grpc_java_maven",
131+
coordinates = "io.grpc:grpc-grpclb",
132+
target = "@io_grpc_grpc_java//grpclb",
133+
)
134+
maven.override(
135+
name = "grpc_java_maven",
136+
coordinates = "io.grpc:grpc-inprocess",
137+
target = "@io_grpc_grpc_java//inprocess",
138+
)
139+
maven.override(
140+
name = "grpc_java_maven",
141+
coordinates = "io.grpc:grpc-netty",
142+
target = "@io_grpc_grpc_java//netty",
143+
)
144+
maven.override(
145+
name = "grpc_java_maven",
146+
coordinates = "io.grpc:grpc-netty-shaded",
147+
target = "@io_grpc_grpc_java//netty:shaded_maven",
148+
)
149+
maven.override(
150+
name = "grpc_java_maven",
151+
coordinates = "io.grpc:grpc-okhttp",
152+
target = "@io_grpc_grpc_java//okhttp",
153+
)
154+
maven.override(
155+
name = "grpc_java_maven",
156+
coordinates = "io.grpc:grpc-protobuf",
157+
target = "@io_grpc_grpc_java//protobuf",
158+
)
159+
maven.override(
160+
name = "grpc_java_maven",
161+
coordinates = "io.grpc:grpc-protobuf-lite",
162+
target = "@io_grpc_grpc_java//protobuf-lite",
163+
)
164+
maven.override(
165+
name = "grpc_java_maven",
166+
coordinates = "io.grpc:grpc-rls",
167+
target = "@io_grpc_grpc_java//rls",
168+
)
169+
maven.override(
170+
name = "grpc_java_maven",
171+
coordinates = "io.grpc:grpc-services",
172+
target = "@io_grpc_grpc_java//services:services_maven",
173+
)
174+
maven.override(
175+
name = "grpc_java_maven",
176+
coordinates = "io.grpc:grpc-stub",
177+
target = "@io_grpc_grpc_java//stub",
178+
)
179+
maven.override(
180+
name = "grpc_java_maven",
181+
coordinates = "io.grpc:grpc-testing",
182+
target = "@io_grpc_grpc_java//testing",
183+
)
184+
maven.override(
185+
name = "grpc_java_maven",
186+
coordinates = "io.grpc:grpc-xds",
187+
target = "@io_grpc_grpc_java//xds:xds_maven",
188+
)
189+
maven.override(
190+
name = "grpc_java_maven",
191+
coordinates = "io.grpc:grpc-util",
192+
target = "@io_grpc_grpc_java//util",
193+
)
194+
195+
switched_rules = use_extension("@com_google_googleapis//:extensions.bzl", "switched_rules")
196+
switched_rules.use_languages(java = True)
197+
use_repo(switched_rules, "com_google_googleapis_imports")

0 commit comments

Comments
 (0)