Repository navigation
plugin-hostd 0.7.0: format tables, transforms, the chain verb, the describe verb (J2) - #132
Merged
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.
J2: plugin-hostd H1-H5 (#126) into the contract one-pass wave
…member quarantined (#101)
…ed member is quarantined and the chain goes on (#101)
…tine of its crashed member and its rejoin (#101)
…, and chain is routed by no instance (#101)
…nd a removed member keeps the order of the rest (#101)
…the arms of a few tests (#101)
…ms of the reply and of the adapter row bite again (#101)
…med before marking (#101)
…uster J2b: the chain verb with crash quarantine (#101) into the contract one-pass wave
linuxnow
force-pushed
the
wave/contract-one-pass
branch
from
October 21, 2026 16:29
83e54db to
79d1a24
Compare
…ct.d/3 tables, and the sabotage script builds the probe through the Makefile (#101, #126) The first run of CI over the wave against the published omx-contract 3.0.0 found two things the gate's make test does not run: the RPM file-list check did not know the format tables plugin-hostd-devel now installs, and tests/sabotage.py compiled probe.c with a hand-written cc line that lacks describe.h's sources.
…obe rule builds from (src, include, packaging, Makefile) (#101)
linuxnow
marked this pull request as ready for review
October 21, 2026 20:25
This was referenced Oct 22, 2026
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.
J2 J of the contract one-pass batch (FreeMixer/openmixer#2095, #2097, gate #2126). The whole-set gate passed on this tip (run 24, r1: steps 1-7). DRAFT until its predecessors in the merge order are merged and released: omx-contract, plugin-hostd, omx-dsp, omx-clap-core, omx-plugins, plugin-qualify, openmixer; CI here builds against published versions, so it reads red until the train publishes the earlier libraries.