Repository navigation
J2: plugin-hostd H1-H5 (#126) into the contract one-pass wave - #127
Merged
linuxnow merged 13 commits intoOct 20, 2026
Merged
Conversation
…he field dump and describe (#126)
…m, never dropped (#126)
…ed by make install-contract (#126) The L1 tables (docs/formats.md), kind formatMap: every term of omx-contract's CLAP and LV2 TERM files and the struct fields and predicates a scan reads, each one row of one class. CLAP 330 rows, LV2 457. make install-contract installs them with omx-contract-devel's install-contract-dir.sh at <contractdir>/3/plugin-hostd/formats/{clap,lv2}.json with a MANIFEST.json; plugin-hostd-devel and plugin-hostd-dev ship them. Proof: omx-contract (wave/contract-one-pass 1539b6a) validate --contract-dir over its own package and these at schema major 2, floor rewritten to the 2.20.0 reader: 131 items in 105 files from 2 packages, valid; one term renamed furlong: map-term red. omx-contract fmt --check: in the one formatting.
…e test-transforms (#126) src/transforms.{c,h}: identity, lookup, scale-by, flag, scale-points, group-path, port-group, each an inbound function and its inverse (docs/formats.md#the-transforms); transforms_lookup_check refuses a lookup whose keys or values repeat. Proof: make test-transforms: 7 transforms, 17 vectors (in, out, back in, equal) and 18 edges pass, a lookup not one to one refused; group-path's inverse separator sabotaged: 2 red, restored green.
…age arms (#126) tests/format_coverage.py, once per format (docs/formats.md#the-coverage-test): the fields are every term of the installed TERM files plus every row with a from; per field mapped/extension/dropped, then the counts. Red for a field with no row, a row covering no field, a word the schema lacks, a transform not in TRANSFORMS(X), a used TERM dropped, an outbound-read row on another transform than identity or lookup, a unit row off its TERM's word. Proof (omx-contract wave/contract-one-pass 1539b6a installed, its TERM files at schema major 2): make test-format-coverage CONTRACT_SCHEMA_MAJOR=2: clap 330 fields (mapped 37, extension 271, dropped 22) OK, lv2 457 (62, 346, 49) OK; --self-test: row removed, word misspelt, transform renamed each red naming the field, both tables green, FORMAT-COVERAGE SELF-TEST OK. By hand: a used TERM dropped, lv2:toggled on flag, units:db to dBFS, units:pc to a non-unit: each red.
…for describe (#126) Moved as they were, made extern; the probe runner links src/json.c (PROBE_SRC), and tests/contract_derived.py builds the runner from PROBE_SRC. Proof (omx-contract wave/contract-one-pass 1539b6a in the prefix): make test-probe: plugin-hostd probe tests ok (the real-prober arms skip, no plugin-qualify build); make test-contract: contract: ok; make test-probe-schema test-vocabulary: vocabulary: ok.
… a scope's facts, describe's defaults (#126)
…inks a scanned descriptor needs (#126)
…e.from (#126) Proof: omx-contract validate --data with both tables beside its data: 131 items, valid; make test-format-coverage CONTRACT_SCHEMA_MAJOR=2: clap 331 fields (mapped 38) OK, lv2 458 (mapped 63) OK, self-test OK.
…iptor through the format table (#126) plugin-hostd-probe describe runs omx-clap-scan --fields in a child under run's limits (run_child), or reads a recorded dump (--fields-from), applies the format's table and the transforms it names (src/describe.c), and writes the scanned descriptor (docs/formats.md#the-descriptor-describe-writes). make test-describe feeds recorded dumps (tests/fixtures/fields/*.tsv), so the check needs no newer omx-clap-core. Proof (omx-contract wave/contract-one-pass 1539b6a in the prefix): make test-describe: describe: ok; both recorded descriptors equal, valid against the installed schema and read valid by omx-contract validate (129 items, with OMX_CONTRACT_CLI); 9 refusals each exit 2 naming the field, row or line; a stand-in child gives the same descriptor, a failing one exit 3. Value-row precedence sabotaged: both goldens and the child arm red. make test-probe, test-contract, test-transforms green.
…#126) Version 0.7.0 in the spec, debian/changelog, src/main.c and both manual pages; no tag (the batch releases after the whole-set gate). Proof: tools/protocol-gen splice/json/probe-schema: README.md, doc/plugin-hostd.1, protocol/plugin-hostd.json and the probe schema current; tests/no_pins.py and tests/ci_guards.py ok.
linuxnow
added a commit
that referenced
this pull request
Oct 21, 2026
J2: plugin-hostd H1-H5 (#126) into the contract one-pass wave
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reviewed (opus) at a1ff637: scope H1-H5 as #126 asks; transforms, coverage, describe, verbs_contract green against omx-contract 3.0.0 (wave tip, unreleased). test-socket needs omx-clap-core's installed socket_conformance.py (environmental). Refs #126.