Skip to content

Commit 6ff26ae

Browse files
craig[bot]shubhamdhama
andcommitted
Merge #145113
145113: drpc,bazel: add protoc-gen-go-drpc compiler and integrate with Bazel/Gazelle r=rickystewart,cthumuluru-crdb a=shubhamdhama This change introduces Bazel build support for generating DRPC Go code from .proto files using the `protoc-gen-go-drpc` plugin. We define a new `go_proto_compiler` target for DRPC. A key part of making this work alongside our existing gogo/gRPC compiler was setting `suffix = "_drpc.pb.go"`. This explicitly tells the `rules_go` build system that this plugin generates files with a different pattern than the default `.pb.go`, which avoids the "conflicting action" errors Bazel threw when it thought both compilers were trying to create the same base file. The new DRPC compiler uses the ``@io_storj_drpc//cmd/protoc-gen-go-drpc`` pre-built binary target and passes the necessary options (`paths=source_relative`, `protolib=github.com/gogo/protobuf`) for compatibility with the existing gogo/protobuf message types. Dependencies required by the generated DRPC code (``@io_storj_drpc//...`)` are also included. To automate integration, the new DRPC compiler is added to the list in the `# gazelle:go_grpc_compilers` directive in the root `BUILD.bazel`. Gazelle will now add both the gogo/gRPC compiler and the DRPC compiler to relevant `go_proto_library` rules across the codebase. Note: For .proto files without service definitions, this compiler will be invoked but may produce empty `_drpc.pb.go` files, which is expected. Fixes: #145177 Fixes: #145178 Release note: none Epic: CRDB-48934 Co-authored-by: Shubham Dhama <[email protected]>
2 parents 765f324 + b3849a8 commit 6ff26ae

File tree

19 files changed

+76
-20
lines changed

19 files changed

+76
-20
lines changed

BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ exports_files([
3333
# gazelle:proto default
3434
# gazelle:proto_group go_package
3535
# gazelle:go_proto_compilers //pkg/cmd/protoc-gen-gogoroach:protoc-gen-gogoroach_compiler
36-
# gazelle:go_grpc_compilers //pkg/cmd/protoc-gen-gogoroach:protoc-gen-gogoroach_grpc_compiler
36+
# gazelle:go_grpc_compilers //pkg/cmd/protoc-gen-gogoroach:protoc-gen-gogoroach_grpc_compiler,//pkg/cmd/protoc-gen-go-drpc:protoc-gen-go-drpc_compiler
3737

3838
# Gazelle needs the following resolve hints.
3939
#

DEPS.bzl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11529,10 +11529,10 @@ def go_deps():
1152911529
name = "io_storj_drpc",
1153011530
build_file_proto_mode = "disable_global",
1153111531
importpath = "storj.io/drpc",
11532-
sha256 = "a0ab0c1a3f55576bfb4fa7b03902a7a462e7296c4b1da67e851ff03cda79c3f4",
11533-
strip_prefix = "github.com/cockroachdb/[email protected]20240709171858-0075ac871661",
11532+
sha256 = "60246f2907c40615808e4a5af2f6d58a5248802f57a4b7b55dfb03ee5b779b3b",
11533+
strip_prefix = "github.com/cockroachdb/[email protected]20250507084558-a793c5c40d3d",
1153411534
urls = [
11535-
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/drpc/com_github_cockroachdb_drpc-v0.0.0-20240709171858-0075ac871661.zip",
11535+
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/drpc/com_github_cockroachdb_drpc-v0.0.0-20250507084558-a793c5c40d3d.zip",
1153611536
],
1153711537
)
1153811538
go_repository(

build/bazelutil/distdir_files.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ DISTDIR_FILES = {
359359
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/crlfmt/com_github_cockroachdb_crlfmt-v0.0.0-20221214225007-b2fc5c302548.zip": "fedc01bdd6d964da0425d5eaac8efadc951e78e13f102292cc0774197f09ab63",
360360
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/crlib/com_github_cockroachdb_crlib-v0.0.0-20241205160938-4a90b184f49c.zip": "1afc910b4ff270de79eecb42ab7bd5e6404e6128666c6c55e96db9e27d28e69e",
361361
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/datadriven/com_github_cockroachdb_datadriven-v1.0.3-0.20250407164829-2945557346d5.zip": "251593cd9c040fe84a99a3919de7ce6f85030d522159a37d625dc2dea7a4d17f",
362-
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/drpc/com_github_cockroachdb_drpc-v0.0.0-20240709171858-0075ac871661.zip": "a0ab0c1a3f55576bfb4fa7b03902a7a462e7296c4b1da67e851ff03cda79c3f4",
362+
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/drpc/com_github_cockroachdb_drpc-v0.0.0-20250507084558-a793c5c40d3d.zip": "60246f2907c40615808e4a5af2f6d58a5248802f57a4b7b55dfb03ee5b779b3b",
363363
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/errors/com_github_cockroachdb_errors-v1.12.0.zip": "f73d8a5f4d8fcbc4ed61db2b47f17e2601d8b32e9a49c0665667489d9d9d6e7c",
364364
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/go-test-teamcity/com_github_cockroachdb_go_test_teamcity-v0.0.0-20191211140407-cff980ad0a55.zip": "bac30148e525b79d004da84d16453ddd2d5cd20528e9187f1d7dac708335674b",
365365
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/gogoproto/com_github_cockroachdb_gogoproto-v1.3.3-0.20241216150617-2358cdb156a1.zip": "bf052c9a7f9e23fb3ec7e9f3b7201cfc264c18ed6da0d662952d276dbc339003",

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ replace golang.org/x/time => github.com/cockroachdb/x-time v0.3.1-0.202305251236
506506

507507
replace github.com/gogo/protobuf => github.com/cockroachdb/gogoproto v1.3.3-0.20241216150617-2358cdb156a1
508508

509-
replace storj.io/drpc => github.com/cockroachdb/drpc v0.0.0-20240709171858-0075ac871661
509+
replace storj.io/drpc => github.com/cockroachdb/drpc v0.0.0-20250507084558-a793c5c40d3d
510510

511511
// Note: This forked dependency adds a commit that opens up some
512512
// private APIs to enable us to make some perf improvements to

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -581,8 +581,8 @@ github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:z
581581
github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU=
582582
github.com/cockroachdb/datadriven v1.0.3-0.20250407164829-2945557346d5 h1:UycK/E0TkisVrQbSoxvU827FwgBBcZ95nRRmpj/12QI=
583583
github.com/cockroachdb/datadriven v1.0.3-0.20250407164829-2945557346d5/go.mod h1:jsaKMvD3RBCATk1/jbUZM8C9idWBJME9+VRZ5+Liq1g=
584-
github.com/cockroachdb/drpc v0.0.0-20240709171858-0075ac871661 h1:XKvrb75NgYqEvaJvsNohIweDeM0y8cmf0pOpLVZGbsM=
585-
github.com/cockroachdb/drpc v0.0.0-20240709171858-0075ac871661/go.mod h1:Y9LZaa8esL1PW2IDMqJE7CFSNq7d5bQ3RI7mGPtmKMg=
584+
github.com/cockroachdb/drpc v0.0.0-20250507084558-a793c5c40d3d h1:O43v15qZJIut4hLBaYfuK9gnm9eWpto2Qj/Q6MZeLTY=
585+
github.com/cockroachdb/drpc v0.0.0-20250507084558-a793c5c40d3d/go.mod h1:Y9LZaa8esL1PW2IDMqJE7CFSNq7d5bQ3RI7mGPtmKMg=
586586
github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk=
587587
github.com/cockroachdb/errors v1.12.0 h1:d7oCs6vuIMUQRVbi6jWWWEJZahLCfJpnJSVobd1/sUo=
588588
github.com/cockroachdb/errors v1.12.0/go.mod h1:SvzfYNNBshAVbZ8wzNc/UPK3w1vf0dKDUP41ucAIf7g=

pkg/blobs/blobspb/BUILD.bazel

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ proto_library(
1111

1212
go_proto_library(
1313
name = "blobspb_go_proto",
14-
compilers = ["//pkg/cmd/protoc-gen-gogoroach:protoc-gen-gogoroach_grpc_compiler"],
14+
compilers = [
15+
"//pkg/cmd/protoc-gen-gogoroach:protoc-gen-gogoroach_grpc_compiler",
16+
"//pkg/cmd/protoc-gen-go-drpc:protoc-gen-go-drpc_compiler",
17+
],
1518
importpath = "github.com/cockroachdb/cockroach/pkg/blobs/blobspb",
1619
proto = ":blobspb_proto",
1720
visibility = ["//visibility:public"],

pkg/ccl/sqlproxyccl/tenant/BUILD.bazel

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ proto_library(
1515

1616
go_proto_library(
1717
name = "tenant_go_proto",
18-
compilers = ["//pkg/cmd/protoc-gen-gogoroach:protoc-gen-gogoroach_grpc_compiler"],
18+
compilers = [
19+
"//pkg/cmd/protoc-gen-gogoroach:protoc-gen-gogoroach_grpc_compiler",
20+
"//pkg/cmd/protoc-gen-go-drpc:protoc-gen-go-drpc_compiler",
21+
],
1922
importpath = "github.com/cockroachdb/cockroach/pkg/ccl/sqlproxyccl/tenant",
2023
proto = ":tenant_proto",
2124
visibility = ["//visibility:public"],
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
load("@io_bazel_rules_go//proto:compiler.bzl", "go_proto_compiler")
2+
3+
go_proto_compiler(
4+
name = "protoc-gen-go-drpc_compiler",
5+
options = [
6+
"paths=source_relative",
7+
"protolib=github.com/gogo/protobuf",
8+
],
9+
plugin = "@io_storj_drpc//cmd/protoc-gen-go-drpc",
10+
suffix = "_drpc.pb.go",
11+
visibility = ["//visibility:public"],
12+
deps = [
13+
"@com_github_cockroachdb_errors//:errors",
14+
"@com_github_gogo_protobuf//jsonpb",
15+
"@com_github_gogo_protobuf//proto",
16+
"@io_storj_drpc//:drpc",
17+
"@io_storj_drpc//drpcerr",
18+
],
19+
)

pkg/gossip/BUILD.bazel

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,10 @@ proto_library(
105105

106106
go_proto_library(
107107
name = "gossip_go_proto",
108-
compilers = ["//pkg/cmd/protoc-gen-gogoroach:protoc-gen-gogoroach_grpc_compiler"],
108+
compilers = [
109+
"//pkg/cmd/protoc-gen-gogoroach:protoc-gen-gogoroach_grpc_compiler",
110+
"//pkg/cmd/protoc-gen-go-drpc:protoc-gen-go-drpc_compiler",
111+
],
109112
importpath = "github.com/cockroachdb/cockroach/pkg/gossip",
110113
proto = ":gossip_proto",
111114
visibility = ["//visibility:public"],

pkg/inspectz/inspectzpb/BUILD.bazel

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ proto_library(
1515

1616
go_proto_library(
1717
name = "inspectzpb_go_proto",
18-
compilers = ["//pkg/cmd/protoc-gen-gogoroach:protoc-gen-gogoroach_grpc_compiler"],
18+
compilers = [
19+
"//pkg/cmd/protoc-gen-gogoroach:protoc-gen-gogoroach_grpc_compiler",
20+
"//pkg/cmd/protoc-gen-go-drpc:protoc-gen-go-drpc_compiler",
21+
],
1922
importpath = "github.com/cockroachdb/cockroach/pkg/inspectz/inspectzpb",
2023
proto = ":inspectzpb_proto",
2124
visibility = ["//visibility:public"],

0 commit comments

Comments
 (0)