-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Make cargo metadata
output deterministic
#8489
Conversation
Uses BTreeMap instead of HashMap for the `cargo metadata` command. The change did not cause a measurable performance impact for running `cargo metadata` on `cargo` itself. Fixes rust-lang#8477
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @ehuss (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
Can you add a test that called |
…ave sorted order.
I modified the test framework to enforce order in Json arrays. I had to re-arrange the expected output in several tests such that it was sorted. |
@bors: r+ Looks good to me, thanks for this! |
📌 Commit 58869e5 has been approved by |
☀️ Test successful - checks-actions |
Update cargo 21 commits in 43cf77395cad5b79887b20b7cf19d418bbd703a9..aa6872140ab0fa10f641ab0b981d5330d419e927 2020-07-13 17:35:42 +0000 to 2020-07-23 13:46:27 +0000 - Update features set in CI. (rust-lang/cargo#8530) - Stabilize -Z crate-versions (rust-lang/cargo#8509) - Fix typo in docs (rust-lang/cargo#8529) - Remove unused CompileMode::all_modes (rust-lang/cargo#8526) - Mask out system core.autocrlf settings before resetting git repos (rust-lang/cargo#8523) - Flag git zlib errors as spurious errors (rust-lang/cargo#8520) - Fix the help display for the target-triple option (rust-lang/cargo#8515) - Check workspace member existence as dir. (rust-lang/cargo#8511) - Bump to 0.48.0, update changelog (rust-lang/cargo#8508) - Apply workspace.exclude to workspace.default-members. (rust-lang/cargo#8485) - Fix nightly tests for intra-doc links. (rust-lang/cargo#8528) - doc: Replace "regenerate" with "revoke" for API tokens (rust-lang/cargo#8510) - Add back Manifest::targets_mut (rust-lang/cargo#8494) - Build host dependencies with opt-level 0 by default (rust-lang/cargo#8500) - Fix freshness checks for build scripts on renamed dirs (rust-lang/cargo#8497) - Add a `-Zbuild-std-features` flag (rust-lang/cargo#8490) - clippy cleanups (rust-lang/cargo#8495) - Fix self-publish script. (rust-lang/cargo#8492) - Ensure `unstable.build-std` works like `-Zbuild-std` (rust-lang/cargo#8491) - Make `cargo metadata` output deterministic (rust-lang/cargo#8489) - Switch to github actions (rust-lang/cargo#8467)
Fix filter_platform to run on targets other than x86. The issue is that the `dependencies` array was hard-coded to be sorted by `[none, 'cfg(foobar)', 'wasm32-unknown-unknown', host_target]` where `host_target` is usually a target that starts with "x". However, running the test on a target that sorts less than `wasm32` causes the test to fail (such as `aarch64`). The order of arrays used to be ignored until #8489. The solution here is to just sort the expected order of dependencies. An alternate solution would be to extend `with_json` with more options on comparison (such as ignoring array order), but this seems simple enough. Fixes #9238
Uses BTreeMap instead of HashMap for the
cargo metadata
command, ensuring the output is sorted.The change did not cause a measurable performance impact for running
cargo metadata
oncargo
itself.Fixes #8477