-
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
Add --filter-platform to cargo metadata
.
#7376
Conversation
r? @Eh2406 (rust_highfive has picked a reviewer for you, use r? to override) |
Well all the high-level comments I would have are covered by your questsions, so...
In terms of bikeshedding UI, I think this has some overlap with #5133 since presumably if that went through it'd be added to
I think
This is where the overlap with #5133 might be more apparent because if we were to implement that then the
I think this is roughly the same thing as the previous question, but I may be misunderstanding some nuance you're intending that I understand. In any case I do think that it's probably best to filter everything out as aggressively as possible in the ideal world, but having extra stuff in there in an initial implementation isn't the end of the world. |
I've update the PR with a rewrite where it filters the entire graph. I don't think avoid-dev-deps is what we really want here, since that doesn't really handle targets (in the resolver), and we do want dev-deps listed. I considered using I also removed the special This still needs documentation. Two quirks to note:
|
Sorry for the delay in review, but this seems reasonable to me! r=me when you're ready to land this. |
☔ The latest upstream changes (presumably #7536) made this pull request unmergeable. Please resolve the merge conflicts. |
This also removes the special `host` target.
7fbe752
to
ca02e03
Compare
Added some documentation. @bors r=alexcrichton |
📌 Commit ca02e03 has been approved by |
Add --filter-platform to `cargo metadata`. This adds the `--filter-platform` flag to `cargo metadata` to give users a way to filter the resolve information based on the target triple. This is just a prototype to open for feedback. Some things that need feedback: - Debate the name of the flag. - It uses "host" as a special triple to mean the local host. Does that make sense? It seemed a little weird. - Should it also filter the dependencies in the "packages" array? Right now it only does resolve. I'm on the fence. It probably should, but that would be an intrusive change to rewrite the Package values. - Should the filtering be transitive? That is, if a package is only reachable by a specific platform, should it be removed from the resolve "nodes"? What about "packages"? Currently it is included, with the intent that you walk the resolve starting with a root (like a workspace member). But it might be surprising to see "winapi" when you filter for a unix platform. This will need documentation before it is merged.
☀️ Test successful - checks-azure |
Update cargo, books. ## cargo 8 commits in 3ba5f27170db10af7a92f2b682e049397197b8fa..5da4b4d47963868d9878480197581ccbbdaece74 2019-10-22 15:05:18 +0000 to 2019-10-28 21:53:41 +0000 - Add --filter-platform to `cargo metadata`. (rust-lang/cargo#7376) - Fix `cargo fix` not showing colors. (rust-lang/cargo#7550) - Rephrase --manifest-path section (rust-lang/cargo#7409) - Add a note to discourage the use of -Zminimal-versions. (rust-lang/cargo#7549) - Fix profile override warning in a workspace. (rust-lang/cargo#7536) - Fix some tests failing on Windows nightly. (rust-lang/cargo#7534) - Show better error message for Windows abnormal termination. (rust-lang/cargo#7535) - Run `apt update` before `apt install` (rust-lang/cargo#7541) ## reference 8 commits in 5b9d2fc..4b21b64 2019-10-03 22:39:10 +0200 to 2019-10-27 22:33:11 +0100 - Document `const_constructor` feature (rust-lang/reference#677) - Add `non_exhaustive` to reference. (rust-lang/reference#609) - Re-add rust-docs component for lintcheck (rust-lang/reference#702) - group signed and unsigned integers in layout table (rust-lang/reference#700) - Fix layout table rendering (rust-lang/reference#699) - Add reference for attributes in function parameters (rust-lang/reference#657) - Update now that proc macros can expand to macro_rules. (rust-lang/reference#694) - Fix match in union example. (rust-lang/reference#684) ## book 8 commits in 9bb8b161963fcebc9d9ccd732ba26f42108016d5..28fa3d15b0bc67ea5e79eeff2198e4277fc61baf 2019-10-14 18:42:55 -0500 to 2019-10-29 07:16:09 -0500 - Update Ch19.1 on slice splitting (rust-lang/book#1999) - fixed inconsistent terminology regarding enums (rust-lang/book#2022) - Update ch15-03 code to match output. (rust-lang/book#2020) - Fixes rust-lang/book#2039 (rust-lang/book#2040) - Update ch15-03-drop.md (rust-lang/book#2049) - unit type value is also a value (rust-lang/book#2061) - Minor: remove an extraneous `.` (rust-lang/book#2059) - Clarifications and consistent use of quotation marks (rust-lang/book#1992) ## rust-by-example 4 commits in 0b111eaae36cc4b4997684be853882a59e2c7ca7..f3197ddf2abab9abdbc029def8164f4a748b0d91 2019-10-14 18:34:25 -0300 to 2019-10-29 10:17:40 -0300 - Fix typos (rust-lang/rust-by-example#1285) - Improve Cargo / Dependencies section (rust-lang/rust-by-example#1287) - Improve Cargo / Build Scripts section (rust-lang/rust-by-example#1288) - Make if_let exercise runnable (rust-lang/rust-by-example#1289)
This adds the
--filter-platform
flag tocargo metadata
to give users a way to filter the resolve information based on the target triple.This is just a prototype to open for feedback. Some things that need feedback:
This will need documentation before it is merged.