|
1 | 1 | # Changelog
|
2 | 2 |
|
| 3 | +## [1.28.0] - ? |
| 4 | + |
| 5 | +The new release of rustup has been a long time in the making and comes with substantial changes. |
| 6 | + |
| 7 | +The following improvements might require changes to how you use rustup: |
| 8 | + |
| 9 | +- rustup will no longer automatically install the active toolchain if it is not installed. [pr#3985] |
| 10 | + |
| 11 | + * To ensure its installation, run `rustup toolchain install` with no arguments. |
| 12 | + * The following command installs the active toolchain both before and after this change: |
| 13 | + ```sh |
| 14 | + rustup show active-toolchain || rustup toolchain install |
| 15 | + # Or, on older versions of PowerShell: |
| 16 | + rustup show active-toolchain; if ($LASTEXITCODE -ne 0) { rustup toolchain install } |
| 17 | + ``` |
| 18 | +
|
| 19 | +- Installing a host-incompatible toolchain via `rustup toolchain install` or `rustup default` will |
| 20 | + now be rejected unless you explicitly add the `--force-non-host` flag. [pr#4028] |
| 21 | +
|
| 22 | +rustup now officially supports the following host platforms: |
| 23 | +
|
| 24 | + - `aarch64-pc-windows-msvc` [pr#3840] |
| 25 | + - `loongarch64-unknown-linux-musl` [pr#3921] |
| 26 | +
|
| 27 | +We have additionally made the following internal changes: |
| 28 | +
|
| 29 | +- The default download backend has been changed from reqwest with native-tls to reqwest with rustls. [pr#3798] |
| 30 | + - `RUSTUP_USE_CURL` and `RUSTUP_USE_RUSTLS` can still be used to change the download backend |
| 31 | + if the new backend causes issues. If issues do happen, please [let us know](https://github.com/rust-lang/rustup/issues/3806). |
| 32 | + - The default backend now uses rustls-platform-verifier to verify server certificates, taking |
| 33 | + advantage of the platform's certificate store on platforms that support it. [pr#3903] |
| 34 | +- When creating proxy links, rustup will now try symlinks first and fall back to hardlinks, |
| 35 | + as opposed to trying hardlinks first. [pr#4023] |
| 36 | +- A new `RUSTUP_LOG` environment variable can be used to control tracing-based logging in |
| 37 | + rustup binaries. See the [dev guide](https://rust-lang.github.io/rustup/dev-guide/tracing.html) for more details. [pr#3875] |
| 38 | +
|
| 39 | +Additionally, [Chris Denton](https://github.com/chrisdenton) joined the team. Chris has a lot of experience contributing to |
| 40 | +Windows-related parts of the Rust Project, expertise which was sorely lacking in existing team |
| 41 | +members, so we're happy to have him on board to help address Windows-specific issues. |
| 42 | +
|
| 43 | +### Detailed changes |
| 44 | +
|
| 45 | +* Replace remaining `winapi` usage with `windows-sys` by @kennykerr in https://github.com/rust-lang/rustup/pull/3802 |
| 46 | +* docs(dev-guide): remove “pushing to master” in the release process by @rami3l in https://github.com/rust-lang/rustup/pull/3789 |
| 47 | +* refactor(download): use `DownloadCallBack` in `download_with_backend()` by @rami3l in https://github.com/rust-lang/rustup/pull/3795 |
| 48 | +* Update MSVC requirements to VS 2017 to match Rust repo by @dpaoliello in https://github.com/rust-lang/rustup/pull/3799 |
| 49 | +* feat(download-backend)!: make `reqwest/rustls` the new default by @rami3l in https://github.com/rust-lang/rustup/pull/3798 |
| 50 | +* fix(ci/freebsd): fix `invalid peer certificate: UnknownIssuer` by @rami3l in https://github.com/rust-lang/rustup/pull/3810 |
| 51 | +* fix(filesource): make some constructs only available via the `test` feature by @rami3l in https://github.com/rust-lang/rustup/pull/3811 |
| 52 | +* Reduce code duplication for show commands by @djc in https://github.com/rust-lang/rustup/pull/3813 |
| 53 | +* refactor(cli): rewrite `rustup-init` with `clap_derive` by @rami3l in https://github.com/rust-lang/rustup/pull/3814 |
| 54 | +* Make `rustup show` output info in a more logical order by @majaha in https://github.com/rust-lang/rustup/pull/3225 |
| 55 | +* feat(download): reflect the download/TLS backends in the user agent by @rami3l in https://github.com/rust-lang/rustup/pull/3815 |
| 56 | +* fix(rustup-init): fix typo in `rustup-init[.sh]` args by @rami3l in https://github.com/rust-lang/rustup/pull/3818 |
| 57 | +* refactor(cli): rewrite `rustup` with `clap_derive` by @rami3l in https://github.com/rust-lang/rustup/pull/3596 |
| 58 | +* Stop showing ETA after download is complete by @djc in https://github.com/rust-lang/rustup/pull/3827 |
| 59 | +* Fix ETA display after regression by @djc in https://github.com/rust-lang/rustup/pull/3829 |
| 60 | +* refactor(filesource): replace repetitive `#[cfg()]` usages with a new `mod` by @rami3l in https://github.com/rust-lang/rustup/pull/3833 |
| 61 | +* Tweaks from derived clap parser review by @djc in https://github.com/rust-lang/rustup/pull/3834 |
| 62 | +* fix(deps): update rust crate pulldown-cmark to 0.11 by @rami3l in https://github.com/rust-lang/rustup/pull/3838 |
| 63 | +* fix(deps): update rust crate itertools to 0.13 by @rami3l in https://github.com/rust-lang/rustup/pull/3839 |
| 64 | +* ci(macos): use `macos-latest` instead of `macos-14` by @rami3l in https://github.com/rust-lang/rustup/pull/3842 |
| 65 | +* Re-enable Ring support on Windows Arm64 by @Alovchin91 in https://github.com/rust-lang/rustup/pull/3845 |
| 66 | +* Switch from sync to a tokio runtime by @rbtcollins in https://github.com/rust-lang/rustup/pull/3367 |
| 67 | +* ci(windows): fix CI failure on `x86_64-pc-windows-gnu` by @rami3l in https://github.com/rust-lang/rustup/pull/3849 |
| 68 | +* consistently add context with file path when parsing fails by @Skgland in https://github.com/rust-lang/rustup/pull/3853 |
| 69 | +* refactor: restrict `run_future()` usages to tests by @rami3l in https://github.com/rust-lang/rustup/pull/3856 |
| 70 | +* feat: support for parsing beta versions with tags in the toolchain by @roife in https://github.com/rust-lang/rustup/pull/3858 |
| 71 | +* fix(download): work around `hyper` hang issue by adjusting `reqwest` config by @rami3l in https://github.com/rust-lang/rustup/pull/3855 |
| 72 | +* Simplify process interface by @djc in https://github.com/rust-lang/rustup/pull/3764 |
| 73 | +* Add Windows Arm64 to Other Installation Methods by @Alovchin91 in https://github.com/rust-lang/rustup/pull/3854 |
| 74 | +* Store current_dir in Cfg by @djc in https://github.com/rust-lang/rustup/pull/3859 |
| 75 | +* Finalise Rustup Windows Arm64 support by @Alovchin91 in https://github.com/rust-lang/rustup/pull/3840 |
| 76 | +* Refactoring around use of `Process` by @djc in https://github.com/rust-lang/rustup/pull/3860 |
| 77 | +* feat(cli): add `--quiet` to `rustup toolchain list` and friends by @rami3l in https://github.com/rust-lang/rustup/pull/3862 |
| 78 | +* fix(dist/triple): ensure `dist::triple::known` is up to date with `platforms` by @rami3l in https://github.com/rust-lang/rustup/pull/3841 |
| 79 | +* Simplify notification handling setup by @djc in https://github.com/rust-lang/rustup/pull/3863 |
| 80 | +* Use serde to encode/decode various TOML formats by @djc in https://github.com/rust-lang/rustup/pull/3864 |
| 81 | +* refactor(ci/run): use more `target_cargo()` in `run.bash` by @rami3l in https://github.com/rust-lang/rustup/pull/3867 |
| 82 | +* Fix misleading "uninstalled toolchain" notification by @scimas in https://github.com/rust-lang/rustup/pull/3869 |
| 83 | +* Small refactoring tweaks to improve further changes by @djc in https://github.com/rust-lang/rustup/pull/3872 |
| 84 | +* refactor(test): execute all `#[rustup_macros::unit_test]`s within a `tokio` context by @rami3l in https://github.com/rust-lang/rustup/pull/3868 |
| 85 | +* chore(dist/features): ship `tracing` and friends by default by @rami3l in https://github.com/rust-lang/rustup/pull/3803 |
| 86 | +* Simplify installation code by @djc in https://github.com/rust-lang/rustup/pull/3865 |
| 87 | +* Let argument parser handle enum conversions by @djc in https://github.com/rust-lang/rustup/pull/3874 |
| 88 | +* Pass Process around explicitly by @djc in https://github.com/rust-lang/rustup/pull/3871 |
| 89 | +* fix(log): use `RUSTUP_LOG` for internal `tracing` instead of `RUST_LOG` by @rami3l in https://github.com/rust-lang/rustup/pull/3876 |
| 90 | +* Process cleanup by @djc in https://github.com/rust-lang/rustup/pull/3877 |
| 91 | +* Use tracing macros directly by @djc in https://github.com/rust-lang/rustup/pull/3878 |
| 92 | +* Fix the `TODO` in `src\toolchain\toolchain.rs` by @InfyniteHeap in https://github.com/rust-lang/rustup/pull/3881 |
| 93 | +* refactor(dist): hoist `dist::dist` into `dist` by @rami3l in https://github.com/rust-lang/rustup/pull/3882 |
| 94 | +* Simplify toolchain construction by @djc in https://github.com/rust-lang/rustup/pull/3880 |
| 95 | +* Remove unused code by @djc in https://github.com/rust-lang/rustup/pull/3886 |
| 96 | +* refactor(log): rename `NotificationLevel` variants to align with `tracing::Level` by @rami3l in https://github.com/rust-lang/rustup/pull/3890 |
| 97 | +* Refactor platform-dependent code in self_update by @djc in https://github.com/rust-lang/rustup/pull/3887 |
| 98 | +* download: inline errors, rename TLS backend by @djc in https://github.com/rust-lang/rustup/pull/3888 |
| 99 | +* fix(dist/linux): handle the possible unavailability of `/proc` in `rustup-init.sh` by @rami3l in https://github.com/rust-lang/rustup/pull/3800 |
| 100 | +* test(clitools): revive `run_inprocess()` by @rami3l in https://github.com/rust-lang/rustup/pull/3891 |
| 101 | +* Extract types by @djc in https://github.com/rust-lang/rustup/pull/3766 |
| 102 | +* refactor(toolchain/names): replace `toolchain_sort()` with `ToolchainName`'s `Ord` instance by @rami3l in https://github.com/rust-lang/rustup/pull/3892 |
| 103 | +* ci(all-features): add `-D warnings` to `cargo check-all-features` by @rami3l in https://github.com/rust-lang/rustup/pull/3894 |
| 104 | +* fix(dist): throw an error when a `PartialVersion` string doesn't start with an ASCII digit by @rami3l in https://github.com/rust-lang/rustup/pull/3895 |
| 105 | +* docs(dev-guide/tracing): mention `RUSTUP_LOG` and console-based tracing by @rami3l in https://github.com/rust-lang/rustup/pull/3879 |
| 106 | +* Port tests to CliTestContext by @djc in https://github.com/rust-lang/rustup/pull/3893 |
| 107 | +* Add missing period in warning while checking existing Rust installations by @Uaitt in https://github.com/rust-lang/rustup/pull/3899 |
| 108 | +* fix(rustup-mode): improve `clap` error format by @rami3l in https://github.com/rust-lang/rustup/pull/3906 |
| 109 | +* ci(windows): run `cargo all-features` by @rami3l in https://github.com/rust-lang/rustup/pull/3904 |
| 110 | +* feat(download/rustls): use `rustls-platform-verifier` by @rami3l in https://github.com/rust-lang/rustup/pull/3903 |
| 111 | +* Disable automatic self updates in CI environments by @djc in https://github.com/rust-lang/rustup/pull/3907 |
| 112 | +* feat: add hint to run `rustup self` when err desc is `self` by @Xerxes-2 in https://github.com/rust-lang/rustup/pull/3901 |
| 113 | +* test(manifestation): replace `run_future()` with `TestContext` by @rami3l in https://github.com/rust-lang/rustup/pull/3915 |
| 114 | +* implements quiet flag in `rustup-init.sh` by @vic1707 in https://github.com/rust-lang/rustup/pull/3910 |
| 115 | +* feat(rustup-init): set log level to `WARN` on `-q` if `RUSTUP_LOG` is unset by @rami3l in https://github.com/rust-lang/rustup/pull/3911 |
| 116 | +* fix(download): fix build error with `--no-default-features --features=curl-backend` by @rami3l in https://github.com/rust-lang/rustup/pull/3922 |
| 117 | +* Add loongarch64-unknown-linux-musl support by @heiher in https://github.com/rust-lang/rustup/pull/3921 |
| 118 | +* feat(cli): warn when removing the default/active toolchain by @rami3l in https://github.com/rust-lang/rustup/pull/3924 |
| 119 | +* Clean up usage of if_not_empty() by @djc in https://github.com/rust-lang/rustup/pull/3925 |
| 120 | +* feat(dist): refine suggestions regarding manifest checksum mismatches by @rami3l in https://github.com/rust-lang/rustup/pull/3923 |
| 121 | +* Upload Rustup build artifacts to new S3 bucket by @jdno in https://github.com/rust-lang/rustup/pull/3909 |
| 122 | +* Grant GitHub Actions workflows access to OIDC token by @jdno in https://github.com/rust-lang/rustup/pull/3930 |
| 123 | +* Prepare deployment on master branch by @jdno in https://github.com/rust-lang/rustup/pull/3931 |
| 124 | +* Fix uploading of Windows build artifacts by @jdno in https://github.com/rust-lang/rustup/pull/3933 |
| 125 | +* Upload Windows artifacts into correct subdirectory by @jdno in https://github.com/rust-lang/rustup/pull/3934 |
| 126 | +* feat(log): unhide `tracing::instrument` from behind `feature = "otel"` by @rami3l in https://github.com/rust-lang/rustup/pull/3873 |
| 127 | +* Fix home_dir() and current_dir() regression by @djc in https://github.com/rust-lang/rustup/pull/3938 |
| 128 | +* Add help message for missing toolchain by @jtr860830 in https://github.com/rust-lang/rustup/pull/3939 |
| 129 | +* refactor: clean up platform-specific logic by @rami3l in https://github.com/rust-lang/rustup/pull/3941 |
| 130 | +* style: reformat all TOML files with `taplo` by @rami3l in https://github.com/rust-lang/rustup/pull/3942 |
| 131 | +* fix(rustup-mode)!: don't install toolchain on `rustup --version` by @rami3l in https://github.com/rust-lang/rustup/pull/3948 |
| 132 | +* fix(rustup-mode): return `ExitCode(1)` when `update()` fails by @rami3l in https://github.com/rust-lang/rustup/pull/3952 |
| 133 | +* fix(utils): make `ExitCode` `#[must_use]` by @rami3l in https://github.com/rust-lang/rustup/pull/3954 |
| 134 | +* build(windows): fix typo in `build.rs` by @rami3l in https://github.com/rust-lang/rustup/pull/3955 |
| 135 | +* Upgrade to opentelemetry 0.24 by @djc in https://github.com/rust-lang/rustup/pull/3959 |
| 136 | +* Bump fs_at to 0.2.1 by @djc in https://github.com/rust-lang/rustup/pull/3965 |
| 137 | +* docs(user-guide): use `brew install rustup` instead of `rustup-init` by @rami3l in https://github.com/rust-lang/rustup/pull/3963 |
| 138 | +* docs(dev-guide): add guideline for atomic commits to the developer guide by @jtr860830 in https://github.com/rust-lang/rustup/pull/3969 |
| 139 | +* Remove `once_cell` dependency and use `LazyLock` instead by @InfyniteHeap in https://github.com/rust-lang/rustup/pull/3971 |
| 140 | +* docs(dev-guide): update `coding-standards` to reflect recent API changes. by @rami3l in https://github.com/rust-lang/rustup/pull/3974 |
| 141 | +* fix: fix unreachable code lints on Android by @rami3l in https://github.com/rust-lang/rustup/pull/3975 |
| 142 | +* Upgrade windows-sys to 0.59 by @djc in https://github.com/rust-lang/rustup/pull/3976 |
| 143 | +* style(taplo): enable `reorder_keys` for `*dependencies` in `Cargo.toml` by @rami3l in https://github.com/rust-lang/rustup/pull/3977 |
| 144 | +* feat(download/rustls): use `aws-lc` instead of `ring` by @rami3l in https://github.com/rust-lang/rustup/pull/3898 |
| 145 | +* ci(run): accelerate workflows by @rami3l in https://github.com/rust-lang/rustup/pull/3978 |
| 146 | +* ci(freebsd): fix build failure related to `aws-lc` by @rami3l in https://github.com/rust-lang/rustup/pull/3979 |
| 147 | +* fix(config): warn if host is incompatible with the toolchain in `rustup default` by @rami3l in https://github.com/rust-lang/rustup/pull/3980 |
| 148 | +* feat(rustup-mode): install the active toolchain by default on `rustup toolchain install` by @rami3l in https://github.com/rust-lang/rustup/pull/3983 |
| 149 | +* feat(cli)!: remove implicit toolchain installation by @rami3l in https://github.com/rust-lang/rustup/pull/3985 |
| 150 | +* ci(macos): install `awscli` from `brew` by @rami3l in https://github.com/rust-lang/rustup/pull/3989 |
| 151 | +* fix(manifest): consider possible renames in `Component::try_new()` by @rami3l in https://github.com/rust-lang/rustup/pull/3991 |
| 152 | +* Upgrade pulldown-cmark to 0.12 by @djc in https://github.com/rust-lang/rustup/pull/3999 |
| 153 | +* feat(dist): add notes for `stable` and `beta` in `components_missing_msg()` by @rami3l in https://github.com/rust-lang/rustup/pull/3920 |
| 154 | +* Allow `rustup doc` to search for unions by @taylordotfish in https://github.com/rust-lang/rustup/pull/4004 |
| 155 | +* refactor(config)!: simplify logic by @rami3l in https://github.com/rust-lang/rustup/pull/3986 |
| 156 | +* feat(cli)!: set log level to `INFO`/`DEBUG` on `--quiet`/`--verbose` if `RUSTUP_LOG` is unset by @rami3l in https://github.com/rust-lang/rustup/pull/3987 |
| 157 | +* Apply clippy suggestions from 1.81 by @djc in https://github.com/rust-lang/rustup/pull/4015 |
| 158 | +* Update semver-compatible dependencies, except openssl-src by @djc in https://github.com/rust-lang/rustup/pull/4021 |
| 159 | +* Try symlinking proxies first, falling back to hardlinking if that fails by @ChrisDenton in https://github.com/rust-lang/rustup/pull/4023 |
| 160 | +* Note that selecting VS lang packs is optional by @ChrisDenton in https://github.com/rust-lang/rustup/pull/4025 |
| 161 | +* docs(README): Point out where to find nightly/master docs. by @LunarLambda in https://github.com/rust-lang/rustup/pull/4026 |
| 162 | +* refactor(cli/common)!: deny installing a host-incompatible toolchain w/o `--force-non-host` by @rami3l in https://github.com/rust-lang/rustup/pull/4028 |
| 163 | +* Update semver-compatible dependencies by @djc in https://github.com/rust-lang/rustup/pull/4031 |
| 164 | +* Update remove_dir_all by @ChrisDenton in https://github.com/rust-lang/rustup/pull/4032 |
| 165 | +* Replace `winreg` with `windows-registry` by @InfyniteHeap in https://github.com/rust-lang/rustup/pull/3896 |
| 166 | +* Remove unnecessary methods by @InfyniteHeap in https://github.com/rust-lang/rustup/pull/4034 |
| 167 | +* tests: rust-toolchain + profile in settings by @lucacasonato in https://github.com/rust-lang/rustup/pull/4040 |
| 168 | +* Update semver-compatible dependencies by @djc in https://github.com/rust-lang/rustup/pull/4044 |
| 169 | +* fix(rustup-init/sh): fix incorrect TLS warning with curl v8.10 by @rami3l in https://github.com/rust-lang/rustup/pull/4046 |
| 170 | +* Update semver-compatible dependencies, except openssl-src by @djc in https://github.com/rust-lang/rustup/pull/4056 |
| 171 | +* fix(config): don't show toolchain names from `rust-toolchain.toml` in error message by @rami3l in https://github.com/rust-lang/rustup/pull/4060 |
| 172 | +* chore: use more workspace-wide configurations by @rami3l in https://github.com/rust-lang/rustup/pull/4061 |
| 173 | +* refactor(diskio): replace `eprintln!()` with `debug!()` by @rami3l in https://github.com/rust-lang/rustup/pull/4063 |
| 174 | +* feat(rustup-init): detect and warn about existing `settings.toml` by @rami3l in https://github.com/rust-lang/rustup/pull/4064 |
| 175 | +* refactor(utils): hoist `utils::utils` into `utils` by @rami3l in https://github.com/rust-lang/rustup/pull/4065 |
| 176 | +* fix: add powerpc64 and s390x to known target_arch values for tests by @decathorpe in https://github.com/rust-lang/rustup/pull/4067 |
| 177 | +* feat(cli/rustup-mode): support more books in `rustup doc` by @rami3l in https://github.com/rust-lang/rustup/pull/4071 |
| 178 | +* docs: update channel toolchain syntax by @kyle-leonhard in https://github.com/rust-lang/rustup/pull/4074 |
| 179 | +* fix(cli/rustup-mode): remove `.num_args()` when `.value_delimiter(',')` is present by @rami3l in https://github.com/rust-lang/rustup/pull/4076 |
| 180 | +
|
| 181 | +[pr#3985]: https://github.com/rust-lang/rustup/pull/3985 |
| 182 | +[pr#4028]: https://github.com/rust-lang/rustup/pull/4028 |
| 183 | +[pr#3840]: https://github.com/rust-lang/rustup/pull/3840 |
| 184 | +[pr#3921]: https://github.com/rust-lang/rustup/pull/3921 |
| 185 | +[pr#3798]: https://github.com/rust-lang/rustup/pull/3798 |
| 186 | +[pr#3903]: https://github.com/rust-lang/rustup/pull/3903 |
| 187 | +[pr#4023]: https://github.com/rust-lang/rustup/pull/4023 |
| 188 | +[pr#3875]: https://github.com/rust-lang/rustup/pull/3875 |
| 189 | +
|
3 | 190 | ## [1.27.1] - 2024-04-14
|
4 | 191 |
|
5 | 192 | This new Rustup release involves some minor bug fixes.
|
@@ -85,7 +272,7 @@ Finally, the project seems to have attracted a total of 23 new contributors with
|
85 | 272 |
|
86 | 273 | ### Added
|
87 | 274 |
|
88 |
| -- Add basic support for `fish` shell [pr#3108] |
| 275 | +- Add basic support for `fish` shell [pr#3108] |
89 | 276 | - Add the `RUSTUP_TERM_COLOR` environment variable to force the use of colored output [pr#3435]
|
90 | 277 | - Improve `rustup-init.sh`'s compatibility with `ksh` and `zsh` [pr#3475]
|
91 | 278 | - Add a warning when running under Rosetta 2 [pr#3068]
|
|
0 commit comments