chore: inherit crate metadata from workspace and move to Rust 2024 edition#112
chore: inherit crate metadata from workspace and move to Rust 2024 edition#112aram356 wants to merge 3 commits into
Conversation
…ition Add authors, edition, publish, and version to [workspace.package] and have every crate inherit them, so metadata lives in one place instead of being re-declared per crate. Each [package] block is now name, description, then the inherited keys. Descriptions are new. Bump the workspace edition from 2021 to 2024. The upgrade compiled clean; the only source churn is mechanical: the 2024 style edition re-sorts imports, and clippy's collapsible_if now collapses nested if-let pairs into let-chains (stable in 2024).
82b9fb6 to
36fe9f1
Compare
ChristianPavilonis
left a comment
There was a problem hiding this comment.
Summary
The workspace metadata inheritance and Rust 2024 migration are sound, the mechanical Rust rewrites preserve behavior, and all CI and local validation pass. The incorrect Spin target description is included inline.
P3 — Authoritative contributor guidance still declares Rust 2021 (CLAUDE.md:32)
The repository guidance says Edition: 2021, contradicting the new workspace edition. Contributors and automation are instructed to treat CLAUDE.md as authoritative, so the documented toolchain state should be updated to Edition: 2024. This comment is included here because CLAUDE.md is outside the PR diff and GitHub cannot attach an inline review comment to that line.
…dition 2024 The Spin description claimed wasm32-wasip2, but on main the adapter builds wasip1: spin-sdk is 5.2, edgezero.toml declares wasm32-wasip1, and the CI matrix runs the spin contract tests under wasip1 via wasmtime. wasip2 arrives with the spin-sdk 6 migration in #110, which adds its own wasip2 CI entry. Also update CLAUDE.md, which still declared Edition 2021.
Review addressed — both findings fixed in
|
Closes #111
What
Two related manifest changes, based directly on
main.Crate metadata now lives in one place.
[workspace.package]gainsauthors,edition,publish, andversion(it previously carried onlylicense), and every crate inherits those five keys via{ workspace = true }instead of re-declaringversion/edition/publishby hand. Each crate also gets adescription, which none had before. Every[package]block now readsname,description, then the inherited keys, so a new crate has an obvious template to copy.Workspace moves from the 2021 to the 2024 edition. Rust 1.95 is already pinned in
.tool-versions, well past the 1.85 that stabilized the 2024 edition, so this is a one-line change in[workspace.package].Source churn from the edition bump
The edition upgrade compiled with zero migration errors. The only source changes are mechanical and semantics-preserving — both applied by tooling, then reviewed by hand:
use base64::{Engine as _, engine::general_purpose::STANDARD}. Applied bycargo fmt.collapsible_ifnow fires on nestedif letpairs inauction.rsandroutes.rs. They becomeif let ... && let .... Applied bycargo clippy --fix.Verification
All CI gates pass locally:
cargo fmt --all -- --checkcargo clippy --workspace --all-targets --all-features -- -D warningscargo test --workspace --all-targets— 161 passed, 0 failedcargo check --workspace --all-targets --features "fastly cloudflare"Note
mocktioneer-clidoes not exist onmainyet — it arrives with #110 — so it is deliberately not part of this PR. Once #110 merges, that crate should adopt the same inherited-metadata block; it is a one-line follow-up on that branch.publish = falseis now inherited workspace-wide, matching what every crate already set individually. Ifmocktioneer-coreis ever published to crates.io it will need an explicit per-crate override.