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.2 KiB
Shell
30 lines
2.2 KiB
Shell
# step: carousel schedule · wai-rs and carousel_verify.py
|
|
# order: 540
|
|
# features: carousel
|
|
# paths: wai/extensions/carousel.md
|
|
# independent: carousel live needs=cryptography python3 -I live-conformance/carousel_verify.py live-conformance/carousel
|
|
# independent: carousel-claims live needs=cryptography python3 -I claim-conformance/claim_verify.py carousel live-conformance/carousel/vectors.json
|
|
#
|
|
# wai.bearer.carousel (extensions/carousel.md): the reference module's unit tests (each code's
|
|
# bounds and division into source blocks, K', the passes of advance and repeat, plans, and the
|
|
# corpus reaching every stated outcome and failing a changed one) and tests/carousel.rs
|
|
# (vectors.json regenerates byte for byte from its fixed seeds, wai-rs gives every case its
|
|
# stated outcome, §9 lists exactly the reference's codes, Appendix A is its table of K',
|
|
# jwp-receipts §3.1 lists the class codes at their steps, K' and Partition[] agree with an
|
|
# independent RFC 6330 implementation for every block size, and each RaptorQ object a case
|
|
# holds available decodes with that implementation from what a receiver within the case's
|
|
# loss bound holds); and, in the step of every independent verifier above, the corpus's second
|
|
# implementation, carousel_verify.py, written
|
|
# from the extension's text and sharing no code with wai-rs, which verifies groups and
|
|
# objects with jwp_verify.py and claims through steps 1-5 with claim_verify.py, writes the
|
|
# context checks, the availability and the plans itself, reads §9 and Appendix A, requires
|
|
# every mutated copy of the corpus to fail, and drops each of its own checks in turn; run
|
|
# isolated (-I). Last, claim-conformance's own verifier reads every claim of the corpus
|
|
# through jwp-receipts §3.1 steps 1 to 4 and requires the stated outcome.
|
|
#
|
|
# The paths this step brings to the workflow's trigger, and why:
|
|
# wai/extensions/carousel.md: tests/carousel.rs requires §9 to list the reference's codes and
|
|
# Appendix A to be its table of K', and carousel_verify.py reads both.
|
|
set -euo pipefail
|
|
(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib -- carousel:: claim_receipt::schedule::)
|
|
(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test carousel)
|