Open sandrina-p opened 1 year ago
Hey, the work to support drafts 2019 and upward is already in progress (see https://github.com/jonasschmidt/ex_json_schema/issues/73). Unfortunately there are some complex features added in the 2019 draft that require a pretty major restructuring/rewrite of parts of the library, so progress has been slow because of that.
@jonasschmidt i'm looking into getting your branch across the finish line, but it's unclear just how far away we are from that line.
get tests passing? delete all ignored_suites
and ignored_tests
? or only "optional/format/ipv6"
?
fixup the TODOs?
what did you have in mind?
Hey, thank you for trying to pick this up, it is much appreciated! The goal would be to get the tests passing, the ones that are currently ignored for draft2019-09
are optional and are fine to keep ignoring for now.
The main issue I got stuck on when last working on it is the [unevaluatedProperties](https://json-schema.org/understanding-json-schema/reference/object#unevaluatedproperties)
keyword. This requires a different approach, basically keeping track of all the evaluation that is being done so at some point we can say "this property was not evaluated before". The recommended way to so that is via "annotation collection", which still needs to be implemented from scratch. There's a discussion here that sums up the problems and the impact this has on evaluation time and memory usage.
The problem I had was that solving this one chunk of works needs a few days of uninterrupted work at least, which I don't have at the moment. It takes quite a bit of time to upload all of the domain knowledge into my head and start working.
The other major keyword that needs support is recursiveRef
. I would expect this to be a lot less work than unevaluatedProperties
because it doesn't appear to need any structural changes (as far as I can tell).
JSON Schema draft 2019-09 supports extending vocabularies.
Is it something you plan to incorporate in
ex_json_schema
with some guide/example?