bazelbuild / rules_rust

Rust rules for Bazel
https://bazelbuild.github.io/rules_rust/
Apache License 2.0
656 stars 419 forks source link

Prost Crate Naming Conventions #2889

Open purkhusid opened 1 week ago

purkhusid commented 1 week ago

Wanted to start a discussion around the current naming conventions in the prost rules provided by rules_rust.

The prost rules set the crate name to the name of the proto_library that is being compiled. This approach is very prone to clashes e.g. the following folder structure:

/src
    /protobuf
        service1/
            /models
                models.proto
        service2/
            /models
                models.proto

In this folder structure the common way to name the proto_library target would be models_proto (Which is the convention that gazelle uses) but that causes issues if there is a consumer that needs both service1/models and service2/models .

I think it makes sense to change the naming conventions or make them configurable since this is a very likely issue when you have a repo with a large protobuf codebase.

Options: