json-schema-spec
json-schema-spec copied to clipboard
CI for meta-schemas
Our quality levels on the meta-schemas have been unacceptable (and I'm the one who has made most of the meta-schema changes, so I'm primarily criticizing myself here, although the problem extends back before my time on the project).
Bugs found (by various people) since I've been involved:
draft-03:
- missing comma in hyper-schema.json. it wouldn't even parse- apparently no one ever used it
draft-04:
formatentirely missingreadOnlyentirely missing- the whole confusion over what
"format": "uri"meant, causing it to be used incorrectly - still using
"format": "regex"despite it having been removed from draft-04 (we decided not to fix this, it applies to draft-06 as well)
draft-06:
readOnly'sdefaultset to the string"false"instead of booleanfalsepropertyNamesschema wrong (should be object of schemas, not a single schema)containsentirely missing
draft-07:
propertyNamesschema wrong
We should set up a test suite for the meta-schemas and require that meta-schema changes, including test suite changes, accompany spec changes. This should be done before shipping draft-08. The draft-08 keyword unevaluatedProperties will make it much easier to check for misspelled properties.
Presumably this is also a duplicate of https://github.com/json-schema-org/JSON-Schema-Test-Suite/issues/244 (for which there are a small number of existing ones in my implementation) but I haven't gotten a chance to actually sit down and move them.