You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The API of a command line tool like rustup—particularly one that like rustup does not publish a programming API—just is its command line interface. The 1.28 release changed the behavior of rustup <command> not to install the relevant toolchain (#3985).
Note
To be extra clear: This is a reasonable and well-motivated change, and I support it! However, the details of the rollout matter very much.
This is a breaking change, and as such should not be rolled out as part of a minor release, where it is likely going to cause a non-trivial amount of churn as people work to update it.
I strongly suggest the following course of action:
Yank 1.28.0.
Revert the change.
Publish the reversion as 1.28.1.
If you are indeed committed to publishing this and doing so urgently, go ahead and do so as a new 2.0 release. If you don’t want to do a 2.0 release, that’s perfectly fine, but you should then not release this breaking change.
Bonus: I would strongly suggest finding a mechanic for getting more feedback on this kind of change before rolling it out in the future. I’m pretty plugged into the Rust community and ecosystem, and I had no idea this was even being considered, and if I had, I would have noted that it was (a) a good idea in many ways but also (b) needed to be a breaking release, with the concomittant considerations of “do we want to do a breaking release?” and “do we want to do a breaking release now?” that would naturally entail.
Rust’s commitment to stability and clear use of SemVer should absolutely apply to its core tools as well!
The text was updated successfully, but these errors were encountered:
chriskrycho
changed the title
Breaking change in 1.28: consider yanking and releasing a 2.0 if you want this
Breaking change in 1.28: consider yanking and releasing a 2.0?
Mar 3, 2025
chriskrycho
changed the title
Breaking change in 1.28: consider yanking and releasing a 2.0?
Breaking change in 1.28: consider yanking and releasing as 2.0?
Mar 3, 2025
Note that every CI that installs rustup via curl sh.rustup.rs | sh is auto-enrolled into the backward-incompatible change in current 1.28.0, and thus broken. So reintroducing it in 2.0 won't help if that URL then starts pulling in 2.0, the URL will also need to change to sh2.rustup.rs or something.
Agreed, a breaking change as widespread as this would ideally be its own major version bump and new URL to cURL from, to prevent breakage in existing CI workflows that depend on rust-toolchain.toml being pulled in automatically.
The API of a command line tool like rustup—particularly one that like rustup does not publish a programming API—just is its command line interface. The 1.28 release changed the behavior of
rustup <command>
not to install the relevant toolchain (#3985).Note
To be extra clear: This is a reasonable and well-motivated change, and I support it! However, the details of the rollout matter very much.
This is a breaking change, and as such should not be rolled out as part of a minor release, where it is likely going to cause a non-trivial amount of churn as people work to update it.
I strongly suggest the following course of action:
Yank 1.28.0.
Revert the change.
Publish the reversion as 1.28.1.
If you are indeed committed to publishing this and doing so urgently, go ahead and do so as a new 2.0 release. If you don’t want to do a 2.0 release, that’s perfectly fine, but you should then not release this breaking change.
Bonus: I would strongly suggest finding a mechanic for getting more feedback on this kind of change before rolling it out in the future. I’m pretty plugged into the Rust community and ecosystem, and I had no idea this was even being considered, and if I had, I would have noted that it was (a) a good idea in many ways but also (b) needed to be a breaking release, with the concomittant considerations of “do we want to do a breaking release?” and “do we want to do a breaking release now?” that would naturally entail.
Rust’s commitment to stability and clear use of SemVer should absolutely apply to its core tools as well!
The text was updated successfully, but these errors were encountered: