ethereum-optimism / ethereum-optimism/optimism

kona pure derivation — Phase 1: feature-gate the existing async pipeline

Open
#20,696 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.