ethereum-optimism / ethereum-optimism/optimism
op-reth: Remove patch section and reth inter-dependencies on optimism crates
@theochap is already working on this.
Since Sep 15, 2026.
- Dominant language
- Go
- Stars
- 6.5k
- Forks
- 4k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 134
Description
Summary
Once op-reth is migrated to the monorepo:
The op-reth/Cargo.toml workspace currently requires a [patch] section to override reth's internal dependencies on optimism crates. This is needed because some reth crates have optional dependencies on reth-optimism-* crates behind the op feature flag.
Problem
When using reth as a git dependency (tag v1.10.2), the following reth crates pull in their own versions of optimism crates:
| Reth Crate | Optimism Dependency | Feature Flag |
|---|---|---|
reth-engine-local |
reth-optimism-chainspec |
op (optional) |
reth-rpc-convert |
reth-optimism-primitives |
op (optional) |
reth-db-api |
reth-optimism-primitives |
op (optional) |
This creates duplicate crate instances (local vs git-sourced) with incompatible trait implementations.
Current Workaround
[patch."https://github.com/paradigmxyz/reth"]
reth-optimism-chainspec = { path = "chainspec/" }
reth-optimism-primitives = { path = "primitives/" }
Proposed Solution
Work with the reth team to either:
- Remove the optional optimism dependencies from core reth crates
- Or establish a proper separation where op-reth can be used without patch overrides
This would allow op-reth to be a clean standalone workspace without needing to patch upstream dependencies.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with op-reth/Cargo.toml and inspect the [patch] entries for reth-optimism-chainspec and reth-optimism-primitives, along with the op feature dependencies listed in the issue. Coordinate with the reth team on the upstream separation; done means op-reth no longer needs patch overrides and does not pull duplicate optimism crate instances.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100