Skip to content

ci: gate the parity check against the reference - #133

Merged
simontaurus merged 1 commit into
mainfrom
ci/gate-parity
Aug 24, 2026
Merged

ci: gate the parity check against the reference#133
simontaurus merged 1 commit into
mainfrom
ci/gate-parity

Conversation

@simontaurus

Copy link
Copy Markdown
Contributor

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 with scripts/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.mjs is being extracted to oold-js rather 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 the boundSchema depth 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.generated and context.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.mjs moves to oold-js, repoint the clone and pin it to a tag, so a lagging oold-js cannot fail this repository's CI for unrelated reasons.

- 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
@github-actions

Copy link
Copy Markdown
Contributor

Release preview

No version bump from the current commits (stays at v0.17.1). Use conventional commit types (feat, fix, ...) to trigger a release.

Changelog preview (truncated)

Preview via python-semantic-release and conventional commits.

@github-actions

Copy link
Copy Markdown
Contributor

📊 Benchmark Results

Click to see benchmark comparison
📊 Benchmark Comparison (threshold: 1.3x)
============================================================

➖ Unchanged (within threshold):
  ➖ test_simple_dict_document_store: 0.0017s → 0.0017s (-0.7%)
  ➖ test_sqlite_document_store: 0.0019s → 0.0019s (-0.3%)
  ➖ test_local_sparql_store: 0.0388s → 0.0385s (-1.0%)
  ➖ test_oneof_subschema: 0.0590s → 0.0597s (+1.2%)
  ➖ test_enum_docstrings: 0.0496s → 0.0502s (+1.2%)
  ➖ test_subclass_inheritance: 0.0530s → 0.0536s (+1.3%)
  ➖ test_class_hierarchy: 0.0504s → 0.0511s (+1.3%)
  ➖ test_core[v1]: 0.0377s → 0.0395s (+4.7%)
  ➖ test_core[v2]: 0.0433s → 0.0441s (+1.9%)
  ➖ test_schema_generation[v1]: 0.0017s → 0.0017s (+0.4%)
  ➖ test_schema_generation[v2]: 0.0028s → 0.0028s (+1.5%)
  ➖ test_simple_json: 0.0007s → 0.0007s (-0.5%)
  ➖ test_complex_graph: 0.0016s → 0.0016s (+0.2%)

============================================================
Summary: 0 regressions, 0 improvements, 13 unchanged
============================================================

✅ No significant performance regressions

Threshold: 1.3x (30% slower triggers a regression warning)

Note: Benchmarks are informational only and won't fail the build.

💡 Tip: Download the benchmark-results artifact for detailed JSON data

@codecov

codecov Bot commented Aug 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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