From 6f25ef8f30377eed90585e2fc0dce6c3e757319d Mon Sep 17 00:00:00 2001 From: Xin Xin Date: Thu, 12 Nov 2026 10:15:28 -0800 Subject: [PATCH] Declare minimum Rust version (1.95) and document it Bevy 0.19 requires rustc 1.95, but the repo didn't state a minimum Rust version anywhere, so contributors on an older toolchain only found out from a dependency error partway through the build. - Add `rust-version = "1.95"` to `[workspace.package]` and inherit it in every workspace crate, so cargo reports the requirement for our own crates and the MSRV-aware resolver (resolver = "3") can use it. - Note the minimum version and `rustup update stable` in the README. Co-Authored-By: Claude Opus 5.5 --- Cargo.toml | 4 ++++ README.md | 6 ++++++ crates/processing_audio/Cargo.toml | 1 + crates/processing_core/Cargo.toml | 1 + crates/processing_cuda/Cargo.toml | 1 + crates/processing_ffi/Cargo.toml | 1 + crates/processing_glfw/Cargo.toml | 1 + crates/processing_input/Cargo.toml | 1 + crates/processing_midi/Cargo.toml | 1 + crates/processing_node/Cargo.toml | 1 + crates/processing_pyo3/Cargo.toml | 1 + crates/processing_render/Cargo.toml | 1 + crates/processing_wasm/Cargo.toml | 1 + crates/processing_webcam/Cargo.toml | 1 + tools/generate_stubs/Cargo.toml | 1 + 15 files changed, 23 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 4b2d592..5ef3f46 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,7 @@ name = "processing" version = "0.4.0" edition = "2024" +rust-version.workspace = true autoexamples = false [lints] @@ -18,6 +19,9 @@ cuda = ["dep:processing_cuda", "processing_cuda/cuda"] resolver = "3" members = ["crates/*", "tools/*"] +[workspace.package] +rust-version = "1.95" + [workspace.lints.clippy] type_complexity = "allow" too_many_arguments = "allow" diff --git a/README.md b/README.md index 59140ae..2331851 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,12 @@ _Note: you can use any file name you want for your sketch_ You'll need to install the Rust toolchain to work on this project. Most users will want to install Rust via [`rustup`](https://rustup.rs/), which helps manage Rust toolchain versions. +libprocessing requires **Rust 1.95 or newer** (the minimum is set by `rust-version` in [`Cargo.toml`](Cargo.toml) and follows what our Bevy dependency requires). If you installed Rust a while ago, update to the latest stable toolchain before building: + +```bash +rustup update stable +``` + ### Clone the project and its submodules When cloning this repo (or your fork), don't forget to install its submodules (eg. Lygia) diff --git a/crates/processing_audio/Cargo.toml b/crates/processing_audio/Cargo.toml index d055168..98fd450 100644 --- a/crates/processing_audio/Cargo.toml +++ b/crates/processing_audio/Cargo.toml @@ -2,6 +2,7 @@ name = "processing_audio" version = "0.4.0" edition = "2024" +rust-version.workspace = true [dependencies] bevy = { workspace = true } diff --git a/crates/processing_core/Cargo.toml b/crates/processing_core/Cargo.toml index 2b38547..bb38866 100644 --- a/crates/processing_core/Cargo.toml +++ b/crates/processing_core/Cargo.toml @@ -2,6 +2,7 @@ name = "processing_core" version = "0.4.0" edition = "2024" +rust-version.workspace = true [lints] workspace = true diff --git a/crates/processing_cuda/Cargo.toml b/crates/processing_cuda/Cargo.toml index e8fdf91..359e6a6 100644 --- a/crates/processing_cuda/Cargo.toml +++ b/crates/processing_cuda/Cargo.toml @@ -2,6 +2,7 @@ name = "processing_cuda" version = "0.4.0" edition = "2024" +rust-version.workspace = true [lints] workspace = true diff --git a/crates/processing_ffi/Cargo.toml b/crates/processing_ffi/Cargo.toml index 3744d5e..7fa3651 100644 --- a/crates/processing_ffi/Cargo.toml +++ b/crates/processing_ffi/Cargo.toml @@ -2,6 +2,7 @@ name = "processing_ffi" version = "0.4.0" edition = "2024" +rust-version.workspace = true [lints] workspace = true diff --git a/crates/processing_glfw/Cargo.toml b/crates/processing_glfw/Cargo.toml index 071752b..0f4eac5 100644 --- a/crates/processing_glfw/Cargo.toml +++ b/crates/processing_glfw/Cargo.toml @@ -2,6 +2,7 @@ name = "processing_glfw" version = "0.4.0" edition = "2024" +rust-version.workspace = true [lints] workspace = true diff --git a/crates/processing_input/Cargo.toml b/crates/processing_input/Cargo.toml index 87ee43a..ebb0ca9 100644 --- a/crates/processing_input/Cargo.toml +++ b/crates/processing_input/Cargo.toml @@ -2,6 +2,7 @@ name = "processing_input" version = "0.4.0" edition = "2024" +rust-version.workspace = true [lints] workspace = true diff --git a/crates/processing_midi/Cargo.toml b/crates/processing_midi/Cargo.toml index 62203dd..f656f9a 100644 --- a/crates/processing_midi/Cargo.toml +++ b/crates/processing_midi/Cargo.toml @@ -2,6 +2,7 @@ name = "processing_midi" version = "0.4.0" edition = "2024" +rust-version.workspace = true [dependencies] bevy = { workspace = true } diff --git a/crates/processing_node/Cargo.toml b/crates/processing_node/Cargo.toml index 8f8b779..643655b 100644 --- a/crates/processing_node/Cargo.toml +++ b/crates/processing_node/Cargo.toml @@ -2,6 +2,7 @@ name = "processing_node" version = "0.0.5" edition = "2024" +rust-version.workspace = true [lints] workspace = true diff --git a/crates/processing_pyo3/Cargo.toml b/crates/processing_pyo3/Cargo.toml index 6b089cc..aa3d807 100644 --- a/crates/processing_pyo3/Cargo.toml +++ b/crates/processing_pyo3/Cargo.toml @@ -2,6 +2,7 @@ name = "processing_pyo3" version = "0.4.0" edition = "2024" +rust-version.workspace = true [lints] workspace = true diff --git a/crates/processing_render/Cargo.toml b/crates/processing_render/Cargo.toml index 2c9c750..9747516 100644 --- a/crates/processing_render/Cargo.toml +++ b/crates/processing_render/Cargo.toml @@ -2,6 +2,7 @@ name = "processing_render" version = "0.4.0" edition = "2024" +rust-version.workspace = true [lints] workspace = true diff --git a/crates/processing_wasm/Cargo.toml b/crates/processing_wasm/Cargo.toml index 721c8ef..6bcf454 100644 --- a/crates/processing_wasm/Cargo.toml +++ b/crates/processing_wasm/Cargo.toml @@ -2,6 +2,7 @@ name = "processing_wasm" version = "0.4.0" edition = "2024" +rust-version.workspace = true [lib] crate-type = ["cdylib", "rlib"] diff --git a/crates/processing_webcam/Cargo.toml b/crates/processing_webcam/Cargo.toml index 7cb2a4a..8f1afd9 100644 --- a/crates/processing_webcam/Cargo.toml +++ b/crates/processing_webcam/Cargo.toml @@ -2,6 +2,7 @@ name = "processing_webcam" version = "0.4.0" edition = "2024" +rust-version.workspace = true [lints] workspace = true diff --git a/tools/generate_stubs/Cargo.toml b/tools/generate_stubs/Cargo.toml index c735b05..8910574 100644 --- a/tools/generate_stubs/Cargo.toml +++ b/tools/generate_stubs/Cargo.toml @@ -2,6 +2,7 @@ name = "generate_stubs" version = "0.4.0" edition = "2024" +rust-version.workspace = true publish = false [dependencies]