-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
download targeted transitive deps of with artifact deps' target platform #14723
Conversation
17f5797
to
dd0a20d
Compare
resolve: &Resolve, | ||
pkg_id: PackageId, | ||
has_dev_units: HasDevUnits, | ||
requested_kinds: &[CompileKind], | ||
requested_kind: CompileKind, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems mostly correct to me. Cargo allows only one target platform per artifact deps. Thanks folks. 👍🏾
With this RFC the approach here might still have some issues but it is not even landed yet so no need to worry
https://rust-lang.github.io/rfcs/3176-cargo-multi-dep-artifacts.html
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What we would do in that situation is just call collect_used_deps
for each target
. This errs on the side of walking the tree multiple times, once for each target, rather than trying to keep state so that we only walk once.
dd0a20d
to
2b7414a
Compare
2b7414a
to
77a7041
Compare
77a7041
to
d125262
Compare
Thanks! @bors r+ |
☀️ Test successful - checks-actions |
Update cargo 18 commits in e75214ea4936d2f2c909a71a1237042cc0e14b07..0310497822a7a673a330a5dd068b7aaa579a265e 2024-10-25 16:34:32 +0000 to 2024-11-01 19:27:56 +0000 - Add more metadata to `rustc_fingerprint` (rust-lang/cargo#14761) - test(rustfix): switch to a simpler case for dedup-suggestions (rust-lang/cargo#14765) - chore(deps): update rust crate security-framework to v3 (rust-lang/cargo#14766) - chore(deps): update rust crate gix to 0.67.0 (rust-lang/cargo#14762) - fix(util): Respect all `..`s in `normalize_path` (rust-lang/cargo#14750) - test(doc): Resolve flaky test (rust-lang/cargo#14760) - refactor(test): Remove dead 'expect_stdout_contains_n' check (rust-lang/cargo#14759) - add unstable -Zroot-dir flag to configure the path from which rustc should be invoked (rust-lang/cargo#14752) - docs(resolver): Further v3 prep (rust-lang/cargo#14753) - fix: track version in fingerprint dep-info files (rust-lang/cargo#14751) - test: Remove unused msrv-policy (rust-lang/cargo#14748) - download targeted transitive deps of with artifact deps' target platform (rust-lang/cargo#14723) - Remove requirement for --target when invoking Cargo with -Zbuild-std (rust-lang/cargo#14317) - docs(fingerprint): document the encoding of Cargo's depinfo (rust-lang/cargo#14745) - Allow build scripts to report error messages through `cargo::error` (rust-lang/cargo#14743) - fix(publish): Downgrade version-exists error to warning on dry-run (rust-lang/cargo#14742) - fix: clean up for deprecated and removed commands (rust-lang/cargo#14739) - Deprecate `cargo verify-project` (rust-lang/cargo#14736)
What does this PR try to resolve?
Fixes #12554.
download_accessible
will now download platform-specified deps of artifact deps withtarget = ...
.It will also resolve the panic in
cargo tree -Z bindeps
in #10593 (comment), where:Essentially,
no entry found for key
was happening because for artifact deps with{.., target = <target>}
, transitive deps that specified their platform as<target>
were not downloaded. This is why adding--target all
tocargo tree -Z bindeps
made the bug dissapear.How should we test and review this PR?
Tests included in this PR should be enough.
Testartifact_dep::proc_macro_in_artifact_dep
still throws; this PR will be ready for review once the test does not panic.Additional Information
used
set needs to be target-awarer? @weihanglo