feat!: remove zcashd support entirely#1395
Open
zancas wants to merge 8 commits into
Open
Conversation
An audit of every zebra* and zcash* dependency edge (cargo machete, the compiler's unused_crate_dependencies lint, and inspection of each remaining single-reference hit) found exactly one dead edge: zainod declared zebra-chain but never referenced it. Remove it. Every other declared edge is genuinely used; zebra-chain remains the type backbone of the workspace, with some 350 references in zaino-state alone. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Advance ZEBRA_VERSION in .env.testing-artifacts from 6.0.0-rc.0 to the final 6.0.0 release. Zebrad 6.0.0 depends on zebra-chain ^11.1.0, the same crate generation the workspace now pins, so the zebrad binary the live tests run against and the zebra libraries zaino links are once again from a single release. The makers check-matching-zebras guard passes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A workspace-wide unused-dependency audit (the compiler's unused_crate_dependencies lint analyzed per target, cross-checked with cargo machete and a text search of every candidate's package, including feature-gated code) found twelve dead edges. Remove them: prost, bs58, nonempty, derive_more, and once_cell from zaino-state; tracing-subscriber from zainod; and tracing, corez, serde_json, tempfile, tower, and zip32 from clientless. The bs58, nonempty, and zip32 entries in [workspace.dependencies] lost their last inheritors and are removed with them. One edge that looks dead is kept deliberately: clientless does not import zainod in any test source, but its transparent_address_history_experimental feature forwards to zainod/transparent_address_history_experimental, and cargo rejects a feature forward to a non-dependency. A comment in the manifest now records that. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The same audit that removed the dead edges found three dependencies that are real but used exclusively under #[cfg(test)]: primitive-types in zaino-state (the legacy_chainwork_reference round-trip tests), tempfile in zainod (the config tests), and tonic in zaino-testutils (the cfg(test)-gated build_client helper). Move each from [dependencies] to [dev-dependencies] so shipped builds stop linking them. The lockfile is unchanged: dependency kind does not affect resolution. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…mary `makers test all` previously ran the packages set outside the summary runner, so the closing table covered only the two live partitions. The `all` branch now delegates to `live-summary --all`, which runs `makers container-test` first and prints its tallies as a `packages:` row above `clientless:`, `e2e:`, and `TOTAL:`, under a "test summary" header. `makers test live` is unchanged apart from the new column. The old contract is preserved: every set runs even when an earlier one fails, and the runner exits non-zero if any set did. Each row also gains a wall-clock time column, parsed from the nextest summary line's `[ 510.718s]` stamp. Durations are held as integer milliseconds in a u64 — whole seconds and a right-padded three-digit fraction parsed digit-by-digit, no floating point — and the TOTAL row sums them, which reads as true wall time because the suites run sequentially. Six new unit tests cover the parser (padding, short and absent fractions, and propagation through parse_summary), and the pre-existing `filter(..).last()` on a double-ended iterator is tightened to `rfind(..)` per clippy. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The test-environment image rebuild (first since the ZEBRA_VERSION bump changed the image tag) failed because Debian trixie point updates replaced two pinned package versions, and the archive does not keep superseded versions: protobuf-compiler 3.21.12-11 -> 3.21.12-11+deb13u1 (all three build stages) and curl 8.14.1-2+deb13u3 -> 8.14.1-2+deb13u4 (both stages). Every other pin in the Containerfile still matches the archive; verified against qa.debian.org/madison and a live trixie-slim container. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
zcashd support was gated behind the opt-in zcashd_support feature (docs/adr/0001, 0005) as a staging post on the deprecation path. This takes the final step, recorded in docs/adr/0008: the feature and everything it gated are deleted — the zcashd-shaped getpeerinfo parsing in zaino-fetch, the zcashd validator launchers and ValidatorKind::Zcashd in zaino-testutils, and the zcashd-backed live suites (json_server, devtool_zcashd, and the zcashd arms of the shared suites). Zebra (or another Zaino) is the only supported backing validator. The test-environment image no longer downloads or builds zcashd: the ZCASH_VERSION pin, the zcashd Containerfile stages, and the zcashd-conditional image targets are gone, collapsing the build matrix to final-prebuilt and final-zebrad-source, and the image tag no longer embeds a zcashd version. The --with-zcashd flag, the zcashd_test task, and the check-no-zcashd guard family are deleted; the guard is moot now that the no-zcashd build is the only build. Zaino still serves the zcashd-compatible RPC surface to its own clients. That wire contract — field names, error codes, response shapes, the zcashd_build/zcashd_subversion protobuf fields — is Zaino's product and is unaffected by which validator backs the index, so the comments citing zcashd RPC semantics for the serving surface stay. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
zancas
marked this pull request as draft
July 13, 2026 17:24
zancas
marked this pull request as ready for review
July 13, 2026 17:52
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.
zcashd support was gated behind the opt-in
zcashd_supportfeature (docs/adr/0001, 0005) as a staging post on the deprecation path. This PR takes the final step, recorded in docs/adr/0008: the feature and everything it gated are deleted — the zcashd-shapedgetpeerinfoparsing in zaino-fetch, the zcashd validator launchers andValidatorKind::Zcashdin zaino-testutils, and the zcashd-backed live suites (json_server,devtool_zcashd, and the zcashd arms of the shared suites). Zebra (or another Zaino) is the only supported backing validator.The test-environment image no longer downloads or builds zcashd: the
ZCASH_VERSIONpin, the zcashd Containerfile stages, and the zcashd-conditional image targets are gone, collapsing the build matrix to final-prebuilt and final-zebrad-source, and the image tag no longer embeds a zcashd version. The--with-zcashdflag, thezcashd_testtask, and the check-no-zcashd guard family are deleted; the guard is moot now that the no-zcashd build is the only build.Zaino still serves the zcashd-compatible RPC surface to its own clients. That wire contract — field names, error codes, response shapes, the
zcashd_build/zcashd_subversionprotobuf fields — is Zaino's product and is unaffected by which validator backs the index, so the comments citing zcashd RPC semantics for the serving surface stay.This PR is stacked on #1394 and should merge after it: the branch contains #1394's seven commits, so until that PR merges the diff here shows them too. Only the final commit belongs to this PR.
Note for reviewers:
cargo clippy --all-features -D warningsis red on the base branch already (E0425 onnetwork/pool_listsin the feature-gatedwrite_core.rscode); this PR neither causes nor fixes that.🤖 Generated with Claude Code