Remove --incompatible_remove_transitive_libs_from_dep_info (#1124)
Closes #1051
diff --git a/docs/flatten.md b/docs/flatten.md
index 10df0a0..84a2af5 100644
--- a/docs/flatten.md
+++ b/docs/flatten.md
@@ -1386,7 +1386,7 @@
<pre>
DepInfo(<a href="#DepInfo-dep_env">dep_env</a>, <a href="#DepInfo-direct_crates">direct_crates</a>, <a href="#DepInfo-transitive_build_infos">transitive_build_infos</a>, <a href="#DepInfo-transitive_crate_outputs">transitive_crate_outputs</a>, <a href="#DepInfo-transitive_crates">transitive_crates</a>,
- <a href="#DepInfo-transitive_libs">transitive_libs</a>, <a href="#DepInfo-transitive_noncrates">transitive_noncrates</a>)
+ <a href="#DepInfo-transitive_noncrates">transitive_noncrates</a>)
</pre>
A provider containing information about a Crate's dependencies.
@@ -1401,7 +1401,6 @@
| <a id="DepInfo-transitive_build_infos"></a>transitive_build_infos | depset[BuildInfo] |
| <a id="DepInfo-transitive_crate_outputs"></a>transitive_crate_outputs | depset[File]: All transitive crate outputs. |
| <a id="DepInfo-transitive_crates"></a>transitive_crates | depset[CrateInfo] |
-| <a id="DepInfo-transitive_libs"></a>transitive_libs | List[File]: (Deprecated, see https://github.com/bazelbuild/rules_rust/issues/1051) All transitive dependencies, not filtered by type. |
| <a id="DepInfo-transitive_noncrates"></a>transitive_noncrates | depset[LinkerInput]: All transitive dependencies that aren't crates. |
diff --git a/docs/providers.md b/docs/providers.md
index 588b848..e810289 100644
--- a/docs/providers.md
+++ b/docs/providers.md
@@ -43,7 +43,7 @@
<pre>
DepInfo(<a href="#DepInfo-dep_env">dep_env</a>, <a href="#DepInfo-direct_crates">direct_crates</a>, <a href="#DepInfo-transitive_build_infos">transitive_build_infos</a>, <a href="#DepInfo-transitive_crate_outputs">transitive_crate_outputs</a>, <a href="#DepInfo-transitive_crates">transitive_crates</a>,
- <a href="#DepInfo-transitive_libs">transitive_libs</a>, <a href="#DepInfo-transitive_noncrates">transitive_noncrates</a>)
+ <a href="#DepInfo-transitive_noncrates">transitive_noncrates</a>)
</pre>
A provider containing information about a Crate's dependencies.
@@ -58,7 +58,6 @@
| <a id="DepInfo-transitive_build_infos"></a>transitive_build_infos | depset[BuildInfo] |
| <a id="DepInfo-transitive_crate_outputs"></a>transitive_crate_outputs | depset[File]: All transitive crate outputs. |
| <a id="DepInfo-transitive_crates"></a>transitive_crates | depset[CrateInfo] |
-| <a id="DepInfo-transitive_libs"></a>transitive_libs | List[File]: (Deprecated, see https://github.com/bazelbuild/rules_rust/issues/1051) All transitive dependencies, not filtered by type. |
| <a id="DepInfo-transitive_noncrates"></a>transitive_noncrates | depset[LinkerInput]: All transitive dependencies that aren't crates. |
diff --git a/rust/private/clippy.bzl b/rust/private/clippy.bzl
index 8083fa3..53a86f1 100644
--- a/rust/private/clippy.bzl
+++ b/rust/private/clippy.bzl
@@ -70,7 +70,6 @@
aliases = crate_info.aliases,
# Clippy doesn't need to invoke transitive linking, therefore doesn't need linkstamps.
are_linkstamps_supported = False,
- remove_transitive_libs_from_dep_info = toolchain._incompatible_remove_transitive_libs_from_dep_info,
)
compile_inputs, out_dir, build_env_files, build_flags_files, linkstamp_outs = collect_inputs(
diff --git a/rust/private/providers.bzl b/rust/private/providers.bzl
index b0f56f5..f6b231a 100644
--- a/rust/private/providers.bzl
+++ b/rust/private/providers.bzl
@@ -48,8 +48,6 @@
"transitive_build_infos": "depset[BuildInfo]",
"transitive_crate_outputs": "depset[File]: All transitive crate outputs.",
"transitive_crates": "depset[CrateInfo]",
- "transitive_libs": "List[File]: (Deprecated, see https://github.com/bazelbuild/rules_rust/issues/1051) " +
- "All transitive dependencies, not filtered by type.",
"transitive_noncrates": "depset[LinkerInput]: All transitive dependencies that aren't crates.",
},
)
diff --git a/rust/private/rustc.bzl b/rust/private/rustc.bzl
index ffa3929..2701424 100644
--- a/rust/private/rustc.bzl
+++ b/rust/private/rustc.bzl
@@ -122,8 +122,7 @@
deps,
proc_macro_deps,
aliases,
- are_linkstamps_supported = False,
- remove_transitive_libs_from_dep_info = False):
+ are_linkstamps_supported = False):
"""Walks through dependencies and collects the transitive dependencies.
Args:
@@ -132,8 +131,6 @@
proc_macro_deps (list): The proc_macro deps from ctx.attr.proc_macro_deps.
aliases (dict): A dict mapping aliased targets to their actual Crate information.
are_linkstamps_supported (bool): Whether the current rule and the toolchain support building linkstamps..
- remove_transitive_libs_from_dep_info (bool): Whether
- --incompatible_remove_transitive_libs_from_dep_info has been flipped.
Returns:
tuple: Returns a tuple of:
@@ -180,16 +177,10 @@
),
)
transitive_noncrates.append(dep_info.transitive_noncrates)
- if not remove_transitive_libs_from_dep_info:
- transitive_noncrate_libs.append(dep_info.transitive_libs)
transitive_build_infos.append(dep_info.transitive_build_infos)
elif cc_info:
# This dependency is a cc_library
transitive_noncrates.append(cc_info.linking_context.linker_inputs)
- if not remove_transitive_libs_from_dep_info:
- transitive_noncrate_libs.append(depset(
- _collect_libs_from_linker_inputs(cc_info.linking_context.linker_inputs.to_list()),
- ))
elif dep_build_info:
if build_info:
fail("Several deps are providing build information, " +
@@ -202,11 +193,6 @@
transitive_crates_depset = depset(transitive = transitive_crates)
transitive_libs = depset([])
- if not remove_transitive_libs_from_dep_info:
- transitive_libs = depset(
- [c.output for c in transitive_crates_depset.to_list()],
- transitive = transitive_noncrate_libs,
- )
return (
rust_common.dep_info(
@@ -217,7 +203,6 @@
order = "topological", # dylib link flag ordering matters.
),
transitive_crate_outputs = depset(transitive = transitive_crate_outputs),
- transitive_libs = transitive_libs,
transitive_build_infos = depset(transitive = transitive_build_infos),
dep_env = build_info.dep_env if build_info else None,
),
@@ -732,8 +717,6 @@
"""
cc_toolchain, feature_configuration = find_cc_toolchain(ctx)
- remove_transitive_libs_from_dep_info = toolchain._incompatible_remove_transitive_libs_from_dep_info
-
dep_info, build_info, linkstamps = collect_deps(
label = ctx.label,
deps = crate_info.deps,
@@ -743,7 +726,6 @@
feature_configuration = feature_configuration,
has_grep_includes = hasattr(ctx.attr, "_grep_includes"),
),
- remove_transitive_libs_from_dep_info = remove_transitive_libs_from_dep_info,
)
# Determine if the build is currently running with --stamp
diff --git a/rust/private/rustdoc.bzl b/rust/private/rustdoc.bzl
index 1c1fcdc..0258183 100644
--- a/rust/private/rustdoc.bzl
+++ b/rust/private/rustdoc.bzl
@@ -76,7 +76,6 @@
deps = crate_info.deps,
proc_macro_deps = crate_info.proc_macro_deps,
aliases = crate_info.aliases,
- remove_transitive_libs_from_dep_info = toolchain._incompatible_remove_transitive_libs_from_dep_info,
)
compile_inputs, out_dir, build_env_files, build_flags_files, linkstamp_outs = collect_inputs(
diff --git a/rust/settings/BUILD.bazel b/rust/settings/BUILD.bazel
index e34fa92..3ff0ef6 100644
--- a/rust/settings/BUILD.bazel
+++ b/rust/settings/BUILD.bazel
@@ -1,15 +1,8 @@
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
load("@bazel_skylib//rules:common_settings.bzl", "bool_flag", "string_flag")
-load(":incompatible.bzl", "incompatible_flag")
package(default_visibility = ["//visibility:public"])
-incompatible_flag(
- name = "incompatible_remove_transitive_libs_from_dep_info",
- build_setting_default = True,
- issue = "https://github.com/bazelbuild/rules_rust/issues/1051",
-)
-
# A flag controlling whether to rename first-party crates such that their names
# encode the Bazel package and target name, instead of just the target name.
#
diff --git a/rust/toolchain.bzl b/rust/toolchain.bzl
index d3cb8f4..e034991 100644
--- a/rust/toolchain.bzl
+++ b/rust/toolchain.bzl
@@ -3,7 +3,6 @@
load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo")
load("//rust/private:common.bzl", "rust_common")
load("//rust/private:utils.bzl", "dedent", "find_cc_toolchain", "make_static_lib_symlink")
-load("//rust/settings:incompatible.bzl", "IncompatibleFlagInfo")
def _rust_stdlib_filegroup_impl(ctx):
rust_std = ctx.files.srcs
@@ -232,8 +231,6 @@
if ctx.attr.target_triple and ctx.file.target_json:
fail("Do not specify both target_triple and target_json, either use a builtin triple or provide a custom specification file.")
- remove_transitive_libs_from_dep_info = ctx.attr._incompatible_remove_transitive_libs_from_dep_info[IncompatibleFlagInfo]
-
rename_first_party_crates = ctx.attr._rename_first_party_crates[BuildSettingInfo].value
third_party_dir = ctx.attr._third_party_dir[BuildSettingInfo].value
@@ -308,7 +305,6 @@
compilation_mode_opts = compilation_mode_opts,
crosstool_files = ctx.files._crosstool,
libstd_and_allocator_ccinfo = _make_libstd_and_allocator_ccinfo(ctx, rust_std, ctx.attr.allocator_library),
- _incompatible_remove_transitive_libs_from_dep_info = remove_transitive_libs_from_dep_info.enabled,
_rename_first_party_crates = rename_first_party_crates,
_third_party_dir = third_party_dir,
)
@@ -429,9 +425,6 @@
"_crosstool": attr.label(
default = Label("@bazel_tools//tools/cpp:current_cc_toolchain"),
),
- "_incompatible_remove_transitive_libs_from_dep_info": attr.label(
- default = "@rules_rust//rust/settings:incompatible_remove_transitive_libs_from_dep_info",
- ),
"_rename_first_party_crates": attr.label(
default = "@rules_rust//rust/settings:rename_first_party_crates",
),
diff --git a/test/unit/deprecate_transitive_libs_in_dep_info/BUILD.bazel b/test/unit/deprecate_transitive_libs_in_dep_info/BUILD.bazel
deleted file mode 100644
index 8cfd704..0000000
--- a/test/unit/deprecate_transitive_libs_in_dep_info/BUILD.bazel
+++ /dev/null
@@ -1,8 +0,0 @@
-load(
- ":deprecate_transitive_libs_in_dep_info_test.bzl",
- "deprecate_transitive_libs_in_dep_info_test_suite",
-)
-
-deprecate_transitive_libs_in_dep_info_test_suite(
- name = "deprecate_transitive_libs_in_dep_info_test_suite",
-)
diff --git a/test/unit/deprecate_transitive_libs_in_dep_info/bar.rs b/test/unit/deprecate_transitive_libs_in_dep_info/bar.rs
deleted file mode 100644
index 8b13789..0000000
--- a/test/unit/deprecate_transitive_libs_in_dep_info/bar.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/test/unit/deprecate_transitive_libs_in_dep_info/deprecate_transitive_libs_in_dep_info_test.bzl b/test/unit/deprecate_transitive_libs_in_dep_info/deprecate_transitive_libs_in_dep_info_test.bzl
deleted file mode 100644
index d4750fc..0000000
--- a/test/unit/deprecate_transitive_libs_in_dep_info/deprecate_transitive_libs_in_dep_info_test.bzl
+++ /dev/null
@@ -1,82 +0,0 @@
-"""Unittests for rust rules."""
-
-load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts")
-load("//rust:defs.bzl", "rust_common", "rust_library")
-
-def _transitive_libs_in_dep_info_not_deprecated_impl(ctx):
- env = analysistest.begin(ctx)
- tut = analysistest.target_under_test(env)
- transitive_libs = tut[rust_common.dep_info].transitive_libs.to_list()
-
- asserts.true(
- env,
- len(transitive_libs) > 0,
- "Expected DepInfo.transitive_libs to not be empty",
- )
-
- return analysistest.end(env)
-
-def _transitive_libs_in_dep_info_deprecated_impl(ctx):
- env = analysistest.begin(ctx)
- tut = analysistest.target_under_test(env)
- transitive_libs = tut[rust_common.dep_info].transitive_libs.to_list()
-
- asserts.true(
- env,
- len(transitive_libs) == 0,
- "Expected DepInfo.transitive_libs to be empty, got {}".format(transitive_libs),
- )
-
- return analysistest.end(env)
-
-transitive_libs_in_dep_info_not_deprecated_test = analysistest.make(
- _transitive_libs_in_dep_info_not_deprecated_impl,
- config_settings = {
- "@//rust/settings:incompatible_remove_transitive_libs_from_dep_info": False,
- },
-)
-
-transitive_libs_in_dep_info_deprecated_test = analysistest.make(
- _transitive_libs_in_dep_info_deprecated_impl,
- config_settings = {
- "@//rust/settings:incompatible_remove_transitive_libs_from_dep_info": True,
- },
-)
-
-def _transitive_libs_in_dep_info_test():
- rust_library(
- name = "foo",
- srcs = ["foo.rs"],
- deps = [":bar"],
- )
-
- rust_library(
- name = "bar",
- srcs = ["bar.rs"],
- )
-
- transitive_libs_in_dep_info_not_deprecated_test(
- name = "transitive_libs_in_dep_info_not_deprecated_test",
- target_under_test = ":foo",
- )
-
- transitive_libs_in_dep_info_deprecated_test(
- name = "transitive_libs_in_dep_info_deprecated_test",
- target_under_test = ":foo",
- )
-
-def deprecate_transitive_libs_in_dep_info_test_suite(name):
- """Entry-point macro called from the BUILD file.
-
- Args:
- name: Name of the macro.
- """
- _transitive_libs_in_dep_info_test()
-
- native.test_suite(
- name = name,
- tests = [
- ":transitive_libs_in_dep_info_not_deprecated_test",
- ":transitive_libs_in_dep_info_deprecated_test",
- ],
- )
diff --git a/test/unit/deprecate_transitive_libs_in_dep_info/foo.rs b/test/unit/deprecate_transitive_libs_in_dep_info/foo.rs
deleted file mode 100644
index 8b13789..0000000
--- a/test/unit/deprecate_transitive_libs_in_dep_info/foo.rs
+++ /dev/null
@@ -1 +0,0 @@
-