[Spec Change] Formal conformance test suite for runners #9
Replies: 1 comment 1 reply
|
Field data point for whoever picks this up: the 22 adapters shipped so far have all had to pass the real Rule 5 (score clamping) — real non-
Rule 6 (
Both look like solid conformance-suite fixtures: "a |
Uh oh!
There was an error while loading. Please reload this page.
Flagged in
spec/CRITIQUE.md#14 — currently "Partial" in the resolution table, and it's the other item explicitly deferred to v1.1 rather than rushed into 1.0.The problem: right now, "EvalPort-compliant" is enforced by two things — the JSON Schemas, and each SDK's hand-written validator (
validate_suite()/validateSuite()in Python/TypeScript).sdk/python/tests/test_schema_consistency.pyandsdk/typescript/tests/schema-consistency.test.ts(added in 1.0.0-rc.1) cross-check that the schemas and the two reference SDKs agree with each other — but there's no independent, spec-owned battery of test documents that a third, non-reference implementation (say, a Rust or Go runner someone builds independently) could run against to claim conformance.What a conformance suite needs, concretely:
[0,1]) and Rule 6 (score: nullvs. scored-failure) both have semantics a JSON Schema alone can't express.customtype's graceful-skip behavior, the open (non-enum)typestring behavior added in 1.0.0-rc.1, theopeneval.aggregationstrategies (all/any/majority/weighted).Open question for this thread: does this live under
spec/conformance/as spec-owned fixtures (my inclination, since it should be authoritative regardless of implementation language), or as a separateevalport-conformancepackage that pulls in fixtures and runs them against a runner you point it at? Second one is more useful as an actual CLI tool (evalport-conformance check ./my-runner), but it's more infrastructure to build and maintain.Good entry point if you want to work on spec tooling rather than a framework adapter.
All reactions