-
Notifications
You must be signed in to change notification settings - Fork 2
Update rust version #99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughBump Rust toolchain version in Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Possibly related issues
Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: ASSERTIVE Plan: Pro 📒 Files selected for processing (2)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
🔇 Additional comments (1)
Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
flake.nix(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: rainix (macos-latest, rainix-rs-artifacts)
- GitHub Check: rainix (macos-latest, rainix-rs-test)
- GitHub Check: rainix-check-shell (ubuntu-latest)
- GitHub Check: rainix-check-shell (macos-latest)
🔇 Additional comments (1)
flake.nix (1)
181-183: Revert scope concern—these changes are in-scope for the foundry error fix.The commit is "fix foundry error," not a Rust version update. The
rainix-sol-statictask modifications—changing totest/fixture, adding--build-info --skipfilters, and using--ignore-compile—are appropriate fixes for a foundry-related issue. Thecd test/fixtureapplies intentionally to all subsequent commands in this task (includingforge fmt --checkon line 184).
| old-pkgs = import nixpkgs-old { inherit system; }; | ||
|
|
||
| rust-version = "1.87.0"; | ||
| rust-version = "1.89.0"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
Rust 1.89.0 stable release date breaking changes
💡 Result:
-
Release date: August 7, 2025. [1][2]
-
Notable breaking or potentially breaking changes:
- Sized hierarchy change (Part I): small breaking change affecting ?Sized bounds on impls for certain recursive types with associated type projections — may require refactoring or opting into the unstable feature. [2]
- Cross-compiled doctests are now executed for
cargo test --doc --target ..., which can surface previously-unchecked failing doctests. Tests can be disabled withignore-<target>. [1][2] - Some formerly-accidentally-stable intrinsics (e.g.,
std::intrinsics::copy,copy_nonoverlapping,write_bytes) were turned into proper intrinsics (no debug assertions, cannot coerce to fn pointers) andstd::intrinsics::drop_in_placewas removed — code depending on the old behavior may break. [2] - New warn/deny-by-default lints (e.g.,
mismatched_lifetime_syntaxesreplacingelided_named_lifetimes,dangerous_implicit_autorefsmade deny-by-default) can produce new warnings/errors in existing code. [1][2] i128/u128removed fromimproper_ctypes_definitions(they no longer warn inextern "C"), andextern "C"on wasm32 changed to a standards-compliant ABI — both can affect FFI assumptions. [1][2]- Target-tier and platform/tooling changes (e.g., demotion-in-progress of x86_64-apple-darwin to Tier 2 with host tools) may cause future compatibility/test coverage issues. [1]
Sources: Rust blog announcement and official release notes for Rust 1.89.0. [1][2]
References
[1] Announcing Rust 1.89.0 (Rust Blog, Aug 7 2025).
[2] Rust 1.89.0 release notes / changelog.
Rust 1.89.0 has been released (August 7, 2025) but includes several breaking changes requiring testing.
This version introduces notable breaking changes: Sized hierarchy modifications affecting ?Sized bounds, cross-compiled doctests now executing (which may surface previously unchecked failures), changes to intrinsics behavior (std::intrinsics::copy, copy_nonoverlapping, write_bytes no longer support debug assertions or function pointer coercion; drop_in_place removed), new warn/deny-by-default lints, and FFI-related changes. Ensure the codebase is tested thoroughly with this version, particularly if it uses doctests with cross-compilation targets, FFI code, or relies on the changed intrinsics.
🤖 Prompt for AI Agents
In flake.nix around line 21 the rust-version is set to "1.89.0", which is a
breaking release; update the flake to either pin back to the last known-good
toolchain (e.g., 1.88.x) until compatibility is verified, or add 1.89.0 as an
additional toolchain in the CI matrix and run full test suites (unit,
integration, cross-compiled doctests) and FFI checks; if tests fail, revert the
runtime/default to 1.88.x and open a follow-up task to incrementally fix code
for the 1.89 breaking changes (Sized hierarchy, intrinsics, doctests, new lints,
FFI) before making 1.89 the default.
|
@coderabbitai assess this PR size classification for the totality of the PR with the following criterias and report it in your comment: S/M/L PR Classification Guidelines:This guide helps classify merged pull requests by effort and complexity rather than just line count. The goal is to assess the difficulty and scope of changes after they have been completed. Small (S)Characteristics:
Review Effort: Would have taken 5-10 minutes Examples:
Medium (M)Characteristics:
Review Effort: Would have taken 15-30 minutes Examples:
Large (L)Characteristics:
Review Effort: Would have taken 45+ minutes Examples:
Additional Factors to ConsiderWhen deciding between sizes, also consider:
Notes:
|
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: Length of output: 124 🏁 Script executed: Length of output: 564 SIZE=S |
Motivation
Solution
Checks
By submitting this for review, I'm confirming I've done the following:
Summary by CodeRabbit
Chores
Tests
✏️ Tip: You can customize this high-level summary in your review settings.