Skip to content

deps: 0.3.1 ships internally split (chia-sdk-* on 0.34 beside chia-* on 0.36.1) — publish 0.3.2 #5

Description

@MichaelTaylor3d

Task

dig-chainsource-interface 0.3.1 — the latest published version — ships INTERNALLY SPLIT across two
chia lines, and it is the single root blocking every consumer's chia-0.36 convergence.

Verified directly against the crates.io index:

chia-bls           ^0.36.1     chia-sdk-driver  ^0.34
chia-protocol      ^0.36.1     chia-sdk-test    ^0.34
chia-puzzle-types  ^0.36.1     chia-sdk-types   ^0.34
chia-traits        ^0.36.1
chia-puzzles       ^0.20

Publish 0.3.2 with the chia-sdk-* trio on 0.36, matching the rest.

Why this is the blocker rather than one crate's untidiness

dig-app's own declarations are already on 0.36 — §2.4b swept them — and its lock still carries a
0.34 line.
cargo tree -i traces all four splits to this one root. The consumer cannot fix it: the
versions are semver-incompatible, so no cargo update collapses them, and the only in-repo remedies are a
[patch] or a two-version shim — both forbidden by §4.1 as the byte-drift class.

So a lane did the right thing and stopped, reporting the shape (dig-app PR#282). Every other consumer
will hit exactly this wall until 0.3.2 exists.

The pattern this is the fourth instance of

A crate shipping split across two chia lines has now happened four times in this ecosystem —
dig-gossip 0.29.0, dig-nat 0.19.0, digstore-crypto, and this. Every one compiled cleanly, because
its consumers were also stale, and each was found only when a consumer tried to converge.

The check that catches it is not an enumerated list of crate names — both earlier splits passed gates
whose invariant was written as a list that omitted chia-bls. Ask whether any chia type reaches a
PUBLIC signature, and from how many lines.

And cargo tree -d is not the gate: chia-bls alone resolves to six lines on an unmodified tree,
mostly rooted upstream in clvmr/chialisp and reaching no public DIG signature. Trace each duplicate to
its root.

Scope

  • Move chia-sdk-driver, chia-sdk-test, chia-sdk-types to ^0.36; publish 0.3.2.
  • Verify from the RESOLVED LOCK, not the carets.claude/scripts/lock-family-scan.sh <lock>, run
    unpiped. Note it was itself blind to a first-party edge on an allowlisted family until 45bfed4, so
    use a current checkout of it.
  • Adapting a call site to a moved type is correct; bridging two versions with a shim is never correct.
    If the delta does not line up, report the shape and stop rather than adapting around it.
  • Where any chia type reaches a public signature, say so explicitly in the PR — that is the surface a
    consumer inherits.

Then unblock the consumers

dig-app#274 resumes the moment 0.3.2 publishes. Check for other consumers on 0.3.1 and say which they
are; do not open their adoption PRs from this ticket — file or hand off, so this one stays closable.

Context

Done condition

dig-chainsource-interface 0.3.2 is live on crates.io with one chia line per family, confirmed on the
index with the required User-Agent header.

Effort

Low — a manifest change and a publish, unless a moved type reaches a public signature.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions