Try   HackMD

(To be addressed to pkg-rust-maintainers@alioth-lists.debian.net.)

Subject: Debian Trixie and Rust 2024

We understand that there are ongoing discussions about the selection of which Rust release to include in Debian Trixie, and relatedly, discussions about the freeze schedule for Trixie. We've heard there may be tentative plans to use Rust 1.83 (which we will release on 2024-11-28) and to freeze in mid-January.

Some time ago, we finalized our plans and scheduling for the Rust 2024 edition.[1] We're planning to release a new edition, Rust 2024, with Rust 1.85 which will release on 2025-02-20.[2]

It doesn't look like the Trixie freeze date has been finalized yet, but some speculation based on the previous stable freeze has suggested that Trixie might freeze starting in January. And we understand that you were hoping to freeze the Rust toolchain sooner rather than later in the window, due to it being a dependency of many other things. We certainly understand that.

We would advise that, if at all possible, the Debian project consider including Rust 1.85 in Debian Trixie. Given the expected two-year life of Trixie as the latest release of Debian stable, and the many users of Debian stable who use Debian-shipped toolchains to build projects such as the Linux kernel[3], it'd be helpful if those users were able to make use of the Rust 2024 edition and crates which require this edition.

We'd be happy to help facilitate that, if we can.

Rust releases happen on a strictly time-based train model, where, for each release, we freeze and release a beta six weeks ahead of time. We make backports only infrequently onto the beta branch (which are always minimal and conservative) between the beta and the final release. Often, the beta is simply "promoted" to the stable release with no changes. The beta for Rust 1.85 will be released on 2025-01-09. Depending on the freeze schedule, perhaps using the beta and seeking a freeze exception for the final release could be an option, so that the actual code delta for any potential freeze exception is near zero? That might be easier than justifying the full delta from 1.83 or 1.84 to 1.85. We would also be happy to provide any supporting documentation/evidence for a freeze exception if needed, based on Rust's unusually strong history of not making breaking changes.

We can also help with any potential bugs that arise during that window (e.g. if testing within Debian turns up an issue with 1.84 or 1.85 that impacts Debian packages), and prioritize beta backports (or reverts) accordingly.

We're hoping this schedule information and offer to help will make it easier to make plans for the version of Rust in Trixie. Thanks again for your work bringing Rust to Debian users and developers.

[1] We know the Debian Rust team will already be familiar with editions, but as background for others:

Periodically, and historically every three years, the Rust project releases a new edition. Editions are a way in which we allow users, on a library-by-library basis (we call them "crates") to opt-in to certain new behaviors. New Rust compilers continue to support old editions to avoid breaking any existing code, and one build of a Rust project can incorporate crates that use different editions, so an entire project is not forced to migrate all at once. We encourage adoption of new editions, and in practice, observationally, these tend to be rapidly and widely adopted by our ecosystem.

[2] This is a time-based release date, and we don't expect to bump the edition to a later release. While we are a project of volunteers, like Debian, and so things could always change, we have at this moment a lot of confidence and substantive reasons to believe that we will hold that date. If something isn't ready for the edition, we'll drop it from the edition rather than moving the edition to a later Rust release. So we're not expecting the date to move.

[3] Linux kernel development would be impacted here because of the Rust for Linux (RFL) project. Some kernel maintainers have stated that they will only get involved with Rust kernel development when they can compile the mainline kernel with the toolchain provided in their distributions. Therefore, the kernel is starting to support a range of Rust toolchain versions, with Rust 1.78 as the initial minimum supported version. Moreover, the kernel is looking into what the upcoming Debian Stable's Rust version will be, since that may be a good point to establish a new minimum version in the future. If that version supports the new Edition 2024, then it is likely the kernel will try to migrate to it early on, since it would provide kernel developers with the latest improvements to the language.