Skip to content

Commit 666704a

Browse files
committed
Handle aliases for 3p deps on 1p crates
1 parent 3e9f802 commit 666704a

11 files changed

Lines changed: 77 additions & 1 deletion

File tree

rs/extensions.bzl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -993,7 +993,9 @@ RESOLVED_PLATFORMS = select({{
993993
if not bazel_target:
994994
bazel_target = "//" + paths.join(workspace_package, _normalize_path(dep["path"]).removeprefix(repo_root + "/"))
995995

996-
if dep.get("path"):
996+
if dep.get("rename"):
997+
aliases[bazel_target] = dep["rename"].replace("-", "_")
998+
elif dep.get("path"):
997999
aliases[bazel_target] = dep["name"].replace("-", "_")
9981000

9991001
target = dep.get("target")

test/BUILD.bazel

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ load("@rules_rs//rs:rust_binary.bzl", "rust_binary")
33
load("@rules_shell//shell:sh_test.bzl", "sh_test")
44
load("@target_workspace_dep_feature//:data.bzl", target_workspace_dep_feature_dep_data = "DEP_DATA")
55
load("@workspace_hyphen_dep_aliases//:defs.bzl", workspace_hyphen_dep_aliases_aliases = "aliases")
6+
load("@workspace_renamed_path_dep_aliases//:defs.bzl", workspace_renamed_path_dep_aliases_aliases = "aliases")
67
load("//:verify_aliases.bzl", "verify_alias", "verify_crate_feature_absent", "verify_dep_absent")
78

89
sh_test(
@@ -135,6 +136,13 @@ verify_alias(
135136
expected_label = "//workspace_hyphen_dep_aliases/dep-crate",
136137
)
137138

139+
verify_alias(
140+
name = "verify_workspace_renamed_path_dep_aliases",
141+
aliases = workspace_renamed_path_dep_aliases_aliases(package_name = "workspace_renamed_path_dep_aliases/consumer"),
142+
expected_alias = "renamed_dep",
143+
expected_label = "//workspace_renamed_path_dep_aliases/dep-crate",
144+
)
145+
138146
genrule(
139147
name = "verify_workspace_member_annotation_features",
140148
srcs = [":workspace_member_annotation_features_dep_leaf_deps"],
@@ -184,6 +192,7 @@ filegroup(
184192
":verify_target_workspace_dep_feature_dep_absent",
185193
":verify_target_workspace_dep_feature_feature_absent",
186194
":verify_workspace_hyphen_dep_aliases",
195+
":verify_workspace_renamed_path_dep_aliases",
187196
":verify_workspace_member_annotation_features",
188197
"@binaries//:protoc-gen-prost__protoc-gen-prost",
189198
] + select({

test/MODULE.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ TESTS = [
9898
"workspace_member_annotation_features",
9999
"workspace_path_dependency",
100100
"workspace_hyphen_dep_aliases",
101+
"workspace_renamed_path_dep_aliases",
101102
"binaries",
102103
"uv",
103104
]

test/workspace_renamed_path_dep_aliases/Cargo.lock

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[workspace]
2+
members = ["consumer", "dep-crate"]
3+
resolver = "2"
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
load("@rules_rs//rs:rust_test.bzl", "rust_test")
2+
load("@workspace_renamed_path_dep_aliases//:defs.bzl", "aliases", "all_crate_deps")
3+
4+
rust_test(
5+
name = "consumer_test",
6+
aliases = aliases(),
7+
srcs = ["src/lib.rs"],
8+
deps = all_crate_deps(normal = True),
9+
)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[package]
2+
name = "consumer"
3+
version = "0.1.0"
4+
edition = "2024"
5+
6+
[dependencies]
7+
renamed-dep = { package = "dep-crate", path = "../dep-crate" }
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
pub fn consume() -> &'static str {
2+
renamed_dep::dep_value()
3+
}
4+
5+
#[cfg(test)]
6+
mod tests {
7+
#[test]
8+
fn dependency_is_linked() {
9+
assert_eq!(super::consume(), "dep");
10+
}
11+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
load("@rules_rs//rs:rust_library.bzl", "rust_library")
2+
load("@workspace_renamed_path_dep_aliases//:defs.bzl", "aliases", "all_crate_deps")
3+
4+
package(default_visibility = ["//visibility:public"])
5+
6+
rust_library(
7+
name = "dep-crate",
8+
srcs = ["src/lib.rs"],
9+
crate_name = "dep_crate",
10+
edition = "2024",
11+
aliases = aliases(),
12+
deps = all_crate_deps(normal = True),
13+
)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[package]
2+
name = "dep-crate"
3+
version = "0.1.0"
4+
edition = "2024"

0 commit comments

Comments
 (0)