Skip to content

Commit 76bd48a

Browse files
authored
Merge pull request #288 from ehuss/edition-2024
Set up scaffolding for 2024
2 parents baafacc + 390acef commit 76bd48a

9 files changed

+104
-0
lines changed

src/SUMMARY.md

+10
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,13 @@
3434
- [Warnings promoted to errors](rust-2021/warnings-promoted-to-error.md)
3535
- [Or patterns in macro-rules](rust-2021/or-patterns-macro-rules.md)
3636
- [C-string literals](rust-2021/c-string-literals.md)
37+
38+
## Rust 2024
39+
40+
- [Rust 2024 🚧](rust-2024/index.md)
41+
- [`unsafe_op_in_unsafe_fn` warning](rust-2024/unsafe-op-in-unsafe-fn.md)
42+
- [RPIT lifetime capture](rust-2024/rpit-lifetime-capture.md)
43+
- [Disallow references to `static mut`](rust-2024/static-mut-reference.md)
44+
- [Public/private dependencies](rust-2024/public-private-dependencies.md)
45+
- [Cargo: Remove implicit features](rust-2024/cargo-remove-implicit-features.md)
46+
- [Rustfmt: Combine all delimited exprs as last argument](rust-2024/rustfmt-overflow-delimited-expr.md)

src/editions/transitioning-an-existing-project-to-a-new-edition.md

+19
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,26 @@ If new warnings are issued, you may want to consider running `cargo fix` again (
8383

8484
Congrats! Your code is now valid in both Rust 2015 and Rust 2018!
8585

86+
## Migrating to an unstable edition
87+
88+
After an edition is released, there is roughly a three year window before the next edition.
89+
During that window, new features may be added to the next edition, which will only be available on the [nightly channel].
90+
If you want to help test those new features before they are stabilized, you can use the nightly channel to try them out.
91+
92+
The steps are roughly similar to the stable channel:
93+
94+
1. Install the most recent nightly: `rustup update nightly`.
95+
2. Run `cargo +nightly fix --edition`.
96+
3. Edit `Cargo.toml` and place `cargo-features = ["edition2024"]` at the top (above `[package]`), and change the edition field to say `edition = "2024"`.
97+
4. Run `cargo +nightly check` to verify it now works in the new edition.
98+
99+
> **⚠ Caution**: Features implemented in the next edition may not have automatic migrations implemented with `cargo fix`, and the features themselves may not be finished.
100+
> When possible, this guide should contain information about which features are implemented
101+
> on nightly along with more information about their status.
102+
> A few months before the edition is stabilized, all of the new features should be fully implemented, and the [Rust Blog] will announce a call for testing.
103+
86104
[`cargo fix`]: ../../cargo/commands/cargo-fix.html
87105
[`cargo test`]: ../../cargo/commands/cargo-test.html
88106
[Advanced migration strategies]: advanced-migrations.md
89107
[nightly channel]: ../../book/appendix-07-nightly-rust.html
108+
[Rust Blog]: https://blog.rust-lang.org/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Cargo: Remove implicit features
2+
3+
🚧 The 2024 Edition has not yet been released and hence this section is still "under construction".
4+
5+
## Summary
6+
7+
## Details
8+
9+
## Migration

src/rust-2024/index.md

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Rust 2024
2+
3+
🚧 The 2024 Edition has not yet been released and hence this section is still "under construction".
4+
5+
| Info | |
6+
| --- | --- |
7+
| RFC | [#3501](https://rust-lang.github.io/rfcs/3501-edition-2024.html) |
8+
| Release version | 1.82.0 (anticipated) |
9+
10+
The Rust 2024 Edition is currently slated for release in Rust 1.82.0.
11+
Rust 1.82.0 will be in beta for six weeks,
12+
after which it is released as stable on October 17th.
13+
14+
However, note that Rust is a project run by volunteers.
15+
We prioritize the personal well-being of everyone working on Rust
16+
over any deadlines and expectations we might have set.
17+
This could mean delaying the edition a version if necessary,
18+
or dropping a feature that turns out to be too difficult or stressful to finish in time.
19+
20+
That said, we are on schedule and many of the difficult problems are already tackled,
21+
thanks to all the people contributing to Rust 2024! 💛
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Public/private dependencies
2+
3+
🚧 The 2024 Edition has not yet been released and hence this section is still "under construction".
4+
5+
## Summary
6+
7+
## Details
8+
9+
## Migration
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# RPIT lifetime capture
2+
3+
🚧 The 2024 Edition has not yet been released and hence this section is still "under construction".
4+
5+
## Summary
6+
7+
## Details
8+
9+
## Migration
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Rustfmt: Combine all delimited exprs as last argument
2+
3+
🚧 The 2024 Edition has not yet been released and hence this section is still "under construction".
4+
5+
## Summary
6+
7+
## Details
8+
9+
## Migration

src/rust-2024/static-mut-reference.md

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Disallow references to static mut
2+
3+
🚧 The 2024 Edition has not yet been released and hence this section is still "under construction".
4+
5+
## Summary
6+
7+
## Details
8+
9+
## Migration
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# unsafe_op_in_unsafe_fn warning
2+
3+
🚧 The 2024 Edition has not yet been released and hence this section is still "under construction".
4+
5+
## Summary
6+
7+
## Details
8+
9+
## Migration

0 commit comments

Comments
 (0)