Skip to content

ci(WO71): conformance matrix — frozen fixtures byte-exact in CI - #815

Merged
ronaldtse merged 2 commits into
mainfrom
wo71-conformance-matrix
Oct 21, 2026
Merged

ronaldtse merged 2 commits into
mainfrom
wo71-conformance-matrix

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

Adds the frozen-fixture conformance spec (CONFORMANCE_VECTORS + SECRYST_E2E_ZIP, byte-exact under single-row-greedy) and a conformance-matrix CI job that downloads the vectors + model zips from interscript-models Releases (index sidecar verified) and replays urd-diac-base and fas-diac-base byte-exactly. urd-g2p (split parts) joins via the runtime resolver in a later pass.

Note: this uncovered and fixed a dead index locator for fas-diac-base-1.0 (interscript-models PR fixing models.yaml + the published index asset).

A conformance-matrix job downloads the frozen vectors + model zips
from the models Releases (index sha256 verified first) and replays
each fixture byte-exactly through the runtime. urd-g2p (split parts)
joins via the resolver in a later pass.
Comment on lines +106 to +139
name: Conformance matrix (frozen fixtures)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.3"
bundler-cache: true
- name: Download fixtures (GitHub Releases channel)
run: |
mkdir -p fixtures && cd fixtures
BASE="https://github.com/interscript/interscript-models/releases/download"
curl -fsSL -o models-index.yaml "$BASE/index-v12/models-index.yaml"
curl -fsSL -o models-index.yaml.sha256 "$BASE/index-v12/models-index.yaml.sha256"
shasum -a 256 -c models-index.yaml.sha256
for v in urd-diac-base fas-diac-base urd-g2p-base; do
curl -fsSL -O "$BASE/index-v12/$v-vectors.json"
done
# the two single-zip models; urd-g2p (split parts) resolves
# via the runtime resolver in a later matrix pass
for m in urd-diac-base-1.0 fas-diac-base-1.0; do
url=$(ruby -ryaml -e "puts YAML.load_file('models-index.yaml')['models']['$m']['url']")
curl -fsSL -o "$m.zip" "$url"
done
- name: Run the matrix
run: |
for pair in "urd-diac-base-1.0 urd-diac-base" "fas-diac-base-1.0 fas-diac-base"; do
set -- $pair
echo "::group::$1"
SECRYST_E2E_ZIP="$PWD/fixtures/$1.zip" \
CONFORMANCE_VECTORS="$PWD/fixtures/$2-vectors.json" \
bundle exec rspec spec/interscript/ml/conformance_spec.rb
echo "::endgroup::"
done
@ronaldtse
ronaldtse merged commit 8d6d0c1 into main Oct 21, 2026
9 of 11 checks passed
@ronaldtse
ronaldtse deleted the wo71-conformance-matrix branch October 21, 2026 06:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants