ci: validate with oold-python against this working tree - #146
Merged
Conversation
- 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
19 tasks
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.
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 validaterunsoold validate examplesandoold compliance examples/compliance, both with--meta .oold[validation]is pinned to0.18.0, so a validator release cannot change what CI means without a commit herescripts/validate.mjsis frozen, not deleted: still runnable asmake validate-referenceWhy
--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 andoold-rules.jsonfrom 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-jsrather 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 validateon this branch:make checkexits 0 end to end. The reference agrees:make validate-referencereports 149/149 with its one known warning.coverage.rulesreports against[local], confirming it read this tree rather than a release.