Repository navigation
DEN-3038: generate and certify exact Zed lock + Git-submodule dual-pin canary #146
Copy link
Copy link
Open
Description
Context
Implements the generated-fixture side of DEN-3038 and supports the cross-org architecture program in DEN-3033.
The generated zed-pkg-test/api-contract-e2e fixture currently has internally consistent Git evidence on main:
.gitmodulesmapsvendor/zed-clientstohttps://github.com/zed-pkg/zed-clients.git;source-pins.jsonrecordszed-pkg/zed-clients@c97ead9ce1cd3675be7704d35e2395fa59f4baa4;- the actual
vendor/zed-clientsgitlink is the same commit; .zpkg.tomldeclareszed-pkg/zed-clients = "^0.1.0".
The missing proof is a committed Zed resolution/lock that binds that package dependency to immutable provenance. Without .zpkg.lock or an equivalent canonical resolved record, the fixture cannot prove that the Zed edge and the Git gitlink resolve to the same source revision.
Required change
Update the fleet manifest/bootstrapper, then regenerate the fixture. Do not hand-edit generated output.
- Generate a committed
.zpkg.lockor canonical resolved-Zed provenance record for thezed-pkg/zed-clientsdependency. - Add a central validator that normalizes the Zed package edge and Git-submodule edge into one logical dependency while retaining both provenance records.
- Require canonical repository identity agreement and exact revision compatibility.
- Record exact fixture commit, producer commit, lock digest, gitlink SHA, and validator version in machine-readable evidence.
Positive canary
.gitmodulesURL/path, gitlink SHA,source-pins.json,.zpkg.toml, and.zpkg.lockagree;- the graph emits one logical dependency with separate
zedandgit-submoduleprovenance; - repeated/frozen resolution is deterministic and credential-free.
Negative canaries
- Zed lock resolves a different source commit than the gitlink;
- canonical repository identities disagree despite similar names;
- a second physical checkout is created for the same adopted-workspace dependency;
- runtime code shells out to the Zed CLI;
- branch/gitlink update is non-fast-forward;
- manifest, lock, URL, or evidence contains GitHub/Linear/Cloudflare/S3-R2 credential-shaped content.
Each negative must fail for its intended assertion, and mutation tests must prove the checks are non-vacuous.
Safety
- draft PR and generated-fixture regeneration only;
- no production repository/default-branch/provider mutation;
- no cross-organization write credential in pull-request jobs;
- protected/live evidence remains separate from credential-free contract validation;
- keep
zed-pkg-test/api-contract-e2egenerated from the central fleet source.
Acceptance
- fleet source and regenerated fixture are linked in a draft PR;
- committed immutable Zed resolution exists;
- positive dual-pin case passes;
- every deliberate negative fails for the intended reason;
- exact-head evidence links back to DEN-3038 and the architecture registry;
- CI unavailability is reported distinctly from contract failure.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity