|  | 
| 1 | 1 | # Changelog | 
| 2 | 2 | 
 | 
|  | 3 | +## [1.29.0] - Unreleased | 
|  | 4 | + | 
|  | 5 | +This new release of rustup comes with significant changes. | 
|  | 6 | + | 
|  | 7 | +The headline feature is better concurrency for certain operations, | 
|  | 8 | +implemented by @FranciscoTGouveia within the scope of the GSoC 2025 event: | 
|  | 9 | + | 
|  | 10 | +- `rustup check` will check for toolchain updates concurrently. [pr#4388] | 
|  | 11 | + | 
|  | 12 | +- `rustup update` and `rustup toolchain` subcommands will download toolchain | 
|  | 13 | +  components concurrently. [pr#4436]  | 
|  | 14 | + | 
|  | 15 | +  - You can use the `RUSTUP_CONCURRENT_DOWNLOADS` environment variable to | 
|  | 16 | +    adjust the number of concurrent downloads to better reflect the needs of | 
|  | 17 | +    your specific environment. [pr#4455] | 
|  | 18 | + | 
|  | 19 | +- `rustup` now uses `indicatif`-based progress bars for toolchain update | 
|  | 20 | +  checks and downloads. This provides not only a more async-friendly UI solution, | 
|  | 21 | +  but also a more consistent and visually appealing experience for various | 
|  | 22 | +  commands like `rustup check`, `rustup update`, and `rustup toolchain install`. | 
|  | 23 | +  [pr#4388] [pr#4426] | 
|  | 24 | + | 
|  | 25 | +rustup now officially supports the following host platforms: | 
|  | 26 | + | 
|  | 27 | +- `sparcv9-sun-solaris` [pr#4380] | 
|  | 28 | +- `x86_64-pc-solaris` [pr#4380] | 
|  | 29 | + | 
|  | 30 | +This release also comes with other quality-of-life improvements, to name a few: | 
|  | 31 | + | 
|  | 32 | +- When running rust-analyzer via a proxy, rustup will consider the | 
|  | 33 | +  `rust-analyzer` binary from `PATH` when the rustup-managed one is not found. | 
|  | 34 | +  [pr#4324] | 
|  | 35 | + | 
|  | 36 | +- Empty environment variables are now treated as unset. This should help with | 
|  | 37 | +  resetting configuration values to default when an override is present. | 
|  | 38 | +  [pr#4422] | 
|  | 39 | + | 
|  | 40 | +- Basic support for the `tcsh` shell has been added. [pr#4459] | 
|  | 41 | + | 
|  | 42 | +[1.29.0]: https://github.com/rust-lang/rustup/releases/tag/1.29.0 | 
|  | 43 | +[pr#4324]: https://github.com/rust-lang/rustup/pull/4324 | 
|  | 44 | +[pr#4380]: https://github.com/rust-lang/rustup/pull/4380 | 
|  | 45 | +[pr#4388]: https://github.com/rust-lang/rustup/pull/4388 | 
|  | 46 | +[pr#4422]: https://github.com/rust-lang/rustup/pull/4422 | 
|  | 47 | +[pr#4426]: https://github.com/rust-lang/rustup/pull/4426 | 
|  | 48 | +[pr#4436]: https://github.com/rust-lang/rustup/pull/4436 | 
|  | 49 | +[pr#4455]: https://github.com/rust-lang/rustup/pull/4455 | 
|  | 50 | +[pr#4459]: https://github.com/rust-lang/rustup/pull/4459 | 
|  | 51 | + | 
|  | 52 | +### Detailed changes | 
|  | 53 | + | 
|  | 54 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4321 | 
|  | 55 | +* docs(changelog): mirror changes from the release announcement, take 2 by @rami3l in https://github.com/rust-lang/rustup/pull/4322 | 
|  | 56 | +* deps: update aws-lc-rs to 1.13.1 by @ognevny in https://github.com/rust-lang/rustup/pull/4326 | 
|  | 57 | +* feat(toolchain): consider external `rust-analyzer` when calling a proxy by @rami3l in https://github.com/rust-lang/rustup/pull/4324 | 
|  | 58 | +* chore(deps): bump semver-compatible dependencies by @rami3l in https://github.com/rust-lang/rustup/pull/4329 | 
|  | 59 | +* toolchain: hoist binary name conditionals out of fallback functions by @djc in https://github.com/rust-lang/rustup/pull/4330 | 
|  | 60 | +* Fix cargo lints on Windows by @ChrisDenton in https://github.com/rust-lang/rustup/pull/4335 | 
|  | 61 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4341 | 
|  | 62 | +* Log versions during self updates by @djc in https://github.com/rust-lang/rustup/pull/4331 | 
|  | 63 | +* feat(custom-toolchains): `rustup show` now reporting installed targets by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4333 | 
|  | 64 | +* refactor(test): add new APIs for easier snapshot testing by @rami3l in https://github.com/rust-lang/rustup/pull/4334 | 
|  | 65 | +* style(test): clarify uses of `snapbox::str![]` by @rami3l in https://github.com/rust-lang/rustup/pull/4342 | 
|  | 66 | +* feat(self_update): add proxy sanity checks by @manyinsects in https://github.com/rust-lang/rustup/pull/4338 | 
|  | 67 | +* rustup check: add exit status and no-self-update logic by @tjkirch in https://github.com/rust-lang/rustup/pull/4340 | 
|  | 68 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4348 | 
|  | 69 | +* fix(deps): update rust crate opener to 0.8.0 by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4346 | 
|  | 70 | +* Skip manifest loading if there are no components/targets to check by @Kobzol in https://github.com/rust-lang/rustup/pull/4350 | 
|  | 71 | +* feat(custom-toolchains): targets and components are now reported for custom toolchains by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4347 | 
|  | 72 | +* Custom list tweaks by @djc in https://github.com/rust-lang/rustup/pull/4351 | 
|  | 73 | +* test(cli-self-upd): migrate to `.expect()` APIs by @rami3l in https://github.com/rust-lang/rustup/pull/4343 | 
|  | 74 | +* test(cli-paths): migrate to `.expect()` APIs by @rami3l in https://github.com/rust-lang/rustup/pull/4354 | 
|  | 75 | +* Unset RUSTUP_AUTO_INSTALL for tests by @ChrisDenton in https://github.com/rust-lang/rustup/pull/4360 | 
|  | 76 | +* test(cli-inst-interactive): migrate to `.expect()` APIs by @rami3l in https://github.com/rust-lang/rustup/pull/4353 | 
|  | 77 | +* Increase Windows main thread stack size to 2mb by @ChrisDenton in https://github.com/rust-lang/rustup/pull/4362 | 
|  | 78 | +* Clean up installed components/targets list tweaks by @djc in https://github.com/rust-lang/rustup/pull/4361 | 
|  | 79 | +* test(cli-exact): migrate to `.expect()` APIs by @rami3l in https://github.com/rust-lang/rustup/pull/4352 | 
|  | 80 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4357 | 
|  | 81 | +* Update platforms to 3.6 by @djc in https://github.com/rust-lang/rustup/pull/4364 | 
|  | 82 | +* Fix CI image names for downloading ARM and PowerPC artifacts by @Kobzol in https://github.com/rust-lang/rustup/pull/4368 | 
|  | 83 | +* test(cli-rustup): migrate to `.expect()` APIs by @rami3l in https://github.com/rust-lang/rustup/pull/4365 | 
|  | 84 | +* fix(deps): update opentelemetry by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4371 | 
|  | 85 | +* test(download): serialize tests with proxy-sensitive URLs by @cuviper in https://github.com/rust-lang/rustup/pull/4372 | 
|  | 86 | +* test(cli-misc): migrate to `.expect()` APIs by @rami3l in https://github.com/rust-lang/rustup/pull/4363 | 
|  | 87 | +* test(cli-v1): migrate to `.expect()` APIs by @rami3l in https://github.com/rust-lang/rustup/pull/4366 | 
|  | 88 | +* test(cli-v2): migrate to `.expect()` APIs by @rami3l in https://github.com/rust-lang/rustup/pull/4367 | 
|  | 89 | +* Upgrade to rustls-platform-verifier 0.6 by @djc in https://github.com/rust-lang/rustup/pull/4373 | 
|  | 90 | +* docs: mention the `Assert` APIs, add misc fixes by @rami3l in https://github.com/rust-lang/rustup/pull/4374 | 
|  | 91 | +* Update bash completions instructions and test by @rickhg12hs in https://github.com/rust-lang/rustup/pull/4378 | 
|  | 92 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4379 | 
|  | 93 | +* test: finish migration to `.expect()` APIs by @rami3l in https://github.com/rust-lang/rustup/pull/4376 | 
|  | 94 | +* add Solaris support by @psumbera in https://github.com/rust-lang/rustup/pull/4380 | 
|  | 95 | +* Fix rustup-init.sh cputype check for sparcv9 by @psumbera in https://github.com/rust-lang/rustup/pull/4382 | 
|  | 96 | +* docs(README): update CI status badge by @rami3l in https://github.com/rust-lang/rustup/pull/4383 | 
|  | 97 | +* Emphasize that `llvm-tools` dist component is not subject to compiler stability guarantees by @jieyouxu in https://github.com/rust-lang/rustup/pull/4384 | 
|  | 98 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4386 | 
|  | 99 | +* Upgrade to windows-sys 0.60 by @djc in https://github.com/rust-lang/rustup/pull/4387 | 
|  | 100 | +* Block broken snap curl by @konstin in https://github.com/rust-lang/rustup/pull/4389 | 
|  | 101 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4390 | 
|  | 102 | +* docs: replace Discord links by @rami3l in https://github.com/rust-lang/rustup/pull/4393 | 
|  | 103 | +* ci(run): install `codegen-cli` with `cargo-binstall` by @rami3l in https://github.com/rust-lang/rustup/pull/4394 | 
|  | 104 | +* feat(www): improve "copy" button style compatibility with Chromium by @rami3l in https://github.com/rust-lang/rustup/pull/4395 | 
|  | 105 | +* fix(ci/run): specify target triple for bindgen-cli installation by @rami3l in https://github.com/rust-lang/rustup/pull/4398 | 
|  | 106 | +* style: migrate the codebase to `let-chains` by @rami3l in https://github.com/rust-lang/rustup/pull/4397 | 
|  | 107 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4399 | 
|  | 108 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4402 | 
|  | 109 | +* Check for updates concurrently by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4388 | 
|  | 110 | +* Bump `toml` to 0.9 by @Kobzol in https://github.com/rust-lang/rustup/pull/4405 | 
|  | 111 | +* Limit the default number of I/O threads by @ChrisDenton in https://github.com/rust-lang/rustup/pull/4407 | 
|  | 112 | +* Introduce `RUSTUP_TERM_WIDTH` and `RUSTUP_TERM_PROGRESS_WHEN` by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4406 | 
|  | 113 | +* Simplify updates by @djc in https://github.com/rust-lang/rustup/pull/4404 | 
|  | 114 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4410 | 
|  | 115 | +* fix(ci/docker): update `CC` name for `powerpc64le-unknown-linux-gnu` by @rami3l in https://github.com/rust-lang/rustup/pull/4411 | 
|  | 116 | +* fix(toolchain/distributable): refine handling of known targets with no prebuilt artifacts by @rami3l in https://github.com/rust-lang/rustup/pull/4409 | 
|  | 117 | +* Set a maximum thread limit for the `remove_dir_all` crate by @ChrisDenton in https://github.com/rust-lang/rustup/pull/4413 | 
|  | 118 | +* opt(err): show renaming file error source by @Binlogo in https://github.com/rust-lang/rustup/pull/4414 | 
|  | 119 | +* Limit Tokio worker threads to I/O thread count by @djc in https://github.com/rust-lang/rustup/pull/4417 | 
|  | 120 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4418 | 
|  | 121 | +* docs(user-guide/environment-variables): update description of `RUSTUP_IO_THREADS` by @rami3l in https://github.com/rust-lang/rustup/pull/4427 | 
|  | 122 | +* ci(macos): run x64 workflows with Rosetta 2 by @rami3l in https://github.com/rust-lang/rustup/pull/4428 | 
|  | 123 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4430 | 
|  | 124 | +* Refactor the DownloadTracker in favor of `indicatif` by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4426 | 
|  | 125 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4437 | 
|  | 126 | +* test: detach snapshots from component installation order by @rami3l in https://github.com/rust-lang/rustup/pull/4435 | 
|  | 127 | +* feat: improve error message for `rustup which` by @Bogay in https://github.com/rust-lang/rustup/pull/4429 | 
|  | 128 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4441 | 
|  | 129 | +* Introduce `RUSTUP_DOWNLOAD_TIMEOUT` to override the download timeout by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4440 | 
|  | 130 | +* chore(deps): update actions/checkout action to v5 by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4443 | 
|  | 131 | +* Justify the presence of an `.unwrap()` on getting the content of an `OnceLock` by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4444 | 
|  | 132 | +* Concurrently download components of a toolchain by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4436 | 
|  | 133 | +* Delete unnecessary Download(Pop/Push)Unit notifications by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4447 | 
|  | 134 | +* ci(check): make installation of `taplo-cli` faster by @AudaciousAxiom in https://github.com/rust-lang/rustup/pull/4449 | 
|  | 135 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4451 | 
|  | 136 | +* Introduce `RUSTUP_CONCURRENT_DOWNLOADS` to control concurrency by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4450 | 
|  | 137 | +* chore(deps): disable default features for zstd by @klensy in https://github.com/rust-lang/rustup/pull/4453 | 
|  | 138 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4456 | 
|  | 139 | +* Introduce a `Semaphore` to fully honor `RUSTUP_CONCURRENT_DOWNLOADS` by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4455 | 
|  | 140 | +* Treat empty environment variables as unset by @djc in https://github.com/rust-lang/rustup/pull/4422 | 
|  | 141 | +* Report the real elapsed time of a download instead of the cumulative time by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4460 | 
|  | 142 | +* Replace non_empty_env_var() with Process::var_opt() by @djc in https://github.com/rust-lang/rustup/pull/4461 | 
|  | 143 | +* feat(config): add support for `tcsh` shell by @cachebag in https://github.com/rust-lang/rustup/pull/4459 | 
|  | 144 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4467 | 
|  | 145 | +* Correct `DownloadTracker` reporting on retries and failures by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4466 | 
|  | 146 | +* Remove hardcoded dependency to the master branch by @Kobzol in https://github.com/rust-lang/rustup/pull/4470 | 
|  | 147 | +* feat(install): warn if default linker (`cc`) is missing from PATH by @cachebag in https://github.com/rust-lang/rustup/pull/4469 | 
|  | 148 | +* chore(deps): update aws-actions/configure-aws-credentials action to v5 by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4472 | 
|  | 149 | +* fix(cli/rustup_mode): use ASCII-compatible spinner by @rami3l in https://github.com/rust-lang/rustup/pull/4473 | 
|  | 150 | +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4478 | 
|  | 151 | +* Upgrade windows crates by @djc in https://github.com/rust-lang/rustup/pull/4479 | 
|  | 152 | +* chore(deps/renovate): group version bumps for `windows-rs` crates by @rami3l in https://github.com/rust-lang/rustup/pull/4480 | 
|  | 153 | +* feat: adjust default concurrent download count by @rami3l in https://github.com/rust-lang/rustup/pull/4474 | 
|  | 154 | +* docs(README): link CI status badge to GitHub Actions panel by @rami3l in https://github.com/rust-lang/rustup/pull/4482 | 
|  | 155 | +* docs(dev-guide): mention the arg0 override trick on welcome page by @rami3l in https://github.com/rust-lang/rustup/pull/4484 | 
|  | 156 | +* chore(deps): lock file maintenance by @rami3l in https://github.com/rust-lang/rustup/pull/4486 | 
|  | 157 | +* Fix link in the bug reporting template by @LingMan in https://github.com/rust-lang/rustup/pull/4487 | 
|  | 158 | +* Remove unneeded paranthesees by @DasMatus in https://github.com/rust-lang/rustup/pull/4488 | 
|  | 159 | +* chore(deps): lock file maintenance by @rami3l in https://github.com/rust-lang/rustup/pull/4492 | 
|  | 160 | +* Further refactoring of self update logic by @djc in https://github.com/rust-lang/rustup/pull/4412 | 
|  | 161 | +* Simplify package unpacking code by @djc in https://github.com/rust-lang/rustup/pull/4490 | 
|  | 162 | +* refactor: remove redundant references by @rami3l in https://github.com/rust-lang/rustup/pull/4494 | 
|  | 163 | +* Simplify component downloads by @djc in https://github.com/rust-lang/rustup/pull/4489 | 
|  | 164 | +* Flatten notification enums by @djc in https://github.com/rust-lang/rustup/pull/4496 | 
|  | 165 | +* tests: deduplicate distribution installation tests by @djc in https://github.com/rust-lang/rustup/pull/4495 | 
|  | 166 | +* tests: use DistContext for dist::component tests by @djc in https://github.com/rust-lang/rustup/pull/4500 | 
|  | 167 | +* Start removing Notification variants by @djc in https://github.com/rust-lang/rustup/pull/4499 | 
|  | 168 | +* refactor: Remove unused ColorableTerminal::carriage_return by @epage in https://github.com/rust-lang/rustup/pull/4506 | 
|  | 169 | +* refactor: Switch logging to anstyle by @epage in https://github.com/rust-lang/rustup/pull/4507 | 
|  | 170 | +* Remove more Notification variants by @djc in https://github.com/rust-lang/rustup/pull/4501 | 
|  | 171 | +* ci: use macOS Intel runners by @djc in https://github.com/rust-lang/rustup/pull/4509 | 
|  | 172 | +* Upgrade opentelemetry dependencies by @djc in https://github.com/rust-lang/rustup/pull/4508 | 
|  | 173 | +* Move the default branch from `master` to `main` by @Kobzol in https://github.com/rust-lang/rustup/pull/4511 | 
|  | 174 | + | 
| 3 | 175 | ## [1.28.2] - 2025-05-05 | 
| 4 | 176 | 
 | 
| 5 | 177 | This new patch release has brought even more tiny fixes and improvements over the previous one. | 
|  | 
0 commit comments