chore: lower workspace Rust version to 1.93#129
Conversation
Allow prover environments that have not moved to Rust 1.95 to consume the workspace without tripping the manifest MSRV gate. Constraint: Keep the change scoped to the workspace rust-version declaration Confidence: high Scope-risk: narrow Not-tested: Full compile with Rust 1.93 toolchain not installed locally
📝 WalkthroughWalkthroughThe workspace minimum Rust version requirement in ChangesWorkspace Rust Version
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~1 minute Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
Cargo.toml (1)
4-4: ⚡ Quick winCI does not validate the MSRV.
The test workflow (
.github/workflows/test.yml) installsdtolnay/rust-toolchain@stable, which will not catch MSRV violations. Without MSRV testing in CI, regressions can slip through undetected.Consider adding an MSRV check job to the CI workflow.
🔧 Suggested CI job to test MSRV
Add the following job to
.github/workflows/test.yml:msrv-check: name: MSRV Check (Rust 1.93) runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v6 - name: Install Rust 1.93 toolchain uses: dtolnay/rust-toolchain@1.93 - name: Install mold linker uses: rui314/setup-mold@v1 - name: Cache Rust build artifacts uses: Swatinem/rust-cache@v2 with: cache-on-failure: true - name: Verify MSRV with cargo check run: cargo check --workspace --all-targets🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@Cargo.toml` at line 4, Add an MSRV CI job named "msrv-check" that validates Cargo.toml's rust-version = "1.93": create a new CI job in the test workflow that installs Rust 1.93 via dtolnay/rust-toolchain@1.93, optionally installs the mold linker and enables caching, then runs cargo check --workspace --all-targets (use the job name msrv-check and the installer dtolnay/rust-toolchain to locate where to add it); this ensures the declared MSRV is actually exercised in CI.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Cargo.toml`:
- Line 4: The workspace manifest now sets rust-version = "1.93" but README.md
and CONTRIBUTING.md still state "Rust 1.95 or later"; choose one approach and
make docs/code consistent: either revert Cargo.toml's rust-version back to
"1.95" if 1.93 isn't supported, or update the documentation strings in README.md
(line referencing Rust requirement) and CONTRIBUTING.md (line referencing Rust
requirement) to "Rust 1.93 or later"; ensure the unique identifier rust-version
in Cargo.toml and the two README/CONTRIBUTING requirement sentences are updated
together so all sources match.
- Line 4: The Cargo.toml change set rust-version = "1.93" must be gated by a
real MSRV workspace build check: run rustup run 1.93 cargo check --workspace
--all-targets --locked and preferably rustup run 1.93 cargo test --workspace
--locked, verify all crates and dependencies compile and tests pass, and if
failures appear, revert or adjust the rust-version in Cargo.toml and fix
offending crates/dependencies; also update CI to include Rust 1.93 MSRV testing
or ensure CI already covers the same 1.93 checks before merging.
---
Nitpick comments:
In `@Cargo.toml`:
- Line 4: Add an MSRV CI job named "msrv-check" that validates Cargo.toml's
rust-version = "1.93": create a new CI job in the test workflow that installs
Rust 1.93 via dtolnay/rust-toolchain@1.93, optionally installs the mold linker
and enables caching, then runs cargo check --workspace --all-targets (use the
job name msrv-check and the installer dtolnay/rust-toolchain to locate where to
add it); this ensures the declared MSRV is actually exercised in CI.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
| version = "0.3.0" | ||
| edition = "2024" | ||
| rust-version = "1.95" | ||
| rust-version = "1.93" |
There was a problem hiding this comment.
Documentation contradicts the lowered MSRV.
The workspace manifest now declares rust-version = "1.93", but both README.md line 73 and CONTRIBUTING.md line 25 explicitly state "Rust 1.95 or later" as a prerequisite. This creates conflicting guidance for users and contributors.
Update the documentation to match the new MSRV, or raise the manifest back to 1.95 if the lower version is not actually supported.
📝 Documentation locations that need updating
README.mdline 73: Change "Rust 1.95 or later" to "Rust 1.93 or later"CONTRIBUTING.mdline 25: Change "Rust 1.95 or later" to "Rust 1.93 or later"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@Cargo.toml` at line 4, The workspace manifest now sets rust-version = "1.93"
but README.md and CONTRIBUTING.md still state "Rust 1.95 or later"; choose one
approach and make docs/code consistent: either revert Cargo.toml's rust-version
back to "1.95" if 1.93 isn't supported, or update the documentation strings in
README.md (line referencing Rust requirement) and CONTRIBUTING.md (line
referencing Rust requirement) to "Rust 1.93 or later"; ensure the unique
identifier rust-version in Cargo.toml and the two README/CONTRIBUTING
requirement sentences are updated together so all sources match.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Verify Rust 1.93 compatibility for workspace and dependencies
# Check if Rust 1.93 toolchain is available, install if not
if ! rustup toolchain list | grep -q '1.93'; then
echo "Installing Rust 1.93 toolchain..."
rustup toolchain install 1.93
fi
# Test 1: Verify cargo metadata works with Rust 1.93
echo "=== Test 1: Cargo metadata with Rust 1.93 ==="
rustup run 1.93 cargo metadata --no-deps --format-version 1 > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "✓ Cargo metadata succeeds with Rust 1.93"
else
echo "✗ Cargo metadata FAILS with Rust 1.93"
fi
# Test 2: Check if reth has documented MSRV
echo ""
echo "=== Test 2: Checking reth v2.2.0 MSRV ==="
echo "Fetching reth repository information..."
gh api repos/paradigmxyz/reth/git/ref/tags/v2.2.0 --jq '.object.sha' | head -n1 | xargs -I {} \
gh api repos/paradigmxyz/reth/contents/Cargo.toml?ref={} --jq '.content' | base64 -d | grep -A2 'rust-version'
# Test 3: Attempt basic check with Rust 1.93
echo ""
echo "=== Test 3: Attempting cargo check with Rust 1.93 ==="
rustup run 1.93 cargo check --workspace --all-targets 2>&1 | head -n 50
# Test 4: Check Rust release dates to understand feature gap
echo ""
echo "=== Test 4: Rust version timeline ==="
echo "Rust 1.93: January 2025"
echo "Rust 1.94: February 2025"
echo "Rust 1.95: March 2025"
echo ""
echo "Feature gap between 1.93 and 1.95 may include stabilized features."Repository: morph-l2/morph-reth
Length of output: 149
🌐 Web query:
What is the minimum supported Rust version (MSRV) for reth v2.2.0?
💡 Result:
The minimum supported Rust version (MSRV) for Reth v2.2.0 is 1.93.0 [1][2]. This requirement is maintained in the project's official repository documentation [1][2]. While some secondary documentation pages may display different values due to caching or outdated manual updates [3], 1.93.0 is the version specified in the project's current authoritative documentation [1][2].
Citations:
- 1: https://github.com/paradigmxyz/reth?search=1
- 2: https://github.com/paradigmxyz/reth
- 3: https://reth.rs/installation/source/
Require an actual Rust 1.93 workspace build check before setting rust-version = "1.93"
Reth v2.2.0’s documented MSRV is 1.93.0, so that specific dependency aligns with the change. However, the workspace compilation check with Rust 1.93 did not complete (script timed out), so the risk remains that some other workspace crate or dependency requires >1.93.
Run at least:
rustup run 1.93 cargo check --workspace --all-targets --locked- (preferably)
rustup run 1.93 cargo test --workspace --locked
Also ensure the result matches CI (or add Rust 1.93 to CI MSRV testing) before merging.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@Cargo.toml` at line 4, The Cargo.toml change set rust-version = "1.93" must
be gated by a real MSRV workspace build check: run rustup run 1.93 cargo check
--workspace --all-targets --locked and preferably rustup run 1.93 cargo test
--workspace --locked, verify all crates and dependencies compile and tests pass,
and if failures appear, revert or adjust the rust-version in Cargo.toml and fix
offending crates/dependencies; also update CI to include Rust 1.93 MSRV testing
or ensure CI already covers the same 1.93 checks before merging.
Summary
rust-versionfrom1.95to1.93so prover environments using Rust 1.93 are not blocked by the manifest MSRV gate.Test plan
Notes
Summary by CodeRabbit