Skip to content

upgrade 1.11.1#139

Merged
tac0turtle merged 4 commits intomainfrom
marko/1.11.1
Feb 24, 2026
Merged

upgrade 1.11.1#139
tac0turtle merged 4 commits intomainfrom
marko/1.11.1

Conversation

@tac0turtle
Copy link
Contributor

@tac0turtle tac0turtle commented Feb 24, 2026

Description

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Performance improvement
  • Refactoring

Related Issues

Fixes #(issue)

Checklist

  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published

Testing

Additional Notes

Summary by CodeRabbit

  • Chores
    • Updated Reth dependencies to v1.11.1 across the workspace.
    • Bumped Alloy and associated alloy crates to v1.6.3.
    • Updated nybbles to v0.4.8.
  • Tests
    • Added a deterministic engine tree configuration helper for end-to-end tests.
    • Applied the new tree configuration to multiple e2e tests to ensure consistent test environments.

@coderabbitai
Copy link

coderabbitai bot commented Feb 24, 2026

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Workspace dependency versions updated (reth -> v1.11.1, alloy -> 1.6.3, nybbles -> 0.4.8) and several end-to-end tests were configured to use a deterministic engine tree config; no public API changes or runtime control-flow modifications.

Changes

Cohort / File(s) Summary
Workspace manifest
Cargo.toml
Bumped reth-* workspace dependencies from v1.11.0v1.11.1; updated Alloy-related crates to 1.6.3; bumped nybbles 0.4.70.4.8; preserved default-features and alignment comments.
Test helper
crates/tests/src/common.rs
Added pub fn e2e_test_tree_config() -> TreeConfig and imported TreeConfig to construct a deterministic engine tree configuration for e2e tests (legacy state root enabled, proof v2 disabled).
E2E tests
crates/tests/src/e2e_tests.rs, crates/tests/src/test_evolve_engine_api.rs
Applied the new tree config in multiple end-to-end tests by adding with_tree_config(e2e_test_tree_config()) to Setup chains and updated imports/formatting accordingly. No logic or API changes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped through Cargo, nibbled each line,

Reth and Alloy tuned, all set to align,
A tree for tests, steady and neat,
Small changes stitched, quiet and sweet,
— from a rabbit, happy, light-footed and fine.

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is empty—it contains only the template structure with no actual content filled in, and all checklist items are unchecked. Fill in the description section with a summary of changes (dependency upgrades and tree config additions), select the appropriate change type, and update the checklist to reflect completed verification steps.
Title check ❓ Inconclusive The title "upgrade 1.11.1" is vague and generic, referring only to a version number without describing the actual changes or context of the upgrade. Use a more descriptive title that clarifies what is being upgraded and why, such as "Upgrade Reth and Alloy dependencies to v1.11.1" or similar.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch marko/1.11.1

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @tac0turtle, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on a routine maintenance update, specifically upgrading all Reth dependencies within the project to their latest stable patch version, v1.11.1. This ensures the project benefits from any recent bug fixes, minor improvements, or security patches introduced in the upstream Reth library, maintaining compatibility and stability with the broader Ethereum ecosystem.

Highlights

  • Reth Dependency Upgrade: All Reth-related dependencies across the workspace have been upgraded from version v1.11.0 to v1.11.1.
  • Documentation Update: A comment indicating the aligned Alloy dependencies has been updated to reflect the new Reth version v1.11.1.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • Cargo.toml
    • Updated all reth-* dependencies to use tag v1.11.1.
    • Adjusted the comment for Alloy dependencies to indicate alignment with reth v1.11.1.
Activity
  • No human activity (comments, reviews) has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@claude
Copy link

claude bot commented Feb 24, 2026

Claude finished @tac0turtle's task —— View job


Code Review for PR #139: Dependency Upgrade to v1.11.1

Todo List

  • Read and analyze changed files
  • Review dependency compatibility issues
  • Check test configuration changes
  • Assess security and performance implications
  • Provide comprehensive review feedback

Summary

This PR upgrades Reth dependencies from v1.11.0 to v1.11.1 and makes test infrastructure improvements. However, there are critical dependency issues that will cause build failures.

🚨 Critical Issues

1. Removed reth-optimism Crates - Cargo.toml:33-39

CRITICAL BUILD FAILURE: The reth-optimism-* crates were removed from paradigmxyz/reth in v1.11.0 and moved to ethereum-optimism/optimism. The current configuration will fail during cargo build.

