Skip to content

ci: validate with oold-python against this working tree - #146

Merged
simontaurus merged 1 commit into
mainfrom
ci/validate-with-oold-python
Aug 24, 2026
Merged

ci: validate with oold-python against this working tree#146
simontaurus merged 1 commit into
mainfrom
ci/validate-with-oold-python

Conversation

@simontaurus

Copy link
Copy Markdown
Contributor

Step 4 of the migration: this repository's CI stops running its own JS validator and runs oold-python, the reference implementation the specification is developed against.

Changes

  • make validate runs oold validate examples and oold compliance examples/compliance, both with --meta .
  • oold[validation] is pinned to 0.18.0, so a validator release cannot change what CI means without a commit here
  • scripts/validate.mjs is frozen, not deleted: still runnable as make validate-reference
  • Node is no longer installed in the validate job

Why --meta .

Every other meta-schema source oold-python has is a released tag or refs/heads/main. Under those, a rule added in a branch is invisible: the checks bound to it skip, each reporting that the version never stated it, and the run passes. The pull request that introduces a rule would be the one run that cannot enforce it.

--meta . (added in OO-LD/oold-python#132) reads the meta-schemas and oold-rules.json from this checkout, so a branch is validated against its own state. Every rule added to the specification this week would otherwise have gone unchecked in its own PR.

Why validate.mjs stays

It is the target of oold-python's parity suite, which asserts the two implementations reach the same verdicts on the same fixtures. Deleting it would remove that comparison at exactly the moment it becomes load-bearing, since nothing else validates this repository's examples afterwards.

It is also going to oold-js rather than being retired, so the comparison becomes a standing cross-implementation conformance check - the kind of test that catches an ambiguity in the specification rather than a bug in one port. OO-LD/oold-python#133 gates it, and should merge with this.

Verified

make validate on this branch:

PASS  examples             380 ok, 0 failed, 21 warning(s), across 21 target(s)
PASS  examples/compliance   71 ok, 0 failed,  1 warning(s), across 53 target(s)

make check exits 0 end to end. The reference agrees: make validate-reference reports 149/149 with its one known warning.

coverage.rules reports against [local], confirming it read this tree rather than a release.

- make validate runs oold validate + oold compliance with --meta .
- --meta . reads the meta-schemas and catalogue from the checkout, so a
  rule added in a branch is enforced by the run that introduces it; a
  released version cannot see it
- scripts/validate.mjs is frozen, not deleted: still runnable via make
  validate-reference, and still the target of oold-python's parity suite
- node is no longer installed in CI
@simontaurus
simontaurus merged commit 18b1293 into main Aug 24, 2026
3 checks passed
@simontaurus
simontaurus deleted the ci/validate-with-oold-python branch August 24, 2026 05:29
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.

1 participant