rust-lang / rust-project-goals

Rust Project Goals tracker
https://rust-lang.github.io/rust-project-goals/
MIT License
48 stars 45 forks source link

Rust 2024 Edition #117

Open nikomatsakis opened 4 months ago

nikomatsakis commented 4 months ago
Metadata
Owner(s) @traviscross
Team(s) lang, leadership-council, types
Goal document 2024h2/Rust-2024-Edition
Tracked issues rust-lang/rust label:A-edition-2024 label:C-tracking-issue -label:t-libs

Summary

Feature complete status for Rust 2024, with final release to occur in early 2025.

For details, see the tracking issue:

nikomatsakis commented 4 months ago

This issue is intended for status updates only.

For general questions or comments, please contact the owner(s) directly.

traviscross commented 2 months ago

The edition is on track to ship on schedule:

Date Version Edition stage
2024-09-05 Release v1.81 Checking off items...
2024-10-11 Branch v1.83 Go / no go on all items
2024-10-17 Release v1.82 Rust 2024 nightly beta
2024-11-22 Branch v1.84 Prepare to stabilize...
2024-11-28 Release v1.83 Stabilize Rust 2024 on master
2025-01-03 Branch v1.85 Cut Rust 2024 to beta
2025-01-09 Release v1.84 Announce Rust 2024 is pending!
2025-02-20 Release v1.85 Release Rust 2024

All lang priority items have landed and are fully ready for Rust 2024:

Nine other items are fully ready for Rust 2024:

There are currently 10 items that are close to ready, often with only documentation remaining.

There are currently 6 items that still need implementation work. Some of these are rather close to ready also.

There will be items that are currently tracked for the edition that will not make it. That's OK, and we still plan to ship the edition on time and without those items.

Overall, the edition work is going well. We have good communication with each of the item owners and with the relevant teams.

For more details, see the tracking issue for the Rust 2024 edition:

traviscross commented 3 weeks ago

The Rust 2024 edition is on track to ship on schedule:

Date Version Edition stage
2024-11-22 Branch v1.84 Prepare to stabilize...
2024-11-28 Release v1.83 Stabilize Rust 2024 on master
2025-01-03 Branch v1.85 Cut Rust 2024 to beta
2025-01-09 Release v1.84 Announce Rust 2024 is pending!
2025-02-20 Release v1.85 Release Rust 2024

Our motivating priorities in managing this edition have been to:

We're quite happy with how things have turned out. This is going to be big edition -- the largest since Rust 2015. There are a lot of new and exciting things in this edition. Moreover, these changes foreshadow and open the door to continuing work on the bright shiny future for Rust that we all want.

We've carefully managed all aspects of the process to ensure that the many items included in the edition are fully up to our high standards. And while many people have put in substantial and great work to make this edition happen, we've put together Rust 2024 without requiring the kind of high-stress singular personal heroics that have often been required to ship past editions.

We're especially happy that we've been able to do this without cutting many items from the edition, especially late in the game. People end up putting in a lot of work to get these items ready. Cutting them tends to waste this work and often leads to burnout. So we worked hard to avoid that, and are pleased to have done so.

All in all, that's what we call a successful edition.

Let's now review what will be part of Rust 2024.

All lang priority items have landed and are fully ready for Rust 2024:

The other lang items to be included in the edition are:

There are three changes to the standard library that are tied to the new edition:

There are two Cargo items that will be part of Rust 2024:

There is one exciting item for rustdoc that will greatly speed up doctests in Rust 2024:

This will be the first Rust edition that brings with it a new style edition to be applied by rustfmt. That new style edition includes:

At this point, setting aside rustfmt (where some work remains ongoing), there is only one remaining item where we're waiting for a PR to land in nightly (rust-lang/rust#131984). Once that happens, we'll begin the final set of quality assurance crater runs for the edition items and their migrations. When those are complete and triaged, which we expect to happen in the next two weeks, we'll announce the nightly beta for Rust 2024 and will solicit wider testing.

Rust 2024 will be stabilized in nightly in late November, and then will be cut to beta on 2025-01-03.

On 2025-02-20, we'll be releasing Rust 2024.

For more details about the edition items for Rust 2024, see the Edition Guide.

traviscross commented 6 days ago

On Rust 2024, all is proceeding apace according to the last update. We've done an initial QA crater run. On the basis of analyzing that, many issues have been filed, and much work has been done by many people to resolve those. We'll be issuing a call for wider nightly testing of the edition soon.