Make crate downloads process as a queue rather than a stack#16898
Merged
weihanglo merged 1 commit intorust-lang:masterfrom Apr 17, 2026
Merged
Make crate downloads process as a queue rather than a stack#16898weihanglo merged 1 commit intorust-lang:masterfrom
weihanglo merged 1 commit intorust-lang:masterfrom
Conversation
Collaborator
|
r? @epage rustbot has assigned @epage. Use Why was this reviewer chosen?The reviewer was selected based on:
|
The existing crate downloader popd the most recently completed download off when processing. This results in the downloads happening backwards to the order they were started. The change uses a queue instead and updates the test output
7d3ff00 to
501dd93
Compare
weihanglo
approved these changes
Apr 17, 2026
rust-bors Bot
pushed a commit
to rust-lang/rust
that referenced
this pull request
Apr 18, 2026
Update cargo submodule 26 commits in eb94155a9a60943bd7b1cb04abec42f5d0de6ddc..3bf1388b8823ec4eab622340036593381d8871aa 2026-04-09 13:10:20 +0000 to 2026-04-17 23:27:26 +0000 - Add global HTTP timeout tracking to http_async (rust-lang/cargo#16903) - feat(config): Stabilize `resolver.lockfile-path` config (rust-lang/cargo#16694) - chore(deps): update msrv (1 version) to v1.95 (rust-lang/cargo#16897) - fix: rebuild rustdoc json for different versions of a same crate (rust-lang/cargo#16773) - Add effective_url to http_async (rust-lang/cargo#16899) - Make crate downloads process as a queue rather than a stack (rust-lang/cargo#16898) - fix: sparse registry fetch progress reporting (rust-lang/cargo#16900) - chore: bump to 0.98.0; update changelog (rust-lang/cargo#16892) - docs(semver-check): update diagnostics to Rust 1.95 (rust-lang/cargo#16895) - docs(ref): Better highlight 'package --list' for include/exclude (rust-lang/cargo#16891) - docs: `include` doesnt apply gitignore from repo (rust-lang/cargo#16890) - fix: Update `bash` and `zsh` Autocompletion Documents to add `-m` (rust-lang/cargo#16888) - Add `-m` shorthand for `--manifest-path` (rust-lang/cargo#16858) - Fix a typo (rust-lang/cargo#16885) - Always take a shared lock on `.cargo-lock` (rust-lang/cargo#16886) - fix(toml): Teach users how to pin edition (rust-lang/cargo#16851) - fix: Prefer defined lint levels over default (rust-lang/cargo#16879) - chore(deps): bump rand from 0.10.0 to 0.10.1 (rust-lang/cargo#16883) - fix(lints): Ignore unused_crate_dependencies status (rust-lang/cargo#16877) - Copy cargo clean target-dir validation tests to clean_new_layout.rs (rust-lang/cargo#16878) - cargo clean: Add target directory validation (rust-lang/cargo#16712) - Docs: "api" in the configuration should not include a trailing slash (rust-lang/cargo#16869) - fix(core): use `closest_msg` to suggest similar member name for mistyped `-p` (rust-lang/cargo#16844) - chore(ci): Pin GitHub Actions to commit SHAs (rust-lang/cargo#16868) - chore(ci): Update `actions/checkout` from v5 to v6 (rust-lang/cargo#16867) - Add test for cargo install with github fastpath (rust-lang/cargo#16866) r? ghost
rust-bors Bot
pushed a commit
to rust-lang/rust
that referenced
this pull request
Apr 18, 2026
Update cargo submodule 28 commits in eb94155a9a60943bd7b1cb04abec42f5d0de6ddc..7ecf0285ebb408d596e4a8ac76a0980d8edb7005 2026-04-09 13:10:20 +0000 to 2026-04-18 15:34:11 +0000 - fix: use `portable-atomic` for 64-bit atomics (rust-lang/cargo#16906) - fix: rename incorrectly documented target-spec-json to json-target-sp… (rust-lang/cargo#16905) - Add global HTTP timeout tracking to http_async (rust-lang/cargo#16903) - feat(config): Stabilize `resolver.lockfile-path` config (rust-lang/cargo#16694) - chore(deps): update msrv (1 version) to v1.95 (rust-lang/cargo#16897) - fix: rebuild rustdoc json for different versions of a same crate (rust-lang/cargo#16773) - Add effective_url to http_async (rust-lang/cargo#16899) - Make crate downloads process as a queue rather than a stack (rust-lang/cargo#16898) - fix: sparse registry fetch progress reporting (rust-lang/cargo#16900) - chore: bump to 0.98.0; update changelog (rust-lang/cargo#16892) - docs(semver-check): update diagnostics to Rust 1.95 (rust-lang/cargo#16895) - docs(ref): Better highlight 'package --list' for include/exclude (rust-lang/cargo#16891) - docs: `include` doesnt apply gitignore from repo (rust-lang/cargo#16890) - fix: Update `bash` and `zsh` Autocompletion Documents to add `-m` (rust-lang/cargo#16888) - Add `-m` shorthand for `--manifest-path` (rust-lang/cargo#16858) - Fix a typo (rust-lang/cargo#16885) - Always take a shared lock on `.cargo-lock` (rust-lang/cargo#16886) - fix(toml): Teach users how to pin edition (rust-lang/cargo#16851) - fix: Prefer defined lint levels over default (rust-lang/cargo#16879) - chore(deps): bump rand from 0.10.0 to 0.10.1 (rust-lang/cargo#16883) - fix(lints): Ignore unused_crate_dependencies status (rust-lang/cargo#16877) - Copy cargo clean target-dir validation tests to clean_new_layout.rs (rust-lang/cargo#16878) - cargo clean: Add target directory validation (rust-lang/cargo#16712) - Docs: "api" in the configuration should not include a trailing slash (rust-lang/cargo#16869) - fix(core): use `closest_msg` to suggest similar member name for mistyped `-p` (rust-lang/cargo#16844) - chore(ci): Pin GitHub Actions to commit SHAs (rust-lang/cargo#16868) - chore(ci): Update `actions/checkout` from v5 to v6 (rust-lang/cargo#16867) - Add test for cargo install with github fastpath (rust-lang/cargo#16866)
rust-bors Bot
pushed a commit
to rust-lang/rust
that referenced
this pull request
Apr 19, 2026
Update cargo submodule 28 commits in eb94155a9a60943bd7b1cb04abec42f5d0de6ddc..7ecf0285ebb408d596e4a8ac76a0980d8edb7005 2026-04-09 13:10:20 +0000 to 2026-04-18 15:34:11 +0000 - fix: use `portable-atomic` for 64-bit atomics (rust-lang/cargo#16906) - fix: rename incorrectly documented target-spec-json to json-target-sp… (rust-lang/cargo#16905) - Add global HTTP timeout tracking to http_async (rust-lang/cargo#16903) - feat(config): Stabilize `resolver.lockfile-path` config (rust-lang/cargo#16694) - chore(deps): update msrv (1 version) to v1.95 (rust-lang/cargo#16897) - fix: rebuild rustdoc json for different versions of a same crate (rust-lang/cargo#16773) - Add effective_url to http_async (rust-lang/cargo#16899) - Make crate downloads process as a queue rather than a stack (rust-lang/cargo#16898) - fix: sparse registry fetch progress reporting (rust-lang/cargo#16900) - chore: bump to 0.98.0; update changelog (rust-lang/cargo#16892) - docs(semver-check): update diagnostics to Rust 1.95 (rust-lang/cargo#16895) - docs(ref): Better highlight 'package --list' for include/exclude (rust-lang/cargo#16891) - docs: `include` doesnt apply gitignore from repo (rust-lang/cargo#16890) - fix: Update `bash` and `zsh` Autocompletion Documents to add `-m` (rust-lang/cargo#16888) - Add `-m` shorthand for `--manifest-path` (rust-lang/cargo#16858) - Fix a typo (rust-lang/cargo#16885) - Always take a shared lock on `.cargo-lock` (rust-lang/cargo#16886) - fix(toml): Teach users how to pin edition (rust-lang/cargo#16851) - fix: Prefer defined lint levels over default (rust-lang/cargo#16879) - chore(deps): bump rand from 0.10.0 to 0.10.1 (rust-lang/cargo#16883) - fix(lints): Ignore unused_crate_dependencies status (rust-lang/cargo#16877) - Copy cargo clean target-dir validation tests to clean_new_layout.rs (rust-lang/cargo#16878) - cargo clean: Add target directory validation (rust-lang/cargo#16712) - Docs: "api" in the configuration should not include a trailing slash (rust-lang/cargo#16869) - fix(core): use `closest_msg` to suggest similar member name for mistyped `-p` (rust-lang/cargo#16844) - chore(ci): Pin GitHub Actions to commit SHAs (rust-lang/cargo#16868) - chore(ci): Update `actions/checkout` from v5 to v6 (rust-lang/cargo#16867) - Add test for cargo install with github fastpath (rust-lang/cargo#16866)
github-actions Bot
pushed a commit
to rust-lang/stdarch
that referenced
this pull request
Apr 20, 2026
Update cargo submodule 28 commits in eb94155a9a60943bd7b1cb04abec42f5d0de6ddc..7ecf0285ebb408d596e4a8ac76a0980d8edb7005 2026-04-09 13:10:20 +0000 to 2026-04-18 15:34:11 +0000 - fix: use `portable-atomic` for 64-bit atomics (rust-lang/cargo#16906) - fix: rename incorrectly documented target-spec-json to json-target-sp… (rust-lang/cargo#16905) - Add global HTTP timeout tracking to http_async (rust-lang/cargo#16903) - feat(config): Stabilize `resolver.lockfile-path` config (rust-lang/cargo#16694) - chore(deps): update msrv (1 version) to v1.95 (rust-lang/cargo#16897) - fix: rebuild rustdoc json for different versions of a same crate (rust-lang/cargo#16773) - Add effective_url to http_async (rust-lang/cargo#16899) - Make crate downloads process as a queue rather than a stack (rust-lang/cargo#16898) - fix: sparse registry fetch progress reporting (rust-lang/cargo#16900) - chore: bump to 0.98.0; update changelog (rust-lang/cargo#16892) - docs(semver-check): update diagnostics to Rust 1.95 (rust-lang/cargo#16895) - docs(ref): Better highlight 'package --list' for include/exclude (rust-lang/cargo#16891) - docs: `include` doesnt apply gitignore from repo (rust-lang/cargo#16890) - fix: Update `bash` and `zsh` Autocompletion Documents to add `-m` (rust-lang/cargo#16888) - Add `-m` shorthand for `--manifest-path` (rust-lang/cargo#16858) - Fix a typo (rust-lang/cargo#16885) - Always take a shared lock on `.cargo-lock` (rust-lang/cargo#16886) - fix(toml): Teach users how to pin edition (rust-lang/cargo#16851) - fix: Prefer defined lint levels over default (rust-lang/cargo#16879) - chore(deps): bump rand from 0.10.0 to 0.10.1 (rust-lang/cargo#16883) - fix(lints): Ignore unused_crate_dependencies status (rust-lang/cargo#16877) - Copy cargo clean target-dir validation tests to clean_new_layout.rs (rust-lang/cargo#16878) - cargo clean: Add target directory validation (rust-lang/cargo#16712) - Docs: "api" in the configuration should not include a trailing slash (rust-lang/cargo#16869) - fix(core): use `closest_msg` to suggest similar member name for mistyped `-p` (rust-lang/cargo#16844) - chore(ci): Pin GitHub Actions to commit SHAs (rust-lang/cargo#16868) - chore(ci): Update `actions/checkout` from v5 to v6 (rust-lang/cargo#16867) - Add test for cargo install with github fastpath (rust-lang/cargo#16866)
github-actions Bot
pushed a commit
to rust-lang/miri
that referenced
this pull request
Apr 20, 2026
Update cargo submodule 28 commits in eb94155a9a60943bd7b1cb04abec42f5d0de6ddc..7ecf0285ebb408d596e4a8ac76a0980d8edb7005 2026-04-09 13:10:20 +0000 to 2026-04-18 15:34:11 +0000 - fix: use `portable-atomic` for 64-bit atomics (rust-lang/cargo#16906) - fix: rename incorrectly documented target-spec-json to json-target-sp… (rust-lang/cargo#16905) - Add global HTTP timeout tracking to http_async (rust-lang/cargo#16903) - feat(config): Stabilize `resolver.lockfile-path` config (rust-lang/cargo#16694) - chore(deps): update msrv (1 version) to v1.95 (rust-lang/cargo#16897) - fix: rebuild rustdoc json for different versions of a same crate (rust-lang/cargo#16773) - Add effective_url to http_async (rust-lang/cargo#16899) - Make crate downloads process as a queue rather than a stack (rust-lang/cargo#16898) - fix: sparse registry fetch progress reporting (rust-lang/cargo#16900) - chore: bump to 0.98.0; update changelog (rust-lang/cargo#16892) - docs(semver-check): update diagnostics to Rust 1.95 (rust-lang/cargo#16895) - docs(ref): Better highlight 'package --list' for include/exclude (rust-lang/cargo#16891) - docs: `include` doesnt apply gitignore from repo (rust-lang/cargo#16890) - fix: Update `bash` and `zsh` Autocompletion Documents to add `-m` (rust-lang/cargo#16888) - Add `-m` shorthand for `--manifest-path` (rust-lang/cargo#16858) - Fix a typo (rust-lang/cargo#16885) - Always take a shared lock on `.cargo-lock` (rust-lang/cargo#16886) - fix(toml): Teach users how to pin edition (rust-lang/cargo#16851) - fix: Prefer defined lint levels over default (rust-lang/cargo#16879) - chore(deps): bump rand from 0.10.0 to 0.10.1 (rust-lang/cargo#16883) - fix(lints): Ignore unused_crate_dependencies status (rust-lang/cargo#16877) - Copy cargo clean target-dir validation tests to clean_new_layout.rs (rust-lang/cargo#16878) - cargo clean: Add target directory validation (rust-lang/cargo#16712) - Docs: "api" in the configuration should not include a trailing slash (rust-lang/cargo#16869) - fix(core): use `closest_msg` to suggest similar member name for mistyped `-p` (rust-lang/cargo#16844) - chore(ci): Pin GitHub Actions to commit SHAs (rust-lang/cargo#16868) - chore(ci): Update `actions/checkout` from v5 to v6 (rust-lang/cargo#16867) - Add test for cargo install with github fastpath (rust-lang/cargo#16866)
lnicola
pushed a commit
to lnicola/rust-analyzer
that referenced
this pull request
Apr 20, 2026
Update cargo submodule 28 commits in eb94155a9a60943bd7b1cb04abec42f5d0de6ddc..7ecf0285ebb408d596e4a8ac76a0980d8edb7005 2026-04-09 13:10:20 +0000 to 2026-04-18 15:34:11 +0000 - fix: use `portable-atomic` for 64-bit atomics (rust-lang/cargo#16906) - fix: rename incorrectly documented target-spec-json to json-target-sp… (rust-lang/cargo#16905) - Add global HTTP timeout tracking to http_async (rust-lang/cargo#16903) - feat(config): Stabilize `resolver.lockfile-path` config (rust-lang/cargo#16694) - chore(deps): update msrv (1 version) to v1.95 (rust-lang/cargo#16897) - fix: rebuild rustdoc json for different versions of a same crate (rust-lang/cargo#16773) - Add effective_url to http_async (rust-lang/cargo#16899) - Make crate downloads process as a queue rather than a stack (rust-lang/cargo#16898) - fix: sparse registry fetch progress reporting (rust-lang/cargo#16900) - chore: bump to 0.98.0; update changelog (rust-lang/cargo#16892) - docs(semver-check): update diagnostics to Rust 1.95 (rust-lang/cargo#16895) - docs(ref): Better highlight 'package --list' for include/exclude (rust-lang/cargo#16891) - docs: `include` doesnt apply gitignore from repo (rust-lang/cargo#16890) - fix: Update `bash` and `zsh` Autocompletion Documents to add `-m` (rust-lang/cargo#16888) - Add `-m` shorthand for `--manifest-path` (rust-lang/cargo#16858) - Fix a typo (rust-lang/cargo#16885) - Always take a shared lock on `.cargo-lock` (rust-lang/cargo#16886) - fix(toml): Teach users how to pin edition (rust-lang/cargo#16851) - fix: Prefer defined lint levels over default (rust-lang/cargo#16879) - chore(deps): bump rand from 0.10.0 to 0.10.1 (rust-lang/cargo#16883) - fix(lints): Ignore unused_crate_dependencies status (rust-lang/cargo#16877) - Copy cargo clean target-dir validation tests to clean_new_layout.rs (rust-lang/cargo#16878) - cargo clean: Add target directory validation (rust-lang/cargo#16712) - Docs: "api" in the configuration should not include a trailing slash (rust-lang/cargo#16869) - fix(core): use `closest_msg` to suggest similar member name for mistyped `-p` (rust-lang/cargo#16844) - chore(ci): Pin GitHub Actions to commit SHAs (rust-lang/cargo#16868) - chore(ci): Update `actions/checkout` from v5 to v6 (rust-lang/cargo#16867) - Add test for cargo install with github fastpath (rust-lang/cargo#16866)
pull Bot
pushed a commit
to AKJUS/cargo
that referenced
this pull request
Apr 21, 2026
This test was randomly failing because the order that cargo prints the completion of `d1` and `d2` is not deterministic. I suspect this is a result of rust-lang#16898 which can cause the parallel fetches to finish in different orders. This is fixed with `.unordered()` because the order these are printed isn't important.
pull Bot
pushed a commit
to AKJUS/cargo
that referenced
this pull request
Apr 21, 2026
…t-lang#16914) This test was randomly failing because the order that cargo prints the completion of `d1` and `d2` is not deterministic. I suspect this is a result of rust-lang#16898 which can cause the parallel fetches to finish in different orders. This is fixed with `.unordered()` because the order these are printed isn't important.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The existing crate downloader pops the most recently completed download off when processing completed download. This results in the downloads finishing backwards to the order they were started.
In practice, this only impacts when multiple crates finish at the same time, such as when downloading from
file:///URLs in the tests. Otherwise, the crates are processed in the order they finish downloading.Emulating this behavior when converting to
http_asyncis difficult, hence this change.cc #16845