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