chore(deps): bump signet-sdk family to gouda cohort#277
Draft
rswanson wants to merge 8 commits into
Draft
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brings
init4tech/builderinto the gouda rollup cohort alongside the lockstep PRs in the rest of the stack:signet-{constants,sim,tx-cache,types,zenith,bundle}pinned toinit4tech/signet-sdk@ecce6a4(sdk#236)init4-bin-basepinned toinit4tech/bin-base@b2f92e4(bin-base#149)signet-{block-processor,genesis}pinned toinit4tech/node-components@752fa4a(node-components#144)Companion to
init4tech/signet#105cut 4 in the parmigiana gouda rollout (see/tmp/parmigiana-deploy-progress.md).Scope deviations from the design doc
The spec at
docs/superpowers/specs/2026-05-18-gouda-builder-deps-bump-design.mdwas written pre-triage; a few changes turned out to be functionally required and are larger than "mechanical rename":rust-versionbumped1.88→1.92—init4-bin-base @ b2f92e4declaresrust-version = "1.92", and the build refuses to compile against the lower MSRV.[patch.crates-io]section added — prevents a diamond-dep duplication wheresignet-evm/signet-extract/signet-journal(transitively pulled in byinit4-bin-base's internal deps) would otherwise resolve to crates.io 0.18 alongside our git-rev 0.19 copies. The previously committed[patch.crates-io]section was a fully-commented dev-convenience block; the new section is active.signet-block-processorremoved (not pinned) — its only used symbolrevm_specwas deleted in the gouda branch. The equivalent logic is inlined insrc/tasks/block/cfg.rsusingEthereumHardforks::is_osaka_active_at_timestampto returnSpecId::OSAKAorSpecId::PRAGUE.BundleClient+BundleCacheErrorinsrc/tasks/cache/bundle.rs— replacesinit4_bin_base::perms::tx_cache::BuilderTxCache. This is forced by a type incompatibility:init4-bin-base @ b2f92e4itself pinssignet-tx-cache = "0.18.0"(crates.io), which yields different nominal types than oursignet-tx-cache @ ecce6a4(0.19.0 git). The[patch.crates-io]section can't bridge it because 0.19.0 doesn't satisfy^0.18.0. Cleanest path forward would bebin-baseupdating its own pin; until then the local copy unblocks the gouda image cut.Image
Built locally with
docker buildx --platform linux/arm64 --ssh defaultonorbstack(native arm64 on Apple Silicon — no QEMU). Pushed to:637423570300.dkr.ecr.us-east-1.amazonaws.com/zenith-builder-example:gouda-c19ce64637423570300.dkr.ecr.us-east-1.amazonaws.com/zenith-builder-example:gouda-latestDigest:
sha256:26c75cd5e33f36dc3767b0af1e4d89498d85ae6caf2ebab17d2f1796a5f7d079Remote
docker buildx imagetools inspectconfirmslinux/arm64. ELFe_machine = 0xb7(AArch64) on the local image, prior to push.Reason for local build (vs. CI): the CI workflow
init4tech/actions/.github/workflows/ecr-build-and-push.yml@mainarch behavior is an open question flagged in the parmigiana progress doc — that audit is a separate follow-up.Test plan
cargo build --release --bin zenith-builder-example(exits 0)cargo fmt --all(no diff)make clippy(passes with-D warnings)RUSTDOCFLAGS="-D warnings" cargo doc --no-deps(passes)make test(18/18 unit tests pass)cargo test --features test-utils(all binaries compile; 1 runtime testtest_handle_buildskipped — requires live host RPC, returned 503; not a regression)linux/arm64, ELFe_machine = 0xb7linux/arm64parmigiananamespace (owned by node-ops; out of scope for this PR)🤖 Generated with Claude Code