rules-proto-grpc / rules_proto_grpc

Bazel rules for building Protobuf and gRPC code and libraries from proto_library targets
https://rules-proto-grpc.com
Apache License 2.0
249 stars 156 forks source link

Support for remaining languages under Bzlmod #299

Open aaliddell opened 8 months ago

aaliddell commented 8 months ago

This issue tracks the status of migrating languages to the Bzlmod version of the rules. Some languages are complete, some are blocked by external factors and some just need some time spent bringing them over.

Current language state

Key: :x:: Not working and blocked by some other problem :hourglass:: Not working, but support is likely possible :white_check_mark:: Working

Language State Notes
Android :x: Android rules in BCR are ancient. grpc-java not in BCR [1] [2]
Buf :white_check_mark: Full support
C :white_check_mark: Full support
C++ :white_check_mark: Full support
C# :hourglass: Looks possible
D :x: No D rules in BCR
Doc :white_check_mark: Full support
F# :hourglass: Looks possible
Go :white_check_mark: Full support
gRPC-Gateway :white_check_mark: Full support
Java :white_check_mark: grpc-java not in BCR [1] [2]
JavaScript :hourglass: Needs migration to rules_js, looks possible
Kotlin :hourglass: Needs evaluation
Objective-C :white_check_mark: Full support
PHP :x: No PHP rules in BCR. These rules were maybe never used anyway
Python :white_check_mark: Full support
Ruby :hourglass: Ruby rules only just landed in BCR
Rust :hourglass: Looks possible
Scala :x: No Scala rules in BCR
Swift :hourglass: Looks possible
TypeScript :hourglass: Looks possible
ah-quant commented 3 months ago

FYI @aaliddell: grpc-java (patched) is in BCR now, both issues are closed. And the regular version also includes native bzlmod support.

Thanks for this ruleset - I'm eagerly looking forward to a release including Java :)

ah-quant commented 3 months ago

Also, protobuf (patched) is in BCR (for my Java project, 23.1 works but 26.0 does not; there's a maven conflict if you use rules_jvm_external with a maven repo in your own project). And it will probably gain native support soon, there's https://github.com/protocolbuffers/protobuf/blob/main/MODULE.bazel now. But automatic publishing to BCR is apparently not active, yet.