Skip to content

Declare minimum Rust version (1.95) and document it - #270

Merged
tychedelia merged 1 commit into
mainfrom
docs/minimum-rust-version
Nov 12, 2026
Merged

tychedelia merged 1 commit into
mainfrom
docs/minimum-rust-version

Conversation

@xinemata

Copy link
Copy Markdown
Contributor

Problem

Building on Rust 1.94 fails partway through with an error from a dependency:

error: rustc 1.94.0 is not supported by the following packages:
  bevy@0.19.0 requires rustc 1.95.0
  bevy_ecs@0.19.0 requires rustc 1.95.0
  bevy_seedling@0.8.0 requires rustc 1.95.0

The repo has no rust-toolchain.toml and no rust-version in any Cargo.toml, and the README only says to install Rust via rustup. Nothing tells contributors which Rust version they need.

Changes

  • Add [workspace.package] rust-version = "1.95" to the root Cargo.toml, and rust-version.workspace = true to every workspace crate (13 crates plus the root processing package).
  • Add a short note to the README's Rust section: Rust 1.95+ is required, and rustup update stable fixes an old toolchain.

With this, cargo reports our own crates' requirement (processing_pyo3@0.4.0 requires rustc 1.95, etc.), not only Bevy's. The workspace's resolver = "3" is MSRV-aware, so it also uses this value when it picks dependency versions.

I didn't add a rust-toolchain.toml. Pinning a toolchain would make rustup download that exact version for everyone, which seems heavier than this project needs while CI tracks stable.

Testing

  • cargo metadata shows rust_version = 1.95 for all 14 packages.
  • just py-build still builds on current stable (1.99.1), and animated_mesh.py runs.
  • cargo +1.94 check -p processing_pyo3 now fails with the requirement listed for the libprocessing crates as well as Bevy's.

When Bevy raises its minimum Rust version, update rust-version in the root Cargo.toml and the version number in the README.

🤖 Generated with Claude Code

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 <noreply@anthropic.com>
@xinemata
xinemata requested a review from tychedelia November 12, 2026 18:19
@xinemata

Copy link
Copy Markdown
Contributor Author

I used Claude's help to create this PR. It didn’t add a rust-toolchain.toml file, claiming that making everyone download one fixed Rust version would be too heavy for a project that builds on latest stable needs. @tychedelia I would appreciate you evaluating whether this is the appropriate solution. Thank you!

@tychedelia tychedelia left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm! Thanks @xinemata (:

@tychedelia
tychedelia merged commit 21a2dda into main Nov 12, 2026
4 of 5 checks passed
@github-actions

Copy link
Copy Markdown

Visual regression: 1 changed of 43 cases

case status detail
py_flocking_gpu ❌ changed 7.91% of pixels differ

If these changes are intentional, add the deliberate-rendering-change label.

baseline 86502162af · adapter llvmpipe (LLVM 20.1.2, 256 bits) (Vulkan, Mesa 25.2.8-0ubuntu0.24.04.4 (LLVM 20.1.2))

Open the visual report · workflow run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants