feat(port): CARGO_CRATES drift check vs Cargo.lock + CI gate #111

Merged
clawdie merged 1 commit from feat/port-cargo-crates-drift-check into main 2026-06-20 17:53:18 +02:00

1 commit

Author SHA1 Message Date
Sam & Claude
c732a086fe feat(port): CARGO_CRATES drift check vs Cargo.lock + CI gate
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
Follow-up to #109 (which generated the 346-crate CARGO_CRATES block). Make that
list self-maintaining so it can't silently drift from the source deps:

- check-cargo-crates.sh: parses Cargo.lock (registry crates only; skips the 13
  workspace-local crates and any git deps) and diffs against the Makefile's
  CARGO_CRATES block. Reports MISSING / STALE, exits non-zero on drift. No
  network, pure tomllib — runs on any host. Independently confirms #109's list
  is complete and correct (346/346 in sync).
- ci.yml: new `port` job (python:3.12) runs the check on every push/PR, so a
  dependency change that forgets `make cargo-crates` fails CI.
- Makefile: replace the stale "Empty in this draft" comment (CARGO_CRATES is now
  populated) with accurate regenerate/verify guidance.
- README: CARGO_CRATES is committed now (only distinfo is build-host-generated);
  document the checker and trim the build steps.

Verified: checker green at 346 crates; both drift directions (missing/stale)
detected in negative tests; ci.yml is valid YAML; port README prettier-clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 17:52:00 +02:00