bazelbuild / remote-apis

An API for caching and execution of actions on a remote system.
Apache License 2.0
331 stars 117 forks source link

Use the go_grpc_v2 compiler for generating gRPC service bindings #308

Closed EdSchouten closed 2 weeks ago

EdSchouten commented 3 weeks ago

By default, Gazelle will use use the ancient go_grpc compiler for generating Protobuf and gRPC bindings. What's inconvenient about that is that those bindings don't use the grpc.ServiceRegistrar interface that was added back in 2020:

https://github.com/grpc/grpc-go/issues/3966

Instead, it uses concrete type *grpc.Server. In Buildbarn I need to make use of the interface to support things like xDS, which grpc-go only offers via a different concrete server type.

In the past I never had to care about this, because I would regenerate these sources myself. Now that I want to remote-apis through bzlmod, this is less practical.

@bergsieker As you mentioned during the monthly meeting, you wanted people to give the bzlmod code a spin before pushing it into BCR. Here you go! ;-)

EdSchouten commented 3 weeks ago

cc @philwo #307

EdSchouten commented 2 weeks ago

Rebased to account for #310. @bergsieker PTAL!