Skip to content

Commit f740a65

Browse files
authored
Add Protobuf v23.1 (#1241)
1 parent 6f28744 commit f740a65

18 files changed

+828
-2
lines changed

modules/protobuf/23.1/MODULE.bazel

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
module(
2+
name = "protobuf",
3+
compatibility_level = 1,
4+
version = "23.1",
5+
)
6+
7+
bazel_dep(name = "bazel_skylib", version = "1.0.3")
8+
bazel_dep(name = "rules_python", version = "0.10.2")
9+
bazel_dep(name = "rules_cc", version = "0.0.1")
10+
bazel_dep(name = "rules_proto", version = "4.0.0")
11+
bazel_dep(name = "rules_java", version = "4.0.0")
12+
bazel_dep(name = "rules_pkg", version = "0.7.0")
13+
bazel_dep(name = "platforms", version = "0.0.8")
14+
bazel_dep(name = "abseil-cpp", repo_name = "com_google_absl", version = "20230802.0.bcr.1")
15+
bazel_dep(name = "zlib", version = "1.2.11")
16+
bazel_dep(name = "upb", version = "0.0.0-20230516-61a97ef")
17+
18+
# Do not take the effort to convert utf8_range to Bzlmod as this has been moved to protobuf/third_party
19+
# See https://github.com/protocolbuffers/utf8_range/commit/1d1ea7e3fedf482d4a12b473c1ed25fe0f371a45
20+
non_module_deps = use_extension("//:non_module_deps.bzl", "non_module_deps")
21+
use_repo(non_module_deps, "utf8_range")
22+
23+
# TODO: Add missing rules_kotlin
24+
25+
# Maven dependencies
26+
bazel_dep(name = "rules_jvm_external", version = "4.4.2")
27+
28+
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
29+
30+
maven.install(
31+
name = "maven",
32+
artifacts = [
33+
"com.google.code.findbugs:jsr305:3.0.2",
34+
"com.google.code.gson:gson:2.8.9",
35+
"com.google.errorprone:error_prone_annotations:2.3.2",
36+
"com.google.j2objc:j2objc-annotations:1.3",
37+
"com.google.guava:guava:31.1-jre",
38+
"com.google.guava:guava-testlib:31.1-jre",
39+
"com.google.truth:truth:1.1.2",
40+
"junit:junit:4.13.2",
41+
"org.mockito:mockito-core:4.3.1",
42+
],
43+
)
44+
45+
use_repo(maven, "maven")
46+
47+
# Dependencies needed in tests
48+
bazel_dep(name = "googletest", repo_name = "com_google_googletest", version = "1.11.0")
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
From f277c65e9984a9fe234e8a3bf428a5ec5b6ce33c Mon Sep 17 00:00:00 2001
2+
From: Ivo List <[email protected]>
3+
Date: Fri, 29 Dec 2023 14:30:31 +0000
4+
Subject: [PATCH 1/7] Add MODULE.bazel
5+
6+
---
7+
MODULE.bazel | 43 +++++++++++++++++++++++++++++++++++++++++++
8+
1 file changed, 43 insertions(+)
9+
create mode 100644 MODULE.bazel
10+
11+
diff --git a/MODULE.bazel b/MODULE.bazel
12+
new file mode 100644
13+
index 000000000..bc361e606
14+
--- /dev/null
15+
+++ b/MODULE.bazel
16+
@@ -0,0 +1,43 @@
17+
+module(
18+
+ name = "protobuf",
19+
+ compatibility_level = 1,
20+
+ version = "23.1",
21+
+)
22+
+
23+
+bazel_dep(name = "bazel_skylib", version = "1.0.3")
24+
+bazel_dep(name = "rules_python", version = "0.10.2")
25+
+bazel_dep(name = "rules_cc", version = "0.0.1")
26+
+bazel_dep(name = "rules_proto", version = "4.0.0")
27+
+bazel_dep(name = "rules_java", version = "4.0.0")
28+
+bazel_dep(name = "rules_pkg", version = "0.7.0")
29+
+bazel_dep(name = "platforms", version = "0.0.8")
30+
+bazel_dep(name = "abseil-cpp", repo_name = "com_google_absl", version = "20230802.0.bcr.1")
31+
+bazel_dep(name = "zlib", version = "1.2.11")
32+
+bazel_dep(name = "upb", version = "0.0.0-20230516-61a97ef")
33+
+
34+
+# TODO: Add missing rules_kotlin
35+
+
36+
+# Maven dependencies
37+
+bazel_dep(name = "rules_jvm_external", version = "4.4.2")
38+
+
39+
+maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
40+
+
41+
+maven.install(
42+
+ name = "maven",
43+
+ artifacts = [
44+
+ "com.google.code.findbugs:jsr305:3.0.2",
45+
+ "com.google.code.gson:gson:2.8.9",
46+
+ "com.google.errorprone:error_prone_annotations:2.3.2",
47+
+ "com.google.j2objc:j2objc-annotations:1.3",
48+
+ "com.google.guava:guava:31.1-jre",
49+
+ "com.google.guava:guava-testlib:31.1-jre",
50+
+ "com.google.truth:truth:1.1.2",
51+
+ "junit:junit:4.13.2",
52+
+ "org.mockito:mockito-core:4.3.1",
53+
+ ],
54+
+)
55+
+
56+
+use_repo(maven, "maven")
57+
+
58+
+# Dependencies needed in tests
59+
+bazel_dep(name = "googletest", repo_name = "com_google_googletest", version = "1.11.0")
60+
--
61+
2.42.1
62+
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
--- a/MODULE.bazel
2+
+++ b/MODULE.bazel
3+
@@ -15,6 +15,11 @@ bazel_dep(name = "abseil-cpp", repo_name = "com_google_absl", version = "2023080
4+
bazel_dep(name = "zlib", version = "1.2.11")
5+
bazel_dep(name = "upb", version = "0.0.0-20230516-61a97ef")
6+
7+
+# Do not take the effort to convert utf8_range to Bzlmod as this has been moved to protobuf/third_party
8+
+# See https://github.com/protocolbuffers/utf8_range/commit/1d1ea7e3fedf482d4a12b473c1ed25fe0f371a45
9+
+non_module_deps = use_extension("//:non_module_deps.bzl", "non_module_deps")
10+
+use_repo(non_module_deps, "utf8_range")
11+
+
12+
# TODO: Add missing rules_kotlin
13+
14+
# Maven dependencies
15+
diff --git a/non_module_deps.bzl b/non_module_deps.bzl
16+
new file mode 100644
17+
index 000000000..5cc13d7f7
18+
--- /dev/null
19+
+++ b/non_module_deps.bzl
20+
@@ -0,0 +1,19 @@
21+
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
22+
+
23+
+def _github_archive(repo, commit, **kwargs):
24+
+ repo_name = repo.split("/")[-1]
25+
+ http_archive(
26+
+ urls = [repo + "/archive/" + commit + ".zip"],
27+
+ strip_prefix = repo_name + "-" + commit,
28+
+ **kwargs
29+
+ )
30+
+
31+
+def _non_module_deps_impl(ctx):
32+
+ _github_archive(
33+
+ name = "utf8_range",
34+
+ repo = "https://github.com/protocolbuffers/utf8_range",
35+
+ commit = "de0b4a8ff9b5d4c98108bdfe723291a33c52c54f",
36+
+ sha256 = "5da960e5e5d92394c809629a03af3c7709d2d3d0ca731dacb3a9fb4bf28f7702",
37+
+ )
38+
+
39+
+non_module_deps = module_extension(implementation = _non_module_deps_impl)
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
From 5f1b71dd4fac28f1a1006934f9f91276d52afa29 Mon Sep 17 00:00:00 2001
2+
From: Ivo List <[email protected]>
3+
Date: Fri, 29 Dec 2023 14:30:57 +0000
4+
Subject: [PATCH 3/7] Examples MODULE.bazel
5+
6+
---
7+
examples/MODULE.bazel | 10 ++++++++++
8+
1 file changed, 10 insertions(+)
9+
create mode 100644 examples/MODULE.bazel
10+
11+
diff --git a/examples/MODULE.bazel b/examples/MODULE.bazel
12+
new file mode 100644
13+
index 000000000..7e7f44fb4
14+
--- /dev/null
15+
+++ b/examples/MODULE.bazel
16+
@@ -0,0 +1,10 @@
17+
+bazel_dep(name = "rules_cc", version = "0.0.1")
18+
+bazel_dep(name = "rules_proto", version = "4.0.0")
19+
+bazel_dep(name = "rules_java", version = "4.0.0")
20+
+bazel_dep(name = "rules_pkg", version = "0.7.0")
21+
+bazel_dep(name = "protobuf", repo_name = "com_google_protobuf")
22+
+
23+
+local_path_override(
24+
+ module_name = "protobuf",
25+
+ path = "..",
26+
+)
27+
--
28+
2.42.1
29+
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
From 51c98cb671084be03431d248dd54eaa2de066c09 Mon Sep 17 00:00:00 2001
2+
From: Ivo List <[email protected]>
3+
Date: Fri, 29 Dec 2023 14:47:06 +0000
4+
Subject: [PATCH 4/7] Relative labels
5+
6+
---
7+
protobuf.bzl | 4 ++--
8+
protobuf_deps.bzl | 2 +-
9+
2 files changed, 3 insertions(+), 3 deletions(-)
10+
11+
diff --git a/protobuf.bzl b/protobuf.bzl
12+
index d96eeb4c9..e7b7a14eb 100644
13+
--- a/protobuf.bzl
14+
+++ b/protobuf.bzl
15+
@@ -493,8 +493,8 @@ def internal_ruby_proto_library(
16+
srcs = [],
17+
deps = [],
18+
includes = ["."],
19+
- default_runtime = "@com_google_protobuf//ruby:protobuf",
20+
- protoc = "@com_google_protobuf//:protoc",
21+
+ default_runtime = Label("//ruby:protobuf"),
22+
+ protoc = Label("//:protoc"),
23+
testonly = None,
24+
visibility = ["//visibility:public"],
25+
**kwargs):
26+
diff --git a/protobuf_deps.bzl b/protobuf_deps.bzl
27+
index 37da217ee..7d825b4c7 100644
28+
--- a/protobuf_deps.bzl
29+
+++ b/protobuf_deps.bzl
30+
@@ -153,5 +153,5 @@ def protobuf_deps():
31+
repo = "https://github.com/protocolbuffers/upb",
32+
commit = "61a97efa24a5ce01fb8cc73c9d1e6e7060f8ea98",
33+
sha256 = "0c57aac04d62eeabe097513593c800a99aa3f5d8ac1e7871c7afadbe1d39851a",
34+
- patches = ["@com_google_protobuf//build_defs:upb.patch"],
35+
+ patches = ["//build_defs:upb.patch"],
36+
)
37+
--
38+
2.42.1
39+
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
--- a/python/BUILD.bazel
2+
+++ b/python/BUILD.bazel
3+
@@ -77,7 +77,7 @@ cc_binary(
4+
],
5+
deps = select({
6+
"//conditions:default": [],
7+
- ":use_fast_cpp_protos": ["//external:python_headers"],
8+
+ ":use_fast_cpp_protos": ["//third_party:python_headers"],
9+
}),
10+
)
11+
12+
@@ -116,7 +116,7 @@ cc_binary(
13+
"//src/google/protobuf:descriptor_legacy",
14+
] + select({
15+
"//conditions:default": [],
16+
- ":use_fast_cpp_protos": ["//external:python_headers"],
17+
+ ":use_fast_cpp_protos": ["//third_party:python_headers"],
18+
}),
19+
)
20+
21+
@@ -379,7 +379,7 @@ cc_library(
22+
hdrs = ["google/protobuf/proto_api.h"],
23+
visibility = ["//visibility:public"],
24+
deps = [
25+
- "//external:python_headers",
26+
+ "//third_party:python_headers",
27+
],
28+
)
29+
30+
diff --git a/third_party/BUILD.bazel b/third_party/BUILD.bazel
31+
index d12b3e37f..2abc1e7ec 100644
32+
--- a/third_party/BUILD.bazel
33+
+++ b/third_party/BUILD.bazel
34+
@@ -2,3 +2,9 @@ exports_files([
35+
"BUILD.bazel",
36+
"zlib.BUILD",
37+
])
38+
+
39+
+alias(
40+
+ name = "python_headers",
41+
+ actual = "@rules_python//python/cc:current_py_cc_headers",
42+
+ visibility = ["//visibility:public"],
43+
+)

0 commit comments

Comments
 (0)