Status (updated): Most of this is fixed in PR #396 (commit bfceb3d7a3).
The only remaining test-compile failures are the 21 in the vendored
crates/storage/libmdbx-rs/tests/ — see Remaining below.
Background
The reth v2.3.0 merge updated library APIs but not the corresponding test code,
breaking CI (test / ethereum, unit, clippy) while main stayed green (e.g.
#395's test / ethereum runs and passes). These were introduced by the merge,
not pre-existing.
Remaining
| Failing target |
Errors |
Root cause |
reth-libmdbx (cursor + transaction tests) |
21 |
Transaction::cursor(..) signature drift — tests pass a u32 dbi, the API now takes &Database. In crates/storage/libmdbx-rs/tests/. |
libmdbx-rs is treated as vendored (CLAUDE.md: "never modify libmdbx sources"),
though that rule targets the C sources under mdbx-sys/libmdbx/, not the Rust
binding's own tests/. Fixing these is mechanical (update the cursor(dbi) call
sites) but needs a decision on whether the binding tests are in scope to touch.
Until this is resolved, test / ethereum, unit, and clippy stay red (they
compile the libmdbx integration tests). clippy --benches additionally hits an
old-API state_root_task.rs bench, out of the --tests scope.
Fixed in #396 (bfceb3d7a3)
ethereum feature — re-added the no-op ethereum = [] to bin/reth (it
was dropped with the deleted reth-bench crate), so
--features "asm-keccak ethereum config-from-env" resolves again.
- reth-rpc (148) —
MockEthProvider now implements PruneCheckpointReader,
the bound v2.3.0 added to RpcNodeCore; one fixture fix cleared all 148.
- revm40 drift —
AccountInfo { .. } now takes account_id;
SparseTrieErrorKind::BlindedNode is a tuple variant.
- reth-engine-tree (19) + reth-exex (4) — adapted tests to
insert_block
(StorageLocation), spawn (ExecutableTxIterator), OnStateHook::on_state,
the PayloadValidator split, EngineApiTreeState::new, mpsc-vs-crossbeam
channels, and #[must_use] on_engine_message.
- reth-evm — removed 4 obsolete
balance_increment_state tests (the helper
was removed in alloy-evm 0.36.0 and is unused by production code).
- e2e-rocksdb — removed the test, the orphaned
db/migrate_v2.rs, and the
e2e-rocksdb CI job (the RocksDB backend was intentionally dropped in the
merge — "不并存"). If e2e-rocksdb is a required status check, drop it from the
required list or the PR stays BLOCKED.
- check-toml / typos — dprint-formatted 9 drifted
Cargo.tomls; fixed 7 doc
typos.
Background
The reth v2.3.0 merge updated library APIs but not the corresponding test code,
breaking CI (
test / ethereum,unit,clippy) whilemainstayed green (e.g.#395's
test / ethereumruns and passes). These were introduced by the merge,not pre-existing.
Remaining
reth-libmdbx(cursor+transactiontests)Transaction::cursor(..)signature drift — tests pass au32dbi, the API now takes&Database. Incrates/storage/libmdbx-rs/tests/.libmdbx-rsis treated as vendored (CLAUDE.md: "never modify libmdbx sources"),though that rule targets the C sources under
mdbx-sys/libmdbx/, not the Rustbinding's own
tests/. Fixing these is mechanical (update thecursor(dbi)callsites) but needs a decision on whether the binding tests are in scope to touch.
Until this is resolved,
test / ethereum,unit, andclippystay red (theycompile the libmdbx integration tests).
clippy --benchesadditionally hits anold-API
state_root_task.rsbench, out of the--testsscope.Fixed in #396 (
bfceb3d7a3)ethereumfeature — re-added the no-opethereum = []tobin/reth(itwas dropped with the deleted
reth-benchcrate), so--features "asm-keccak ethereum config-from-env"resolves again.MockEthProvidernow implementsPruneCheckpointReader,the bound v2.3.0 added to
RpcNodeCore; one fixture fix cleared all 148.AccountInfo { .. }now takesaccount_id;SparseTrieErrorKind::BlindedNodeis a tuple variant.insert_block(
StorageLocation),spawn(ExecutableTxIterator),OnStateHook::on_state,the
PayloadValidatorsplit,EngineApiTreeState::new, mpsc-vs-crossbeamchannels, and
#[must_use]on_engine_message.balance_increment_statetests (the helperwas removed in alloy-evm 0.36.0 and is unused by production code).
db/migrate_v2.rs, and thee2e-rocksdbCI job (the RocksDB backend was intentionally dropped in themerge — "不并存"). If
e2e-rocksdbis a required status check, drop it from therequired list or the PR stays BLOCKED.
Cargo.tomls; fixed 7 doctypos.