The change of wai/conform-output, on current main, without its wai doctor: main's doctor, its tests, its catalogue entry, its MCP tool and its changelog entry stand as they are, and this change's copies of them are gone, with the lines dev.rs held for them. wai/README.md, which had no line for main's doctor, gains one in its first commands and `toolchain_doctor` in the core tools. - wai conform --format text|json|junit|html, reports made from the signed records. - --independent beside a kind holds the corpus's independent verifier to the same cases; alone, it runs every corpus's verifier, a record each, from one table. - wai-rs/build.rs reads that table from the `# independent:` lines of the step files (.github/wai-conformance/verifiers/), which take the verifiers' command lines out of the steps' bodies. scripts/wai-conformance-lists.py reads and checks the same lines. - wai-conformance.yml runs the union as wai conform --independent --format junit. - wai mcp's conformance tools read the table. - wai-release.yml runs the quickstart from each archive as a new user runs it (clean-machine.sh, its PowerShell twin clean-machine.ps1), held by check-wai-release-quickstart.py. clean-machine.ps1 keeps clean-machine.sh's contents step and its check of WAI Studio. Each leg keeps main's archive_doctor.py check; the step's own wai hello, verify and dev --check are clean-machine.sh's now. - check-wai-ops-doors.py reads VERBS and NEAR_SYNONYMS from catalogue.rs and keeps no list, and the verb-list test reads what that check reads. - The catalogue's export and Studio's actions hold the new operations. Co-Authored-By: Claude Opus 5.5 <[email protected]>
30 lines
2.1 KiB
Shell
30 lines
2.1 KiB
Shell
# step: conformance results · wai-rs and conform_result_verify.py
|
|
# order: 170
|
|
# features: conform_result
|
|
# paths: wai/extensions/conformance-results.md
|
|
# independent: conform-result trust verdicts=conform-result-conformance/vectors.json python3 -I conform-result-conformance/conform_result_verify.py conform-result-conformance
|
|
#
|
|
# conform-result/1 (extensions/conformance-results.md): the reference module's unit tests
|
|
# (a signed record accepted and every member covered, the strict rule's small-order forgery
|
|
# refused, the date form, a vector for every reason) and tests/conform_result.rs (the
|
|
# committed corpus regenerates byte for byte, wai-rs gives every vector its stated outcome,
|
|
# every reason of §5 refuses a vector, §5 lists exactly the reference's codes, and no leaf
|
|
# of a record survives a change after signing); then wai_conform_result_vectors verify;
|
|
# and, with each check of §4 left out in turn (--skip), the corpus must fail
|
|
# the corpus's second implementation, conform_result_verify.py, written from the
|
|
# extension's text and sharing no code with wai-rs (WAI's strict Ed25519 rule from
|
|
# claim-conformance/_ed25519.py), which reads the extension's reason table and runs whole
|
|
# in the step of every independent verifier above. Standard library only,
|
|
# run isolated (-I).
|
|
#
|
|
# The paths this step brings to the workflow's trigger, and why:
|
|
# wai/extensions/conformance-results.md: tests/conform_result.rs requires this extension's §5 to
|
|
# list the codes the reference reports, conform_result_verify.py reads that table, 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 conform_result::)
|
|
(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test conform_result)
|
|
"$RUNNER_TEMP/wai-bins/union/wai_conform_result_vectors" verify conform-result-conformance
|
|
for c in duplicates format members signature summary verdict; do
|
|
python3 -I conform-result-conformance/conform_result_verify.py --skip "$c" conform-result-conformance | tail -1
|
|
done
|