Goal
Update all workspace crates from edition = "2021" to edition = "2024" and bump the MSRV from 1.72 to 1.85, bringing the project to the current stable Rust edition and aligning with the Rust ecosystem default.
Background
Rust 2024 was stabilised with Rust 1.85.0 (February 2025). New Cargo projects now default to edition = "2024". Staying on edition 2021 diverges from the ecosystem default and misses several quality-of-life improvements (cleaner temporary lifetimes, safer unsafe ergonomics, improved async semantics, formatter improvements, and Cargo resolver v3).
Sequencing with package extraction (EPIC #1669)
The edition migration must happen before any package extraction from EPIC #1669. All packages inherit edition.workspace = true, so migrating now means one atomic change + one PR. If packages are extracted first while still on edition 2021, each extracted repository would need its own independent migration.
Dry-run analysis (Rust 1.97.0-nightly)
RUSTFLAGS="-W rust-2024-compatibility" cargo check --workspace --all-targets --all-features
33 warnings across 21 project source files:
| Lint |
Count |
Auto-fixable |
tail_expr_drop_order (relative drop order) |
18 |
⚠️ Manual |
if_let_rescope (if let shorter lifetime) |
9 |
✅ Yes |
edition_2024_expr_fragment_specifier |
5 |
✅ Yes |
deprecated_safe_2024 (set_var unsafe) |
1 |
✅ Yes + safety audit |
No static mut, unsafe extern blocks, unsafe attributes, gen conflicts, or RPIT issues found.
Scope
In scope:
- Bump
edition → "2024" and rust-version → "1.85" in workspace root Cargo.toml
- Apply all auto-fixable warnings via
cargo fix --edition
- Manually review all 18
tail_expr_drop_order locations
- Audit
std::env::set_var usage for thread-safety
- Apply
cargo fmt for style edition 2024 formatting
Out of scope:
- Upstream dependency
tail_expr_drop_order warnings (dry-run artifact, not a real post-migration issue)
proc-macro-error2 v2.0.1 future-incompatibility (separate ticket)
Effort estimate
~5–7 hours: ~1 h automated, ~3–4 h manual review of 18 drop-order locations, ~30 min safety audits, ~1 h verification.
Implementation plan
Incremental within a single branch (T1–T14), one package tier at a time. The edition = "2024" field change is the capstone commit (T12); every prior commit compiles against edition 2021.
Full spec: docs/issues/open/ (after this issue is created).
Goal
Update all workspace crates from
edition = "2021"toedition = "2024"and bump the MSRV from1.72to1.85, bringing the project to the current stable Rust edition and aligning with the Rust ecosystem default.Background
Rust 2024 was stabilised with Rust 1.85.0 (February 2025). New Cargo projects now default to
edition = "2024". Staying on edition 2021 diverges from the ecosystem default and misses several quality-of-life improvements (cleaner temporary lifetimes, saferunsafeergonomics, improvedasyncsemantics, formatter improvements, and Cargo resolver v3).Sequencing with package extraction (EPIC #1669)
The edition migration must happen before any package extraction from EPIC #1669. All packages inherit
edition.workspace = true, so migrating now means one atomic change + one PR. If packages are extracted first while still on edition 2021, each extracted repository would need its own independent migration.Dry-run analysis (Rust 1.97.0-nightly)
RUSTFLAGS="-W rust-2024-compatibility" cargo check --workspace --all-targets --all-features33 warnings across 21 project source files:
tail_expr_drop_order(relative drop order)if_let_rescope(if letshorter lifetime)edition_2024_expr_fragment_specifierdeprecated_safe_2024(set_varunsafe)No
static mut, unsafe extern blocks, unsafe attributes,genconflicts, or RPIT issues found.Scope
In scope:
edition→"2024"andrust-version→"1.85"in workspace rootCargo.tomlcargo fix --editiontail_expr_drop_orderlocationsstd::env::set_varusage for thread-safetycargo fmtfor style edition 2024 formattingOut of scope:
tail_expr_drop_orderwarnings (dry-run artifact, not a real post-migration issue)proc-macro-error2 v2.0.1future-incompatibility (separate ticket)Effort estimate
~5–7 hours: ~1 h automated, ~3–4 h manual review of 18 drop-order locations, ~30 min safety audits, ~1 h verification.
Implementation plan
Incremental within a single branch (T1–T14), one package tier at a time. The
edition = "2024"field change is the capstone commit (T12); every prior commit compiles against edition 2021.Full spec:
docs/issues/open/(after this issue is created).