ci: gate the parity check against the reference - #133
Merged
Conversation
- oold-schema now validates with this package, so nothing else checks the specification's own examples - agreement between the two implementations is the evidence that switch rests on, and evidence that cannot fail is not evidence - stays useful after validate.mjs moves to oold-js: a standing cross-implementation conformance check
Contributor
Release previewNo version bump from the current commits (stays at Changelog preview (truncated)Preview via python-semantic-release and conventional commits. |
Contributor
📊 Benchmark ResultsClick to see benchmark comparisonThreshold: 1.3x (30% slower triggers a regression warning) Note: Benchmarks are informational only and won't fail the build. 💡 Tip: Download the |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
16 tasks
This was referenced Aug 27, 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.
Pairs with OO-LD/oold-schema#146, and should merge with it.
The parity step ran with
continue-on-error: true, so a parity regression was reported and never failed the build. That was defensible while oold-schema still validated itself withscripts/validate.mjs: a disagreement had a second opinion behind it, and the two repositories release independently.That changes with #146. oold-schema now validates with this package, so nothing else checks the specification's own examples. Agreement between the two implementations becomes the evidence the switch rests on, and evidence that cannot fail is not evidence.
Not scaffolding
validate.mjsis being extracted tooold-jsrather than retired, so this does not become migration debt. It becomes a standing cross-implementation conformance check: two independent implementations of one specification agreeing. That is the kind of test that catches an ambiguity in the specification rather than a bug in one port - it is what would have caught theboundSchemadepth divergence in OO-LD/oold-schema#134 automatically.Deliberately not done earlier
Gating while verdicts were still deliberately moving would have blocked the changes that moved them. The unmapped-term fix changed
roundtrip.generatedandcontext.predicates, and parity passed only because oold-schema's corpus happens to carry no unmapped-term fixture. The usual response to a gate that blocks wanted changes is an allowlist that never gets cleaned up.Verified locally against a real checkout: 6/6.
Follow-up
When
validate.mjsmoves tooold-js, repoint the clone and pin it to a tag, so a laggingoold-jscannot fail this repository's CI for unrelated reasons.