forked from cockroachdb/cockroach
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
build: generate .pb.go files in the bazel sandbox
We used to use the checked-in `.pb.go` files in our Bazel build, but these files should really be generated during the build (this is normal Bazel style, and avoids the weird extra step of having to run `make generate` and check in the `.pb.go` files whenever a `.proto` is updated). Some specific implementation notes: * Add a couple `go_proto_compiler`s for the `protoc-gen-gogoroach` plugin. * We enable Gazelle handling of `.proto` files in `BUILD.bazel`. * In that file, we also add a bunch of `gazelle:resolve` and `gazelle:exclude` directives that fix some build issues. The `vendor` directory is especially problematic and likely to introduce circular dependencies, so those get special attention. * Add a couple ad-hoc manual fixes to make compilation work (they can generally be found by searching for lines in `BUILD.bazel` files that are marked `keep`). These are typically necessary because Gazelle couldn't resolve the dependencies correctly for whatever reason. It's unclear to me at this point how well Gazelle will do as a long-term automatic solution for our protos. We may decide that additional investment is required to make everything usable without a prohibitive amount of manual intervention; that requires further investigation. Vendoring is definitely the most problematic thing from this perspective. Fixes cockroachdb#56067. Release note: None
- Loading branch information
1 parent
25eb03d
commit 15f22a5
Showing
71 changed files
with
1,474 additions
and
388 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# gazelle:proto_strip_import_prefix /pkg |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,19 @@ | ||
load("@io_bazel_rules_go//go:def.bzl", "go_library") | ||
load("@rules_proto//proto:defs.bzl", "proto_library") | ||
load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") | ||
|
||
go_library( | ||
name = "blobspb", | ||
srcs = ["blobs.pb.go"], | ||
proto_library( | ||
name = "blobspb_proto", | ||
srcs = ["blobs.proto"], | ||
strip_import_prefix = "/pkg", | ||
visibility = ["//visibility:public"], | ||
deps = ["//vendor/github.com/gogo/protobuf/gogoproto:gogo_proto"], | ||
) | ||
|
||
go_proto_library( | ||
name = "blobspb_go_proto", | ||
compilers = ["//pkg/cmd/protoc-gen-gogoroach:protoc-gen-gogoroach_grpc_compiler"], | ||
importpath = "github.com/cockroachdb/cockroach/pkg/blobs/blobspb", | ||
proto = ":blobspb_proto", | ||
visibility = ["//visibility:public"], | ||
deps = [ | ||
"//vendor/github.com/gogo/protobuf/proto", | ||
"//vendor/google.golang.org/grpc", | ||
], | ||
deps = ["//vendor/github.com/gogo/protobuf/gogoproto"], | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,22 @@ | ||
load("@io_bazel_rules_go//go:def.bzl", "go_library") | ||
load("@rules_proto//proto:defs.bzl", "proto_library") | ||
load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") | ||
|
||
go_library( | ||
name = "enginepbccl", | ||
proto_library( | ||
name = "enginepbccl_proto", | ||
srcs = [ | ||
"key_registry.pb.go", | ||
"stats.pb.go", | ||
"key_registry.proto", | ||
"stats.proto", | ||
], | ||
strip_import_prefix = "/pkg", | ||
visibility = ["//visibility:public"], | ||
deps = ["//vendor/github.com/gogo/protobuf/gogoproto:gogo_proto"], | ||
) | ||
|
||
go_proto_library( | ||
name = "enginepbccl_go_proto", | ||
compilers = ["//pkg/cmd/protoc-gen-gogoroach:protoc-gen-gogoroach_compiler"], | ||
importpath = "github.com/cockroachdb/cockroach/pkg/ccl/storageccl/engineccl/enginepbccl", | ||
proto = ":enginepbccl_proto", | ||
visibility = ["//visibility:public"], | ||
deps = [ | ||
"//vendor/github.com/gogo/protobuf/proto", | ||
"//vendor/github.com/gogo/protobuf/sortkeys", | ||
], | ||
deps = ["//vendor/github.com/gogo/protobuf/gogoproto"], | ||
) |
Oops, something went wrong.