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:
-
format
entirely missing -
readOnly
entirely 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
'sdefault
set to the string"false"
instead of booleanfalse
-
propertyNames
schema wrong (should be object of schemas, not a single schema) -
contains
entirely missing
draft-07:
-
propertyNames
schema 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.