Skip to content

chore(deps): bump signet-sdk family to gouda cohort#277

Merged
rswanson merged 13 commits into
mainfrom
feat/gouda-deps
May 21, 2026
Merged

chore(deps): bump signet-sdk family to gouda cohort#277
rswanson merged 13 commits into
mainfrom
feat/gouda-deps

Conversation

@rswanson
Copy link
Copy Markdown
Member

@rswanson rswanson commented May 18, 2026

Summary

Bumps the signet-sdk family to the gouda cohort (now published on crates.io) and adds a Gouda rollup chainspec arm.

Dep Before After
init4-bin-base 0.21.0 0.23.1
signet-{constants,evm,sim,tx-cache,types,zenith,bundle} 0.18.0 0.19.0
signet-genesis 0.18.0 0.19.0 (adds GOUDA_GENESIS)
builder package 1.2.0 1.3.0

Code changes

  • src/tasks/block/cfg.rs — add gouda::RU_CHAIN_ID arm to the rollup chainspec match (previously panicked at simulator startup with unimplemented!("Unknown chain ID: 792669")) and wire GOUDA_GENESIS into initialize_ru_chainspec. Adds a gouda_cfg_env_does_not_panic regression test.

MSRV bump

rust-version raised 1.881.92 — forced by init4-bin-base 0.23.1, which declares the same. Reflected in .claude/CLAUDE.md too.

Deployment

The previously-pushed image for this PR (gouda-c19ce64) predates the merge with main and the dep cutover. A re-cut is required before deploying into parmigiana.

Test plan

  • cargo build --release --bin zenith-builder-example
  • cargo fmt --all (no diff)
  • make clippy (passes with -D warnings)
  • RUSTDOCFLAGS="-D warnings" cargo doc --no-deps
  • make test (20/20 unit tests pass)
  • [~] cargo test --features test-utils (binaries compile; 1 runtime test test_handle_build requires live host RPC — pre-existing skip, not a regression)
  • Re-cut arm64 image at current HEAD and re-verify manifest
  • Deployment into parmigiana namespace (owned by node-ops; out of scope)

🤖 Generated with Claude Code

