Skip to content

Instantly share code, notes, and snippets.

@william-smith-skydio
Last active October 9, 2023 06:24
Show Gist options
  • Save william-smith-skydio/5168780cb707a077d180971a7f9d9df5 to your computer and use it in GitHub Desktop.
Save william-smith-skydio/5168780cb707a077d180971a7f9d9df5 to your computer and use it in GitHub Desktop.
Prost: transitive dependencies in the same package are duplicated (https://github.com/bazelbuild/rules_rust/issues/2185)
syntax = "proto3";
import "external.proto";
package transitive_same_package;
message A {
external.External foobar = 1;
}
syntax = "proto3";
import "a.proto";
package transitive_same_package;
message B {
A a = 1;
}
load("@rules_proto//proto:defs.bzl", "proto_library")
load("//proto/prost:defs.bzl", "rust_prost_library")
proto_library(
name = "external_proto",
srcs = ["external.proto"],
strip_import_prefix = "/proto/prost/private/tests/transitive_same_package",
)
rust_prost_library(
name = "external_proto_rs",
proto = ":external_proto",
)
proto_library(
name = "a_proto",
srcs = ["a.proto"],
strip_import_prefix = "/proto/prost/private/tests/transitive_same_package",
deps = [":external_proto"],
)
rust_prost_library(
name = "a_proto_rs",
proto = ":a_proto",
)
proto_library(
name = "b_proto",
srcs = ["b.proto"],
strip_import_prefix = "/proto/prost/private/tests/transitive_same_package",
deps = [":a_proto"],
)
rust_prost_library(
name = "b_proto_rs",
proto = ":b_proto",
)
proto_library(
name = "c_proto",
srcs = ["c.proto"],
strip_import_prefix = "/proto/prost/private/tests/transitive_same_package",
deps = [":b_proto"],
)
rust_prost_library(
name = "c_proto_rs",
proto = ":c_proto",
)
syntax = "proto3";
import "b.proto";
package transitive_same_package;
message C {
B b = 1;
}
syntax = "proto3";
package external;
message External {
string name = 1;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment