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
Owner

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

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>
clawdie added 1 commit 2026-06-20 17:53:09 +02:00
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
c732a086fe
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>
clawdie merged commit 718436a486 into main 2026-06-20 17:53:18 +02:00
clawdie deleted branch feat/port-cargo-crates-drift-check 2026-06-20 17:53:18 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: clawdie/colibri#111
No description provided.