Users may be running outdated stable toolchains without realizing it, and rustup has not, until now, had the ability to signal to the user that a new release exists unless they explicitly run rustup update or rustup check.
Since stable releases follow a fixed 6-week cadence, rustup could estimate locally (without a network request) whether a new release is likely due.
When the threshold (6 weeks) is crossed, we can query the release server to confirm that there is indeed a new version, and then hint to the user to update their toolchain.
When to display this hint is open for discussion.
Should it be limited to direct rustup commands, or should it also appear when using proxies?
My inclination is to show it on every rustup invocation, proxy or not.
To avoid overwhelming users -- especially those who intentionally choose not to update -- it could be limited to appearing only once, or, at max, once per day.
As prior art, OCaml's package manager, opam, does something similar (see here), notifying the user when their setup hasn't been updated for 21 days.
In contrast to opam, this would be exact, not just a "likely" update.
Users may be running outdated stable toolchains without realizing it, and rustup has not, until now, had the ability to signal to the user that a new release exists unless they explicitly run
rustup updateorrustup check.Since stable releases follow a fixed 6-week cadence, rustup could estimate locally (without a network request) whether a new release is likely due.
When the threshold (6 weeks) is crossed, we can query the release server to confirm that there is indeed a new version, and then hint to the user to update their toolchain.
When to display this hint is open for discussion.
Should it be limited to direct rustup commands, or should it also appear when using proxies?
My inclination is to show it on every
rustupinvocation, proxy or not.To avoid overwhelming users -- especially those who intentionally choose not to update -- it could be limited to appearing only once, or, at max, once per day.
As prior art, OCaml's package manager,
opam, does something similar (see here), notifying the user when their setup hasn't been updated for 21 days.In contrast to
opam, this would be exact, not just a "likely" update.