# step: deriving edge · wai-rs and edge_verify.py # order: 680 # features: derive_edge # paths: wai/extensions/deriving-edge.md # independent: edge delivery python3 -I edge-conformance/edge_verify.py edge-conformance # # wai.edge.derivation (extensions/deriving-edge.md): the reference module's unit tests # (the operations pixel by pixel, which operations the registry's composition rule makes # exact, the check each derivation takes, a record's reading rule by rule, its round trip # and signature, the pinned output manifest, provenance items and AI-origin labels, the # C2PA stores embedded in a still), the still writer and reader the module # shares with wai-pack (png_still), and tests/derive_edge.rs (vectors.json regenerates # byte for byte from its fixed seeds and no other file is there, wai-rs gives every vector # its stated outcome, §9 lists exactly the reference's codes and §4 its derivations, and # the reference edge wai_edge, run twice over a clip, makes a chain of two hops that # verifies and is refused once a byte changes); and, in the step of every independent # verifier above, the corpus's second implementation, # edge_verify.py, written from the extension's text and sharing no code with wai-rs, # which reads receipts and writes stills itself, re-executes every replicate hop, # requires every mutated copy of the corpus to fail, and drops each of its own checks in # turn and requires the corpus to catch the weakened verifier; standard library only, # run isolated (-I). # # The paths this step brings to the workflow's trigger, and why: # wai/extensions/deriving-edge.md: tests/derive_edge.rs requires this extension's §9 to list the # codes the reference reports and its §4 the derivations, edge_verify.py reads both tables, and # the registry's wire identifiers test reads its sections. set -euo pipefail (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib derive_edge::) (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib png_still::) (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test derive_edge)