coreutils icon indicating copy to clipboard operation
coreutils copied to clipboard

Bump MSRV to 1.88

Open RenjiSann opened this issue 4 weeks ago • 13 comments

Release 1.88 stabilized let-chains, which is a massive QoL improvement imo.

Since we're not really enforcing an old Rust release anyway, and we've been bumping MSRV every now and then in the past 2 years, I suggest we bump our MSRV to 1.88, so we can finally enjoy let-chains :)

Release 1.88 patchnotes: https://releases.rs/docs/1.88.0/

RenjiSann avatar Dec 01 '25 00:12 RenjiSann

Someone said current MSRV is restricted by Ubuntu https://launchpad.net/ubuntu/+source/rust-defaults . (But why cannot distributor use rustc from rustup?)

oech3 avatar Dec 01 '25 00:12 oech3

Because Ubuntu (and many others linux distros) wants to rebuild all sources before publication

sylvestre avatar Dec 01 '25 06:12 sylvestre

I think RUSTC_BOOTSTRAP=1 is OK to use old Rust to enable feats stabilized at newer ver at packaging.

oech3 avatar Dec 01 '25 07:12 oech3

Ah I see, that's a shame :/

So IIUC, there's no MSRV bump until Ubuntu 26 is released ?

RenjiSann avatar Dec 01 '25 10:12 RenjiSann

Or ask maintainer of rust-coreutils package (@julian-klode) to use rustup or add 1.91.1.

oech3 avatar Dec 01 '25 11:12 oech3

Another reason want to do this: https://github.com/uutils/coreutils/pull/8504#issuecomment-3207315767

oech3 avatar Dec 04 '25 09:12 oech3

Or ask maintainer of rust-coreutils package (@julian-klode) to use rustup or add 1.91.1.

That's not how this kind of linux distributions work. All ubuntu packages are compiled with the same compiler, so bumping the rust version isn't a small change.

Ecordonnier avatar Dec 05 '25 22:12 Ecordonnier

That's not how this kind of linux distributions work. All ubuntu packages are compiled with the same compiler, so bumping the rust version isn't a small change.

How did Ubuntu compile https://snapcraft.io/install/msedit/ubuntu which is depending on nightly feature? With RUSTC_BOOTSTRAP=1, or snap packages are exception?

oech3 avatar Dec 06 '25 09:12 oech3

That's not how this kind of linux distributions work. All ubuntu packages are compiled with the same compiler, so bumping the rust version isn't a small change.

How did Ubuntu compile https://snapcraft.io/install/msedit/ubuntu which is depending on nightly feature? With RUSTC_BOOTSTRAP=1, or snap packages are exception?

This link is to a snap package. snap packages work completely differently from .deb packages. snap packages bundle all their dependencies and don't depend on other packages, like .deb packages do. "rust-coreutils" is a .deb package. .deb packages use the system toolchain.

Ecordonnier avatar Dec 06 '25 13:12 Ecordonnier

Ah I see, that's a shame :/

So IIUC, there's no MSRV bump until Ubuntu 26 is released ?

Ubuntu 25.10 uses rust 1.85. Ubuntu 26.04 uses rust 1.88. As far as I can tell, the release 0.3.0 of uutils-coreutils was made available only for the "active development" version which will become 26.04, and not for 25.10 (see https://launchpad.net/ubuntu/+source/rust-coreutils).

If you bump the MSRV to 1.88 now, it would probably be OK, since this version will be supported on Ubuntu 26.04. It would however make it harder for Ubuntu to backport critical patches to 25.10, so there would be some impact.

Ecordonnier avatar Dec 10 '25 12:12 Ecordonnier

If you bump the MSRV to 1.88 now, it would probably be OK, since this version will be supported on Ubuntu 26.04. It would, however, make it harder for Ubuntu to backport critical patches to 25.10, so there would be some impact.

I see, thanks for this insight @Ecordonnier. So if we want to keep things simple for Ubuntu, we should only bump after July 2026, according to https://ubuntu.com/about/release-cycle, right ? TBH, it feels a bit late to me, and I'd rather bump now, but if backports are really frequent, it may be the wiser choice.

Actually, I'm not familiar with that: how often is it expected that we do backports to earlier versions of Ubuntu?

RenjiSann avatar Dec 10 '25 15:12 RenjiSann

So if we want to keep things simple for Ubuntu, we should only bump after July 2026, according to https://ubuntu.com/about/release-cycle, right ?

That is my understanding as well. It would allow them to backport any security fix made on main to Ubuntu 25.10 without dealing with toolchain version incompatibility.

how often is it expected that we do backports to earlier versions of Ubuntu?

Probably not that often (unless you get some CVE every week ;-) ), which is why I think (with my limited context) it would be an acceptable option to bump to 1.88 now. Patches will anyway not be trivially backportable to uutils-coreutils 0.2.2 at some point because of git conflicts.

Ecordonnier avatar Dec 10 '25 17:12 Ecordonnier

At least, let-chains is avaiable with RUSTC_BOOTSTARP=1 and Ubuntu can backport feat of rustc too if needed too. No?

oech3 avatar Dec 10 '25 17:12 oech3

I think uutils can just support nightly rustc only as msedit does: There are some fetures depending on nightly: https://github.com/uutils/coreutils/pull/9614#issuecomment-3634000122 https://github.com/uutils/coreutils/pull/9560#issuecomment-3621845937

oech3 avatar Dec 16 '25 00:12 oech3

I think uutils can just support nightly rustc only as msedit does: There are some fetures depending on nightly: #9614 (comment) #9560 (comment)

Making uutils installed on Ubuntu as snap package instead of deb package would have big implications.

snap packages are isolated per default and thus have a slower start-up time and limited permissions. There is a "classic" mode available for snap packages to run without isolation, but this is heavily discouraged and not allowed on "Ubuntu Core" packages, so it is not a nice solution. Also there is already an official debian package for rust-coreutils, and using nightly would make it impossible to update this package to the latest version of uutils-coreutils.

Obviously I have a strong bias here, because using rust nightly would break yocto support as well, which is the way I am consuming uutils-coreutils.

Ecordonnier avatar Dec 16 '25 16:12 Ecordonnier

Because Ubuntu (and many others linux distros) wants to rebuild all sources before publication

@sylvestre What about Debian stable (https://packages.debian.org/source/stable/rust-coreutils). The current stable release (Trixie) ships Rust 1.85, and the next stable release is not expected until ~2027 H2. Furthermore, Trixie is supported until 2028-08-09.

xtqqczze avatar Dec 17 '25 13:12 xtqqczze