rswanson and others added 8 commits May 18, 2026 10:12
Captures the approved design for bringing the builder into the gouda
rollup cohort alongside signet PR #105: dep pins switch to git-rev
against the 0.19-family cohort SHAs, inline API porting for the
0.16→0.19 jump, local arm64 image build pushed to ECR. K8s manifest
changes and CI workflow arch audit are explicitly out of scope.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
7-phase plan (A through G): worktree verify, Cargo.toml dep bump,
iterative API porting against the 0.16->0.19 jump, lint/fmt/doc/test
gates, local arm64 buildx image, ECR push with dual arch verification,
draft PR + parmigiana progress doc update. Includes explicit stop-and-
surface triggers for transitive dep conflicts, structural API changes,
arm64 manifest poisoning, and unknown ECR repo.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- init4-bin-base @ b2f92e4 (bin-base#149)
- signet-{constants,sim,tx-cache,types,zenith} @ ecce6a4 (signet-sdk#236)
- signet-{block-processor,genesis} @ 752fa4a (node-components#144)
- signet-bundle (dev-dep) @ ecce6a4

Matches the lockstep pin set used by signet#105 cut 4. Build/test fixes
follow in subsequent commits.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Unify signet-sdk git revs to full hash (ecce6a48…) so they match
node-components and bin-base transitive deps; bump rust-version to 1.92;
add [patch.crates-io] to redirect crates.io 0.18 signet-sdk packages to
the git 0.19 versions (not effective yet — resolved via direct usage);
remove signet-block-processor dep (revm_spec removed upstream); bump
roaring 0.11.3→0.11.4 to fix Clone bound on Iter.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
cfg.rs: remove dependency on signet_block_processor::revm_spec (removed
upstream); inline equivalent spec-ID logic using EthereumHardforks trait
directly from reth_chainspec.

bundle.rs: replace init4_bin_base::perms::tx_cache::BuilderTxCache (wraps
crates.io signet-tx-cache 0.18) with local BundleClient using signet-tx-cache
0.19 git types; this eliminates the nominal type mismatch between 0.18
CachedBundle/TxRequirement and signet-sim 0.19 check_bundle_tx_list.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Restore `pub` visibility on `BundleCacheError` and
`BundlePoller::check_bundle_cache` — Phase C narrowed both to
`pub(crate)` which broke the integration test in `tests/`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… doc)

- Cargo.toml: add comment block above [patch.crates-io] explaining why
  it's active (init4-bin-base's transitive deps pull crates.io 0.18 copies
  of signet-evm/extract/journal; patch redirects our direct resolution to
  the 0.19 git rev). Patch does not bridge init4-bin-base's own internal
  0.18 sub-graph, which is why BundleClient is needed.
- src/tasks/cache/bundle.rs: switch BundleClient::get_bundles from
  #[instrument(skip_all)] to #[instrument(skip(self))] to match the repo
  CLAUDE.md tracing convention.
- .claude/CLAUDE.md: bump documented MSRV from 1.88 to 1.92 to reflect
  the actual change forced by init4-bin-base @ b2f92e4.
- Cargo.lock: drop orphan full-SHA pin (kept short-rev b2f92e4 to match
  node-components @ 752fa4ad which itself references bin-base by the
  short rev — using the full rev would split the lock into two
  init4-bin-base entries despite resolving to the same commit).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Phase C's replacement of signet_block_processor::revm_spec used reth's
ChainSpec-based hardfork lookup, which requires per-chain genesis
registration. The chainspec() match arm only listed parmigiana and
mainnet rollup chain ids; constructing a SignetCfgEnv with the gouda
rollup chain id (792669) fell through to the catch-all
unimplemented!("Unknown chain ID: 792669"), crashing the simulator
on first block environment update.

- Add gouda::RU_CHAIN_ID to the rollup match arm.
- Add gouda::RU_CHAIN_ID -> GOUDA_GENESIS in initialize_ru_chainspec.
- Add gouda_cfg_env_does_not_panic regression test.

Host chain id is unchanged from parmigiana (3151908) so the host arm
already covers gouda's host without modification.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Member

@Evalir Evalir left a comment

Choose a reason for hiding this comment

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

there's a bunch of unnecessary code this pr added—can we roll this back?

Comment thread src/tasks/block/cfg.rs
Comment thread src/tasks/cache/bundle.rs Outdated
Comment thread src/tasks/cache/bundle.rs Outdated
rswanson and others added 3 commits May 21, 2026 15:01
Replaces the git-rev pins added earlier in this PR with the now-published
releases:

- init4-bin-base 0.23.1 (was git b2f92e4)
- signet-{constants,sim,tx-cache,types,zenith,bundle} 0.19.0
  (was git ecce6a4 on init4tech/signet-sdk)
- signet-genesis 0.19.0 (was git 752fa4a on init4tech/node-components;
  v0.19.0 lifts GOUDA_GENESIS into the published release)

Drops the active [patch.crates-io] block — bin-base 0.23.1 now pins
signet-tx-cache 0.19.0 itself, so the diamond-dep duplication that
motivated the patch no longer exists. The commented dev-local patch
block (path = …) is preserved unchanged.

Bumps the builder package version 1.0.0 -> 1.3.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ache

The shim was a workaround for init4-bin-base pinning signet-tx-cache
0.18.0 while we ran 0.19.0 from a git rev. With init4-bin-base 0.23.1
now itself pinning signet-tx-cache 0.19.0, the type mismatch is gone
and the shim adds nothing — reverting to BuilderTxCache /
BuilderTxCacheError keeps this PR a pure dep bump.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
main moved while this PR was open (now at v1.2.0 with signet-sdk 0.18.0
and SSE-streaming bundle/tx pollers). Resolutions:

- Cargo.toml: keep our 1.3.0 + 0.19.0 cohort; carry over from main the
  `sse` feature on init4-bin-base, `signet-evm` as a direct dep, and
  `metrics-util` dev-dep.
- src/tasks/cache/bundle.rs: take main's SSE-streaming BundlePoller as-is.
  The shim revert from 76b4534 is moot — main already migrated away from
  the polling-based BuilderTxCache shape that the shim was working
  around.
- src/tasks/block/cfg.rs: take main's `EthereumHardfork::active_hardforks`
  spec_id (signet-evm 0.19.0 still ships this API); keep our gouda
  chainspec arm and GOUDA_GENESIS import; update the gouda regression
  test for the new 3-arg `SignetCfgEnv::new` signature.
- Cargo.lock: regenerated by cargo build.

Also drops `docs/superpowers/{plans,specs}/2026-05-18-gouda-builder-deps-bump*.md`
— working artifacts from the original implementation that don't belong
in the merged history.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@rswanson rswanson marked this pull request as ready for review May 21, 2026 19:17
@rswanson rswanson requested a review from Evalir May 21, 2026 19:17
Comment thread Cargo.toml Outdated
rswanson and others added 2 commits May 21, 2026 16:01
Address PR review comment to use semver-compliant 2.0.0 for the
breaking changes in the gouda cohort dependency bump.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CI runs with test-all-features: false, so the integration tests in
tests/ (all gated behind #![cfg(feature = "test-utils")]) don't
compile, and nothing in the unit test job needs anvil/forge/cast.

Meanwhile foundryup's "nightly" tag rotation broke the install step
upstream and was failing the job before any tests ran.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@rswanson rswanson merged commit d6ae47c into main May 21, 2026
6 checks passed
@rswanson rswanson deleted the feat/gouda-deps branch May 21, 2026 20:29
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