Required Fix:

# Update all reth-optimism-* entries from:
reth-optimism-node = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
# To:
reth-optimism-node = { git = "https://github.com/ethereum-optimism/optimism.git", tag = "<equivalent-tag>" }

2. Version Mismatches in Alloy Dependencies - Cargo.toml:108,114

HIGH RISK: Inconsistent Alloy versions will cause type conflicts:

  • Most Alloy crates: 1.6.3
  • alloy-primitives: 1.5.6
  • alloy-sol-types: 1.5.6

Required Fix:

alloy-primitives = { version = "1.6.3", default-features = false }  # was 1.5.6
alloy-sol-types = { version = "1.6.3", default-features = false }   # was 1.5.6

✅ Positive Changes

Test Infrastructure Improvements

The addition of e2e_test_tree_config() in crates/tests/src/common.rs:109-113 is excellent:

  • Addresses upstream bug: Prevents debug-mode panic in reth's deferred trie data handling
  • Deterministic testing: Enables legacy state root with proof v2 disabled
  • Proper implementation: Applied consistently across all E2E tests

Dependency Alignment

  • All core Reth dependencies correctly updated to v1.11.1
  • Workspace structure maintained properly
  • Comment indicating Alloy alignment updated

🔍 Security Assessment

LOW RISK: This is a patch-level upgrade (1.11.0 → 1.11.1) focusing on:

  • Bug fixes and stability improvements
  • No breaking API changes
  • Maintained security boundaries

📊 Performance Impact

NEUTRAL TO POSITIVE:

  • Patch upgrades typically include performance optimizations
  • Test determinism improvements will reduce test flakiness
  • No architectural changes that would impact runtime performance

🧪 Test Coverage

GOOD: The test configuration changes demonstrate thorough consideration:

  • Proactive fix for known upstream testing issues
  • Applied consistently across test suites
  • Maintains existing test coverage

Recommendations

  1. IMMEDIATE: Fix the reth-optimism repository references
  2. IMMEDIATE: Align Alloy dependency versions to 1.6.3
  3. BEFORE MERGE: Verify build success after fixes
  4. OPTIONAL: Consider adding dependency version validation to CI

Blocking Issues for Merge

  • Fix reth-optimism crate repository sources
  • Align all Alloy versions to 1.6.3
  • Verify successful build after corrections

Once these critical issues are resolved, this is a solid maintenance upgrade that improves test stability.


@tac0turtle tac0turtle marked this pull request as ready for review February 24, 2026 11:53
@tac0turtle tac0turtle requested a review from a team as a code owner February 24, 2026 11:53
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request upgrades the reth dependencies from version v1.11.0 to v1.11.1. The changes in Cargo.toml correctly update the tags for all reth-* dependencies. However, I've found that the alloy and nybbles dependencies are not aligned with the versions used in reth v1.11.1, despite a comment suggesting they are. This could lead to potential compatibility issues. I've left a comment with the correct versions to ensure consistency and prevent future problems.

Copy link

@coderabbitai coderabbitai bot left a 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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
Cargo.toml (1)

111-111: ⚠️ Potential issue | 🟠 Major

Upgrade all alloy-* crates from 1.5.6 to 1.6.3 to match reth v1.11.0's Alloy dependency.

The version mismatch is confirmed: alloy-rpc-types-engine is pinned to 1.6.3 while all other alloy-* crates are at 1.5.6. Reth v1.11.0 (the latest 1.11.x release) explicitly bumped to Alloy 1.6.3 across the entire workspace. Since alloy-rpc-types-engine 1.6.3 is a patch release with only transport-layer bugfixes and is not backwards-compatible with 1.5.6, Cargo will attempt to unify the conflicting versions from the dependency graph, causing duplicate-crate and type-mismatch compile errors.

