Skip to content

Commit 2611c37

Browse files
committed
protobuf: Switch to protovalidate
Signed-off-by: Ryan Northey <ryan@synca.io>
1 parent dba9d58 commit 2611c37

File tree

85 files changed

+344
-10617
lines changed

Some content is hidden

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

85 files changed

+344
-10617
lines changed

MODULE.bazel

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ bazel_dep(name = "googleapis-cc", version = "1.0.0")
1414
bazel_dep(name = "grpc", version = "1.76.0.bcr.1", repo_name = "com_github_grpc_grpc")
1515
bazel_dep(name = "protobuf", version = "33.1", repo_name = "com_google_protobuf")
1616
bazel_dep(name = "protoc-gen-validate", version = "1.3.0", repo_name = "com_envoyproxy_protoc_gen_validate")
17+
bazel_dep(name = "protovalidate", version = "1.0.0")
1718
bazel_dep(name = "re2", version = "2025-11-05.bcr.1", repo_name = "com_googlesource_code_re2")
1819
bazel_dep(name = "rules_cc", version = "0.2.14")
1920
bazel_dep(name = "rules_go", version = "0.59.0", repo_name = "io_bazel_rules_go")
@@ -56,9 +57,22 @@ go_deps.module(
5657
sum = "h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=",
5758
version = "v1.36.10",
5859
)
60+
go_deps.module(
61+
path = "github.com/bufbuild/protovalidate-go",
62+
sum = "h1:pJZLbm2VHJy+IYCZxQW8yhaQdOOJVCIzH4IELVcQpSM=",
63+
version = "v0.8.0",
64+
)
65+
go_deps.module(
66+
path = "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go",
67+
sum = "h1:PMmTMyvHScV9Mn8wc6ASge9uRcHy0jtqPd+fM35LmsQ=",
68+
version = "v1.36.11-20260209202127-80ab13bee0bf.1",
69+
)
70+
5971
use_repo(
6072
go_deps,
6173
"org_golang_google_genproto_googleapis_api",
6274
"org_golang_google_grpc",
6375
"org_golang_google_protobuf",
76+
protovalidate_go = "com_github_bufbuild_protovalidate_go",
77+
protovalidate_go_gen = "build_buf_gen_go_bufbuild_protovalidate_protocolbuffers_go",
6478
)

bazel/api_build_system.bzl

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
load("@com_envoyproxy_protoc_gen_validate//bazel:pgv_proto_library.bzl", "pgv_cc_proto_library")
21
load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
32
load("@com_github_grpc_grpc//bazel:python_rules.bzl", _py_proto_library = "py_proto_library")
3+
load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
44
load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
55
load("@io_bazel_rules_go//go:def.bzl", "go_test")
66
load("@io_bazel_rules_go//proto:def.bzl", "go_grpc_library", "go_proto_library")
@@ -27,7 +27,7 @@ _COMMON_PROTO_DEPS = [
2727
"@com_google_protobuf//:wrappers_proto",
2828
"@com_google_googleapis//google/api:http_proto",
2929
"@com_google_googleapis//google/rpc:status_proto",
30-
"@com_envoyproxy_protoc_gen_validate//validate:validate_proto",
30+
"@protovalidate//proto/protovalidate/buf/validate:validate_proto",
3131
]
3232

3333
def _proto_mapping(dep, proto_dep_map, proto_suffix):
@@ -68,14 +68,8 @@ def _xds_cc_py_proto_library(
6868
visibility = visibility,
6969
)
7070
cc_proto_library_name = name + _CC_PROTO_SUFFIX
71-
pgv_cc_proto_library(
71+
cc_proto_library(
7272
name = cc_proto_library_name,
73-
linkstatic = linkstatic,
74-
cc_deps = [_cc_proto_mapping(dep) for dep in deps] + [
75-
"@com_google_googleapis//google/api:http_cc_proto",
76-
"@com_google_googleapis//google/api:httpbody_cc_proto",
77-
"@com_google_googleapis//google/rpc:status_cc_proto",
78-
],
7973
deps = [relative_name],
8074
visibility = ["//visibility:public"],
8175
)
@@ -113,9 +107,9 @@ def xds_proto_package(
113107
has_services = has_services,
114108
)
115109

116-
compilers = ["@io_bazel_rules_go//proto:go_proto", "@com_envoyproxy_protoc_gen_validate//bazel/go:pgv_plugin_go"]
110+
compilers = ["@io_bazel_rules_go//proto:go_proto"]
117111
if has_services:
118-
compilers = ["@io_bazel_rules_go//proto:go_proto", "@io_bazel_rules_go//proto:go_grpc_v2", "@com_envoyproxy_protoc_gen_validate//bazel/go:pgv_plugin_go"]
112+
compilers = ["@io_bazel_rules_go//proto:go_proto", "@io_bazel_rules_go//proto:go_grpc_v2"]
119113

120114
# Because RBAC proro depends on googleapis syntax.proto and checked.proto,
121115
# which share the same go proto library, it causes duplicative dependencies.
@@ -127,12 +121,12 @@ def xds_proto_package(
127121
proto = name,
128122
visibility = ["//visibility:public"],
129123
deps = depset([_go_proto_mapping(dep) for dep in deps] + [
130-
"@com_envoyproxy_protoc_gen_validate//validate:go_default_library",
131124
"@org_golang_google_protobuf//types/known/anypb:go_default_library",
132125
"@org_golang_google_protobuf//types/known/durationpb:go_default_library",
133126
"@org_golang_google_protobuf//types/known/structpb:go_default_library",
134127
"@org_golang_google_protobuf//types/known/timestamppb:go_default_library",
135128
"@org_golang_google_protobuf//types/known/wrapperspb:go_default_library",
129+
"@protovalidate_go_gen//buf/validate",
136130
]).to_list(),
137131
)
138132

go/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ module github.com/cncf/xds/go
33
go 1.24.6
44

55
require (
6+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260209202127-80ab13bee0bf.1
67
cel.dev/expr v0.25.1
7-
github.com/envoyproxy/protoc-gen-validate v1.3.0
88
google.golang.org/genproto/googleapis/api v0.0.0-20250804133106-a7a43d27e69b
99
google.golang.org/grpc v1.76.0
1010
google.golang.org/protobuf v1.36.10

0 commit comments

Comments
 (0)