vendor: pull OPSL schemas and examples at v0.3.0 #1
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/vendor-opsl-0.3"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Scope
Phase 3 of the OPSL alignment: vendor the now-released OPSL schemas at tag
v0.3.0(commit730919c) instead of a single hand-pinned device schema,and stop keeping separate local copies of the movemap schemas now that OPSL
publishes them.
vendor/opsl/schemas/device.schema.jsonwith the v0.3.0 copy andadd
vendor/opsl/schemas/movemap.{bundle,layout,session}.schema.jsonfromthe same tag.
schema_versionaccepts both0.2and0.3.vendor/opsl/examples/*for Access Virus, Ensoniq SQ-80 and the o1nkdevices (device, layout, session and bundle documents), beyond the two
device examples already vendored.
vendor/opsl/VERSION(v0.3.0 730919c) and rewritevendor/opsl/README.mdwith the re-vendor steps.schemas/movemap.{layout,bundle,session}.schema.jsonand pointcompiler/src/validate.rs(schema_for) and theevery_example_validatestest list atvendor/opsl/schemas/instead.(
movemap.surface,oplsdt.lpp-map,oplsdt.lpp-project) their own$idnamespace,
https://toilville.dev/schemas/oplsdt/<file>, so they nolonger collide with the OPSL-owned
$ids.vendored_schemas_match_recorded_hashesincompiler/src/tests.rs): it hashes every file undervendor/opsl/schemas/with a plain FNV-1a and compares against hashesrecorded in the test, so a hand-edit to a vendored schema fails
cargo testinstead of silently drifting from the pinned OPSL release.README.md's repository-layout table and the OPSL/Oplsdtparagraph to describe the new split.
Branch base:
stock-rnbo-runner(this repo's working branch).Testing
All run from the repo root, working tree clean before and after:
cargo test— 35 passed, 0 failed (34 pre-existing + the new drift-guardtest).
cargo run -p oplsdt-compile -- validate— every example underexamples/,data/,projects/andvendor/opsl/examples/validates,including all the newly-vendored OPSL examples.
cargo run -p oplsdt-compile -- build --check— exits 0 (only thepre-existing "no CC/NRPN binding" warnings, unrelated to this change).
cargo run -p oplsdt-compile -- lint rnbo— 16 Max/RNBO files checked, 0problems.
npm test— 52 passed, 0 failed.Drift-guard fail proof: appended a stray line to
vendor/opsl/schemas/device.schema.json, rerancargo test vendored_schemas_match_recorded_hashes, and it failed withdevice.schema.json: hash does not match the recorded vendor hash. ...naming the tampered file. Reverted the file (confirmed byte-identical to
the
v0.3.0tag again) and rerancargo testto confirm it is back to35/35 green.
Impact Statement
are sourced from and adds a test. No RNBO patcher, codebox or runtime
behavior changes.
oplsdt-compileCLI surface (validate,build,lint) is unchanged.schemas/movemap.{layout,bundle,session}.schema.jsonremoved(replaced by the equivalent files under
vendor/opsl/schemas/, sameshape, now OPSL-owned and versioned);
$idchanged onschemas/movemap.surface.schema.json,schemas/oplsdt.lpp-map.schema.jsonand
schemas/oplsdt.lpp-project.schema.json(new namespace, no schemacontent change).
vendor/opsl/examples/gains new example documents;the two previously-vendored device examples are byte-for-byte the
v0.3.0tag copies (theirschema_versionreverts from a locally-bumped"0.3"to the upstream tag's"0.2", which the 0.3 schema stillaccepts). No generated
rnbo/patchers/*output changed(
generated_files_are_currentstill passes).rnbo/oplsdt.build.json'srepos.Toilville/opsl -> vendor/opslmapping is unchanged.examples/areuntouched and still validate (0.3 schemas accept 0.2 documents). Anything
reading
schemas/movemap.*.schema.jsondirectly (nothing in this repodoes, per grep) would need to move to
vendor/opsl/schemas/.Docs
README.md: repository-layout table and the OPSL/Oplsdt model paragraphnow describe
schemas/as Oplsdt-only andvendor/opsl/as owning thedevice and movemap schemas.
vendor/opsl/README.md: rewritten with thev0.3.0source, file list,and copy-paste re-vendor steps, plus a note about the new drift-guard
test.
CONTRIBUTING.mdandOPLSDT_0.2_ARCHITECTURE.mdwere checked; theirexisting schema references did not need changes (
CONTRIBUTING.md'sprovenance note is path-agnostic, and
OPLSDT_0.2_ARCHITECTURE.mdonlynames
schemas/movemap.surface.schema.json, which stays put).Pull device.schema.json and the newly-published movemap.{bundle,layout, session}.schema.json from Toilville/opsl tag v0.3.0 (commit 730919c), plus the device/layout/session/bundle examples for Access Virus, Ensoniq SQ-80 and the o1nk devices. schema_version accepts 0.2 and 0.3 and top-level `x-` fields are allowed, so nothing downstream needs to change yet.Point oplsdt-compile schema_for() and the every_example_validates test list at vendor/opsl/schemas/movemap.{layout,bundle,session}.schema.json now that OPSL publishes them, and delete the local copies in schemas/ they replace. The three schemas that stay local (movemap.surface, oplsdt.lpp-map, oplsdt.lpp-project) move their $id under https://toilville.dev/schemas/oplsdt/ so they no longer share a namespace with the OPSL-owned ones.