[F48 dry-run] validate publish chain on workspace 0.0.0

cargo publish --dry-run on each of the 9 workspace crates:
- Tier 1 leaves (mxaccess-codec, mxaccess-rpc, mxaccess-asb-nettcp)
  pass cleanly. cargo assembles each tarball, the only failure is
  the dry-run upload abort.
- Tiers 2 + 3 (galaxy, callback, asb, nmx, mxaccess, mxaccess-compat)
  surface the documented "no matching package" registry-lookup
  failure because workspace internal deps are pinned at version
  "0.0.0" which doesn't exist on crates.io. Expected; resolves at
  actual publish time once the leaves are uploaded and indexed.

cargo package --list confirms each crate ships only source + tests
+ small round-trip fixtures. No captures, decompiled binaries, or
accidental big files.

design/F48-publish-dry-run.md captures the per-crate run output,
the per-crate file count, and the V1 publish recipe (bump 0.0.0
→ 0.1.0 across workspace + internal-dep pins, publish in tier
order, wait for indexing between tiers, tag).

design/followups.md F48 entry annotated with the dry-run status.
The actual publish to crates.io is deliberately not done — that
needs maintainer auth + a deliberate version bump that's a release-
cut decision, not a routine validation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Joseph Doherty
2026-05-06 12:42:22 -04:00
parent c606736ec3
commit e77db4306a
2 changed files with 67 additions and 0 deletions
+2
View File
@@ -7,6 +7,8 @@ move to `## Resolved` with a date + commit hash.
## Open
### F48 — Execute `cargo publish` for the V1 release cut
**Dry-run status (2026-05-06):** `cargo publish --dry-run` validation pass per `design/F48-publish-dry-run.md`. Tier 1 leaves (`mxaccess-codec`, `mxaccess-rpc`, `mxaccess-asb-nettcp`) dry-run cleanly. Tiers 2 + 3 surface the documented "no matching package" registry-lookup failure for unpublished workspace internal deps — expected, resolves at actual publish time. All 9 crates' `cargo package --list` outputs are clean (no captures, no big files; only source + tests + tiny round-trip fixtures). The actual publish to crates.io has not happened — that's the maintainer-driven V1 cut step.
**Severity:** P1 — V1 release driver. F43 only validated dry-run for the leaf crates; the actual publish to crates.io has not happened.
**Source:** `design/60-roadmap.md:100` (M6 DoD bullet 6 — "Release: cargo publish all crates"); `CHANGELOG.md` "Publish order" section.
**Depends on:** F43 (dry-run validation), F49 (live verification of M6 features before publishing them).