Skip to content

fix(tree): Make output more deterministic #15369

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

Merged
merged 1 commit into from
Mar 31, 2025
Merged

Conversation

epage
Copy link
Contributor

@epage epage commented Mar 31, 2025

What does this PR try to resolve?

When you have a dependency show up in multiple dependency tables, the order they are processed was not deterministic. Its hard to predict the exact effects this was having (e.g. for writing tests for this) but changing this made #15366 not reproduce anymore for me.

I'm going to consier this as fixing #15366 mostly because how difficult it is to debug with the non-determinism.
If someone can find a case where this fails, at least it should now always fail and it should be easier to determine why.

Fixes #15366

How should we test and review this PR?

Additional information

When you have a dependency show up in multiple dependency tables,
the order they are processed was not deterministic.
Its hard to predict the exact effects this was having (e.g. for writing
tests for this) but changing this made rust-lang#15366 not reproduce anymore for me.

I'm going to consier this as fixing rust-lang#15366 mostly because how difficult
it is to debug with the non-determinism.
If someone can find a case where this fails, at least it should now
always fail and it should be easier to determine why.

Fixes rust-lang#15366
@rustbot
Copy link
Collaborator

rustbot commented Mar 31, 2025

r? @ehuss

rustbot has assigned @ehuss.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added Command-tree S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 31, 2025
Copy link
Member

@weihanglo weihanglo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reasonable. Thanks!

@weihanglo weihanglo added this pull request to the merge queue Mar 31, 2025
Merged via the queue into rust-lang:master with commit 28f2cc5 Mar 31, 2025
21 checks passed
@epage epage deleted the tree branch March 31, 2025 18:03
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 6, 2025
Update cargo

17 commits in a6c604d1b8a2f2a8ff1f3ba6092f9fda42f4b7e9..0e93c5bf6a1d5ee7bc2af63d1afb16cd28793601
2025-03-26 18:11:00 +0000 to 2025-04-05 00:00:24 +0000
- chore(deps): bump openssl from 0.10.71 to 0.10.72 (rust-lang/cargo#15394)
- chore(ci): restore cargo-util semver check (rust-lang/cargo#15389)
- docs(changelog): polish changelog items (rust-lang/cargo#15379)
- chore(deps): update msrv (1 version) to v1.86 (rust-lang/cargo#15381)
- chore: add aarch64 linux runner (rust-lang/cargo#15077)
- Added `build_directory` field to cargo metadata output (rust-lang/cargo#15377)
- chore(deps): update rust crate rusqlite to 0.34.0 (rust-lang/cargo#15373)
- Prevent undeclared public network access (rust-lang/cargo#15368)
- rename the `author` field to be `authors` in book.toml (rust-lang/cargo#15362)
- move modules from kebab-case to snake_case (rust-lang/cargo#14439)
- chore: bump to 0.89.0; update changelog (rust-lang/cargo#15372)
- docs(unstable): update `-Zrustdoc-depinfo` tracking issue link (rust-lang/cargo#15371)
- fix(tree): Make output more deterministic (rust-lang/cargo#15369)
- feat: rustdoc depinfo rebuild detection via -Zrustdoc-depinfo (rust-lang/cargo#15359)
- Rename the gc config table (rust-lang/cargo#15367)
- Revert "Temporarily ignore cargo_test_doctest_xcompile_ignores" (rust-lang/cargo#15357)
- Don't canonicalize executable path in `cargo_exe` (rust-lang/cargo#15355)

r? ghost
@rustbot rustbot added this to the 1.88.0 milestone Apr 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Command-tree S-waiting-on-review Status: Awaiting review from the assignee but also interested parties.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

cargo tree --duplicates --target all non-deterministic output
4 participants