Use the go_grpc_v2 compiler for generating gRPC service bindings #308
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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:
grpc/grpc-go#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! ;-)