ethereum-optimism / ethereum-optimism/optimism
kona pure derivation — Phase 1: feature-gate the existing async pipeline
- Dominant language
- Go
- Stars
- 6.5k
- Forks
- 4k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 145
Description
Add an `async` Cargo feature on `kona-derive` (`default = ["async"]`). Gate the async surface (`pipeline::*`, `stages::*`, `sources::*`, `traits::*`, async-only test mocks) behind `#[cfg(feature = "async")]`. Keep sync items unconditional (`StatefulAttributesBuilder`, error types, `Signal`/`ResetSignal`/`ActivationSignal`, `StepResult`).
**Zero behavior change.** Purely additive feature gating that sets up the migration corridor for Phases 2–6.
## Deliverables
- `crates/protocol/derive/Cargo.toml`: `async` feature, `async-trait` optional dep.
- `crates/protocol/derive/src/lib.rs` (and submodule declarations) gated appropriately.
- `cargo build -p kona-derive --no-default-features` succeeds and exposes only sync items.
- `cargo build -p kona-derive` (default) compiles every existing test target.
- `cargo test --workspace` and `cargo clippy --workspace -- -D warnings` pass unchanged.
- **Inventory deliverable** (committed `MIGRATION.md` at the kona-derive crate root, or in the PR description): every external consumer of `kona-derive`'s async surface, including `providers-local::BufferedL2Provider`, every site under `bin/{node,client,host}/`, and the integration suites in `rust/kona/tests/{node,supervisor}/`. The `providers-local` crate's fate (port to sync vs. retire) is decided here, not deferred.
Part of #20695.
🤖 *Generated by Claude Code*
Contributor guide
Research direction
Start with crates/protocol/derive/Cargo.toml and crates/protocol/derive/src/lib.rs, then inspect the submodule declarations and async consumers named in providers-local, bin/{node,client,host}/, and rust/kona/tests/{node,supervisor}/. Record every consumer in MIGRATION.md and resolve the providers-local fate. Done means both build modes compile and cargo test --workspace plus clippy pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100