Lines 96–120 should all specify version = "1.6.3" to match reth's expected Alloy surface.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Cargo.toml` at line 111, Multiple alloy-* crate dependencies are mismatched:
update every alloy-* dependency entry currently pinned to version "1.5.6" to
"1.6.3" to match alloy-rpc-types-engine which is already at 1.6.3; specifically
change the version strings for crates like alloy-*, alloy-rpc-*, alloy-foo
(where present) in Cargo.toml so all alloy-* entries use version = "1.6.3" to
avoid duplicate-crate/type-mismatch issues with reth v1.11.0.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@Cargo.toml`:
- Around line 33-39: The listed reth-optimism crates (reth-optimism-node,
reth-optimism-cli, reth-optimism-rpc, reth-optimism-forks,
reth-optimism-chainspec, reth-optimism-payload-builder,
reth-optimism-primitives) are no longer present in paradigmxyz/reth at tag
v1.11.1; update their git source to the new repository
(https://github.com/ethereum-optimism/optimism) and set the appropriate tag that
contains these crates (the tag equivalent to v1.11.1 in the optimism repo) so
Cargo can fetch them successfully.

---

Outside diff comments:
In `@Cargo.toml`:
- Line 111: Multiple alloy-* crate dependencies are mismatched: update every
alloy-* dependency entry currently pinned to version "1.5.6" to "1.6.3" to match
alloy-rpc-types-engine which is already at 1.6.3; specifically change the
version strings for crates like alloy-*, alloy-rpc-*, alloy-foo (where present)
in Cargo.toml so all alloy-* entries use version = "1.6.3" to avoid
duplicate-crate/type-mismatch issues with reth v1.11.0.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a5305fc and 83a5427.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • Cargo.toml

Cargo.toml Outdated
Comment on lines +33 to +39
reth-optimism-node = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
reth-optimism-cli = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
reth-optimism-rpc = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
reth-optimism-forks = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
reth-optimism-chainspec = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
reth-optimism-payload-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
reth-optimism-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if reth-optimism crates exist at the specified tag in paradigmxyz/reth
# First, check the structure of the repo at v1.11.1

# Try to get the contents of the crates directory at v1.11.1
echo "=== Checking for optimism crates in paradigmxyz/reth at v1.11.1 ==="
gh api "repos/paradigmxyz/reth/contents/crates?ref=v1.11.1" --jq '.[] | select(.name | startswith("reth-optimism")) | .name' 2>&1 | head -20 || echo "Could not fetch via API"

echo ""
echo "=== Checking reth Cargo.toml at v1.11.1 for optimism dependencies ==="
gh api "repos/paradigmxyz/reth/contents/Cargo.toml?ref=v1.11.1" --raw 2>&1 | grep -i optimism | head -10 || echo "No optimism references found in workspace Cargo.toml"

Repository: evstack/ev-reth

Length of output: 340


🌐 Web query:

reth v1.11.0 optimism crates moved ethereum-optimism/optimism

💡 Result:

In Reth v1.11.0 (Feb 16, 2026), vanilla op-reth binaries are no longer shipped, because op-reth was removed from the paradigmxyz/reth repository and split out. The release notes explicitly state op-reth was removed and now lives in a dedicated repo (linked from the release). [1]

The PR that implemented this for v1.11.0 (paradigmxyz/reth#21532, merged Feb 6, 2026) states that it:

  • deletes crates/optimism/ and other op-reth-specific files from reth
  • and that op-reth “has moved to ethereum-optimism/optimism with git history preserved”. [2]

The Optimism monorepo has a tracking issue for this migration (ethereum-optimism/optimism#18927, opened Jan 23, 2026) listing the op-reth migration and related crate moves. [3]

Sources: [1] [2] [3]


reth-optimism-* crates no longer exist in paradigmxyz/reth at v1.11.1—build will fail.

The op-reth crates were deleted from paradigmxyz/reth in v1.11.0 (PR #21532, merged Feb 6, 2026) and moved to ethereum-optimism/optimism with git history preserved. Since v1.11.1 is a patch release after v1.11.0, pulling reth-optimism-node, reth-optimism-cli, reth-optimism-rpc, reth-optimism-forks, reth-optimism-chainspec, reth-optimism-payload-builder, and reth-optimism-primitives from paradigmxyz/reth at tag v1.11.1 will fail. Update the git source to https://github.com/ethereum-optimism/optimism with the appropriate tag.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Cargo.toml` around lines 33 - 39, The listed reth-optimism crates
(reth-optimism-node, reth-optimism-cli, reth-optimism-rpc, reth-optimism-forks,
reth-optimism-chainspec, reth-optimism-payload-builder,
reth-optimism-primitives) are no longer present in paradigmxyz/reth at tag
v1.11.1; update their git source to the new repository
(https://github.com/ethereum-optimism/optimism) and set the appropriate tag that
contains these crates (the tag equivalent to v1.11.1 in the optimism repo) so
Cargo can fetch them successfully.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
Cargo.toml (1)

33-39: ⚠️ Potential issue | 🔴 Critical

reth-optimism-* crates still sourced from paradigmxyz/reth — build will fail.

The Optimism crates have moved to ethereum-optimism/optimism; OP-Reth is no longer in paradigmxyz/reth. Bumping the tag to v1.11.1 does not fix this — the crates simply do not exist in paradigmxyz/reth at that tag. These entries need their git source updated to the new repository with the corresponding tag.

🔧 Proposed fix — update git source for all reth-optimism-* crates
-reth-optimism-node = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
-reth-optimism-cli = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
-reth-optimism-rpc = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
-reth-optimism-forks = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
-reth-optimism-chainspec = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
-reth-optimism-payload-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
-reth-optimism-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.11.1" }
+reth-optimism-node = { git = "https://github.com/ethereum-optimism/optimism.git", tag = "<equivalent-tag>" }
+reth-optimism-cli = { git = "https://github.com/ethereum-optimism/optimism.git", tag = "<equivalent-tag>" }
+reth-optimism-rpc = { git = "https://github.com/ethereum-optimism/optimism.git", tag = "<equivalent-tag>" }
+reth-optimism-forks = { git = "https://github.com/ethereum-optimism/optimism.git", tag = "<equivalent-tag>" }
+reth-optimism-chainspec = { git = "https://github.com/ethereum-optimism/optimism.git", tag = "<equivalent-tag>" }
+reth-optimism-payload-builder = { git = "https://github.com/ethereum-optimism/optimism.git", tag = "<equivalent-tag>" }
+reth-optimism-primitives = { git = "https://github.com/ethereum-optimism/optimism.git", tag = "<equivalent-tag>" }

Replace <equivalent-tag> with the tag in ethereum-optimism/optimism that corresponds to the reth v1.11.1 baseline.

#!/bin/bash
# Verify: do reth-optimism-* crates exist in paradigmxyz/reth at v1.11.1?
echo "=== Checking for reth-optimism crates in paradigmxyz/reth at v1.11.1 ==="
gh api "repos/paradigmxyz/reth/contents/crates?ref=v1.11.1" \
  --jq '.[] | select(.name | startswith("reth-optimism")) | .name' 2>&1 || echo "None found / API error"

echo ""
echo "=== Tags in ethereum-optimism/optimism that may correspond to reth v1.11.1 ==="
gh api "repos/ethereum-optimism/optimism/tags" --jq '.[].name' 2>&1 | head -20
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Cargo.toml` around lines 33 - 39, The Cargo.toml entries for the
reth-optimism-* crates point to the wrong repository (paradigmxyz/reth) and must
be updated to the new repository; change each package entry reth-optimism-node,
reth-optimism-cli, reth-optimism-rpc, reth-optimism-forks,
reth-optimism-chainspec, reth-optimism-payload-builder, and
reth-optimism-primitives to use git =
"https://github.com/ethereum-optimism/optimism" and set the correct tag that
corresponds to the reth v1.11.1 baseline (replace <equivalent-tag> with the
matching tag in ethereum-optimism/optimism); ensure all seven entries use the
same updated git URL and matching tag so Cargo can find the crates.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@Cargo.toml`:
- Around line 33-39: The Cargo.toml entries for the reth-optimism-* crates point
to the wrong repository (paradigmxyz/reth) and must be updated to the new
repository; change each package entry reth-optimism-node, reth-optimism-cli,
reth-optimism-rpc, reth-optimism-forks, reth-optimism-chainspec,
reth-optimism-payload-builder, and reth-optimism-primitives to use git =
"https://github.com/ethereum-optimism/optimism" and set the correct tag that
corresponds to the reth v1.11.1 baseline (replace <equivalent-tag> with the
matching tag in ethereum-optimism/optimism); ensure all seven entries use the
same updated git URL and matching tag so Cargo can find the crates.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 83a5427 and f287536.

📒 Files selected for processing (1)
  • Cargo.toml

Copy link
Member

@julienrbrt julienrbrt left a comment

Choose a reason for hiding this comment

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

utACK

@tac0turtle tac0turtle merged commit ecfefef into main Feb 24, 2026
14 checks passed
@tac0turtle tac0turtle deleted the marko/1.11.1 branch February 24, 2026 17:13
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