Skip to content

.deps retired: siblings as pinned git dependencies, iroh-relay as a pinned binary - #84

Merged
lann merged 1 commit into
mainfrom
review-setup-sh-pins
Aug 22, 2026
Merged

.deps retired: siblings as pinned git dependencies, iroh-relay as a pinned binary#84
lann merged 1 commit into
mainfrom
review-setup-sh-pins

Conversation

@lannbot

@lannbot lannbot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

With the siblings publishing releases, the .deps/ pinned-checkout mechanism is retired. "Published" changes the form of the pins, not their existence — the sibling Rust crates are not on crates.io; their release notes name pinned cargo git dependencies as the consumption form — so the pins move from scripts/setup.sh into Cargo.toml/Cargo.lock, at the exact revs setup.sh pinned (no version motion).

  • Siblings: [workspace.dependencies] git deps by rev (polymorph-tls-{profile,quic}, polymorph-webcrypto-{guest,wasmtime}, wasmtime-webrtc-datachannels, wasmtime-websocket), defined once, members consume via workspace = true. Cargo.lock confirms: identical versions, only source/checksum lines added, no duplicate sibling crates.
  • Upstream iroh: tools/iroh-peer takes iroh = "=1.0.3" from the registry; the relay server becomes the upstream prebuilt iroh-relay 1.0.3 binary, installed version-checked by setup.sh via cargo-binstall. The crate/binary co-pin is named at both definition sites; the matrix is the behavioral gate on their agreement.
  • setup.sh now installs only the pinned toolchain/tools and that binary — no repository checkouts; relay-build and CI's .deps/iroh cache plumbing (workspace entry, key inputs, build-dir paths, restore-mtimes .deps/*) are deleted; jsr-publish drops its setup step entirely (cargo fetches git deps itself).
  • Relay consumers (matrix.sh, bench.sh, host-deltic/src/repo.ts, the experiments' runners) resolve iroh-relay from PATH.

Closes #64 by removal: with no checkouts, the stale-.deps failure mode the guard was requested for cannot occur. Cargo git deps are fingerprinted by rev, not mtime, so the sibling-side mtime dance disappears with it.

Deliberately out of scope: the experiments' deltic module imports still name .deps sources — their JSR migration is deferred to #83 while the @polymorph packages are being reved. Those experiments are manual probes, not in CI.

Gates (all green locally): setup.sh twice (idempotent, creates no .deps), just check, just build, just matrix (13/13 pairings), just exam-deltic (7/7 scenarios), just bench (budgets held). First CI run on main will be cold — the cache-key shapes changed.

Fixes #64

…inned binary

The sibling Rust crates move from path deps into checkouts under .deps
to cargo git dependencies pinned by rev in [workspace.dependencies] —
the consumption form the siblings' v0.1.0 releases name — at the same
commits setup.sh pinned, so Cargo.lock carries the pins and staleness
is impossible rather than guarded (the trap issue #64 documents).
tools/iroh-peer takes upstream iroh from the registry (=1.0.3), and the
relay server the gates pair it with arrives as the upstream prebuilt
binary via cargo-binstall, version-checked in setup.sh; the two co-pins
are named at both sites.

setup.sh keeps only the pinned toolchain/tools plus that binary; the
relay-build recipe, the .deps/iroh cache plumbing in CI, and
jsr-publish's setup step all go. Relay consumers resolve iroh-relay
from PATH.

The experiments' deltic module imports still name .deps sources; their
JSR migration is deferred to issue #83 while the @PolyMorph packages
are being reved.

Fixes #64
@lann
lann enabled auto-merge August 22, 2026 03:38
@lann
lann merged commit c2cd329 into main Aug 22, 2026
1 check passed
@lann
lann deleted the review-setup-sh-pins branch August 22, 2026 03:52
lannbot pushed a commit that referenced this pull request Aug 22, 2026
Reconciles the polyengine-0.3.0 rename with #84's mechanism change:
their relay-binary/Cargo-git-dep mechanics win over the retired
setup.sh sibling clones (our pin bumps there drop out); our renames win
on names and paths. The Cargo sibling git deps bump to the merged
polyengine-0.3.0 mains (tls ab4f8836, webcrypto 422796bd, webrtc
42f76c98, websocket 563aa33f) and Cargo.lock follows.

Gates on the merged tree: full just ci — exam-polyengine 7/7 (one
runtime 0.3.0, no raw URLs), matrix 13/13, bench budgets hold.
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.

deltic-setup: fail loud when .deps checkouts are stale against setup.sh's pins

2 participants