From f104c6b0b69890be481d313f4cdd91a398329bff Mon Sep 17 00:00:00 2001 From: Chris Denton Date: Thu, 2 Jul 2026 14:46:07 +0000 Subject: [PATCH 1/3] Remove Windows special case from `can_run` While it is possible to run a 32-bit toolchain on a 64-bit host, it is strongly discouraged. If needed, the user can use `--force-non-host` to install it anyway. --- src/dist/mod.rs | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/src/dist/mod.rs b/src/dist/mod.rs index 7ae05ffd3f..d74afa014c 100644 --- a/src/dist/mod.rs +++ b/src/dist/mod.rs @@ -667,13 +667,8 @@ impl TargetTuple { let ret = if partial_self.os != partial_other.os { false } else if partial_self.os.as_deref() == Some("pc-windows") { - // Windows is a special case here: we can run gnu and msvc on the same system, - // x86_64 can run i686, and aarch64 can run i686 through emulation - (partial_self.arch == partial_other.arch) - || (partial_self.arch.as_deref() == Some("x86_64") - && partial_other.arch.as_deref() == Some("i686")) - || (partial_self.arch.as_deref() == Some("aarch64") - && partial_other.arch.as_deref() == Some("i686")) + // Windows is a special case here: we can run gnu and msvc on the same system. + partial_self.arch == partial_other.arch } else { // For other OSes, for now, we assume other toolchains won't run false @@ -1465,31 +1460,33 @@ mod tests { &["i686-unknown-linux-gnu"], ), ( - // On the other hand, 64 bit Windows + // On the other hand, Windows msvc "x86_64-pc-windows-msvc", - // is compatible with 32 bit windows, and even gnu + // is compatible with Windows gnu + &["x86_64-pc-windows-gnu"], + // But is not compatible with Linux &[ + "x86_64-unknown-linux-gnu", + // or 32-bit Windows "i686-pc-windows-msvc", - "x86_64-pc-windows-gnu", "i686-pc-windows-gnu", ], - // But is not compatible with Linux - &["x86_64-unknown-linux-gnu"], ), ( - // Indeed, 64bit windows with the gnu toolchain + // And the Windows gnu toolchain "x86_64-pc-windows-gnu", - // is compatible with the other windows platforms + // is compatible with Windows msvc + &["x86_64-pc-windows-msvc"], + // But is not compatible with Linux despite also being gnu &[ + "x86_64-unknown-linux-gnu", + // And is not compatible with 32-bit Windows "i686-pc-windows-msvc", - "x86_64-pc-windows-gnu", "i686-pc-windows-gnu", ], - // But is not compatible with Linux despite also being gnu - &["x86_64-unknown-linux-gnu"], ), ( - // However, 32bit Windows is not expected to be able to run + // 32bit Windows is not expected to be able to run // 64bit windows "i686-pc-windows-msvc", &["i686-pc-windows-gnu"], From 53bc42d84e9432304f6af334200dcbe4de6bba7b Mon Sep 17 00:00:00 2001 From: rami3l Date: Thu, 2 Jul 2026 22:58:53 +0200 Subject: [PATCH 2/3] docs: update `CHANGELOG` for v1.29.1 --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 182c57795a..e297880f61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,36 @@ # Changelog +## [1.29.1] - 2026-XX-YY + + + +### Detailed changes + +* use 'tuple' instead of 'triple' for env overrides by @tshepang in https://github.com/rust-lang/rustup/pull/4743 +* Avoid printing a warning about `settings.toml` on a fresh install by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4746 +* fix(rustup-init/sh): prevent passing `--default-host` twice by @rami3l in https://github.com/rust-lang/rustup/pull/4756 +* fix(cli/proxy-mode): stop enforcing `quiet: true` by @rami3l in https://github.com/rust-lang/rustup/pull/4762 +* Fix zsh completion showing all PATH entries for +toolchain arg by @simonhkswan in https://github.com/rust-lang/rustup/pull/4763 +* fix(dist/manifestation): use full toolchain name in `Update::unavailable_components()` by @rami3l in https://github.com/rust-lang/rustup/pull/4767 +* self\_update: show path to executable in case of updater failure by @djc in https://github.com/rust-lang/rustup/pull/4781 +* chore: Rename `Component::name_in_manifest` and `short_name_in_manifest` method to `name` and `short_name` by @Cloud0310 in https://github.com/rust-lang/rustup/pull/4778 +* Fix install message misalignment by @Cloud0310 in https://github.com/rust-lang/rustup/pull/4768 +* fix: Reduce flickering by using `set_move_cursor` by @ChrisDenton in https://github.com/rust-lang/rustup/pull/4786 +* Run a parallel pre-check before updating toolchains by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4752 +* Allow rustup component add to install multiple components in one update by @Inconnu08 in https://github.com/rust-lang/rustup/pull/4790 +* fix(dist/manifestation): fix log format when installing exactly 2 components by @rami3l in https://github.com/rust-lang/rustup/pull/4798 +* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4801 +* Use `cc-rs` to detect the default linker, instead of assuming `cc` by @jamesmunns in https://github.com/rust-lang/rustup/pull/4807 +* Make component removal best-effort and preserve single-error behavior by @Inconnu08 in https://github.com/rust-lang/rustup/pull/4797 +* Only show post-install instructions for currently installed shells by @ryankopf in https://github.com/rust-lang/rustup/pull/4806 +* docs(dev-guide): update release process with new backporting flow by @rami3l in https://github.com/rust-lang/rustup/pull/4805 +* test(dist/manifest): use the reordered fixture in `manifest_serialized_with_sorted_keys` by @cachebag in https://github.com/rust-lang/rustup/pull/4822 +* Improve error message for incomplete toolchains by @Inconnu08 in https://github.com/rust-lang/rustup/pull/4819 +* fix: rename partially "Triple" to "Tuple" to reflect the new terminology by @motorailgun in https://github.com/rust-lang/rustup/pull/4827 +* feat(cli/rustup-mode): warn about auto-installation in some subcommands by @rami3l in https://github.com/rust-lang/rustup/pull/4895 + + + ## [1.29.0] - 2026-03-05 This new release of rustup comes with significant changes. From 00dbe16d1efe56f5999c6be1eeb471aa16b59436 Mon Sep 17 00:00:00 2001 From: rami3l Date: Thu, 2 Jul 2026 23:04:00 +0200 Subject: [PATCH 3/3] dist(rustup-init/sh): update commit shasum in help string --- CHANGELOG.md | 43 ++++++++++++++++--- rustup-init.sh | 2 +- .../rustup_init_sh_help_flag.stdout.term.svg | 2 +- 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e297880f61..f6e6e0d7e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,40 @@ ## [1.29.1] - 2026-XX-YY - +This new patch release has brought some minor improvements and fixes over the previous one. + +The headlines of this release are: + +- Concurrency in certain `rustup` operations has been further improved: + - When running `rustup update`, rustup will first check for possible updates in parallel. [pr#4752] + - When running `rustup component add` with multiple components, they will be installed concurrently. [pr#4790] + +- Implicit installation of the active toolchain in `rustup-init` and `rustup` invocations has + been deprecated when deemed unnecessary and will now produce a warning. [pr#4840] + - Please see our + [blog post](https://blog.rust-lang.org/inside-rust/2026/07/03/rustup-update-1.30/#refining-the-implicit-installation-behavior) + for more details regarding this change. + +- Installing `i686-pc-windows-*` on `x86_64-pc-windows-*` hosts now requires `--force-non-host`. [pr#4935] + +- A bug has been fixed which might cause Windows installation to fail when using `rustup-init.sh`. [pr#4756] + +- "Target **triple**" has been renamed to "target **tuple**" across the project to reflect the + [new terminology](https://github.com/rust-lang/rust/pull/125579/changes/a26450cf81d67d68d3c6157579f8d968349129e7). + [pr#4743] [pr#4827] [pr#4834] + +In addition, rustup now officially supports `aarch64-pc-windows-gnullvm` as a host platform. [pr#4523] + +[1.29.1]: https://github.com/rust-lang/rustup/releases/tag/1.29.1 +[pr#4523]: https://github.com/rust-lang/rustup/pull/4523 +[pr#4743]: https://github.com/rust-lang/rustup/pull/4743 +[pr#4752]: https://github.com/rust-lang/rustup/pull/4752 +[pr#4756]: https://github.com/rust-lang/rustup/pull/4756 +[pr#4790]: https://github.com/rust-lang/rustup/pull/4790 +[pr#4827]: https://github.com/rust-lang/rustup/pull/4827 +[pr#4834]: https://github.com/rust-lang/rustup/pull/4834 +[pr#4840]: https://github.com/rust-lang/rustup/pull/4840 +[pr#4935]: https://github.com/rust-lang/rustup/pull/4935 ### Detailed changes @@ -19,17 +52,17 @@ * Run a parallel pre-check before updating toolchains by @FranciscoTGouveia in https://github.com/rust-lang/rustup/pull/4752 * Allow rustup component add to install multiple components in one update by @Inconnu08 in https://github.com/rust-lang/rustup/pull/4790 * fix(dist/manifestation): fix log format when installing exactly 2 components by @rami3l in https://github.com/rust-lang/rustup/pull/4798 -* chore(deps): lock file maintenance by @renovate[bot] in https://github.com/rust-lang/rustup/pull/4801 * Use `cc-rs` to detect the default linker, instead of assuming `cc` by @jamesmunns in https://github.com/rust-lang/rustup/pull/4807 * Make component removal best-effort and preserve single-error behavior by @Inconnu08 in https://github.com/rust-lang/rustup/pull/4797 * Only show post-install instructions for currently installed shells by @ryankopf in https://github.com/rust-lang/rustup/pull/4806 -* docs(dev-guide): update release process with new backporting flow by @rami3l in https://github.com/rust-lang/rustup/pull/4805 * test(dist/manifest): use the reordered fixture in `manifest_serialized_with_sorted_keys` by @cachebag in https://github.com/rust-lang/rustup/pull/4822 * Improve error message for incomplete toolchains by @Inconnu08 in https://github.com/rust-lang/rustup/pull/4819 * fix: rename partially "Triple" to "Tuple" to reflect the new terminology by @motorailgun in https://github.com/rust-lang/rustup/pull/4827 +* dist(release/1.29): backport patches, pt. 1 by @rami3l in https://github.com/rust-lang/rustup/pull/4867 * feat(cli/rustup-mode): warn about auto-installation in some subcommands by @rami3l in https://github.com/rust-lang/rustup/pull/4895 - - +* chore(deps): update `curl` by @rami3l in https://github.com/rust-lang/rustup/pull/4928 +* dist(release/1.29): backport patches, pt. 2 by @rami3l in https://github.com/rust-lang/rustup/pull/4927 +* dist(release/1.29): backport patches, pt. 3 by @rami3l in https://github.com/rust-lang/rustup/pull/4939 ## [1.29.0] - 2026-03-05 diff --git a/rustup-init.sh b/rustup-init.sh index d1e43f5378..c8865b107b 100755 --- a/rustup-init.sh +++ b/rustup-init.sh @@ -33,7 +33,7 @@ RUSTUP_QUIET=no # NOTICE: If you change anything here, please make the same changes in setup_mode.rs usage() { cat < - rustup-init 1.29.0 (d243d7d4e 2026-03-04) + rustup-init 1.29.0 (50cdda979 2026-07-02)