Liform icon indicating copy to clipboard operation
Liform copied to clipboard

Roadmap for v1.0

Open nacmartin opened this issue 8 years ago • 2 comments

This is the list of things that I would consider a must for v1.0

Validators

We can extract much information from validators. See this example of minLength and this code for guessing.

Note that this code, that is used in Symfony, will only extract maxLength if Symfony is forces to guess the type of the validator. (using null as type in the builder). This would probably be a good PR to Symfony to fix this issue. So I guess the example of minLength is better than the example of maxLength.

JSON Schema keywords:

  • [x] pattern
  • [x] maxLength
  • [x] minLength
  • [ ] multipleOf
  • [ ] maximum
  • [ ] minumum
  • [ ] additionalItems
  • [ ] maxItems
  • [ ] minItems
  • [ ] uniqueItems
  • [ ] maxProperties
  • [ ] minProperties
  • [x] required
  • [ ] additionalProperties
  • [ ] dependencies
  • [ ] enum
  • [ ] type
  • [ ] allOf
  • [ ] oneOf
  • [ ] not

We could add our own validation keywords, but I think that this would be the minimum. It can also happen that some of these keywords don't make sense or cannot be extracted.

Other:

nacmartin avatar Feb 27 '17 16:02 nacmartin

Hello! I'm dropping by from the JSON Schema specification project to let you know that the current draft is draft-07, which is a minor update of the more significant draft-06.

Guide for core and validation Guide for hyper-schema

Note that implementations that do not support at least draft-06 will soon be moved to an "obsolete" or "older" section of the json-schema.org web site. Implementations supporting draft-06 or newer will remain prominently featured on the existing implementations page.

Since Liform is not a validator, "support" probably just means ensuring that you don't emit something incompatible with draft-06 (e.g. exclusiveMinimum and exclusiveMaximum changed from booleans to numbers, and id became $id). Since it doesn't look like you're using those keywords anyway, a note to the effect that the resulting schemas should work with recent drafts would probably be sufficient.

I see that you mention base64 data. Draft-07 adds contentEncoding and contentMediaType to support this (the feature was formerly in the Hyper-Schema spec as media).

handrews avatar Feb 18 '18 23:02 handrews