All Versions
Latest Version
Avg Release Cycle
52 days
Latest Release

Changelog History
Page 3

  • v1.0.0.0 Changes

    ๐Ÿ› Bug fixes:

    • ๐Ÿ›  Fix JSON Pointer bug. Pointers were being built in reverse order and so were totally invalid.
    • ๐Ÿ“œ Use .:! instead of .:? to parse the draft 4 schema. The only way to omit optional fields in JSON Schema Draft 4 is to omit them entirely, "null" can't be used for this.

    API Changes:

    • โž• Add referenced schema loop detection.
    • โž• Add a new referencesValidity function.
    • checkSchema now checks referenced schema's validity in addition to the starting schema's validity. This change bubbles up to the one-step validation functions as well.
    • Switch most of the fetching code to use URISchemaMap instead of ReferencedSchemas. It didn't need to know about the more complicated data type.
    • Rething failure related names. Change Invalid to Failure, add a new Invalid type alias which is only used for final results.
    • Failures now include the failing part of the data as well as a JSON Pointer to it, so you don't have to worry about resolving the pointer.

    Fundamental Changes:

    • ๐Ÿ‘‰ Make Fail (previously Failure) an instance of Functor.
    • โž• Add a Validator data type which is an instance of Profunctor.
    • โž• Add a Spec data type for collections of Validators.


    • Switch from 2 to 4 space indentation.
    • โšก๏ธ Update the vendored JSON Schema Test Suite.
  • v0.10 Changes

    • Rewrite fetching internals.
    • ๐Ÿ›  Fix reference resolution defects, add more tests.
    • ๐Ÿ’… Switch to a Perl style regex library, which is closer to ECMAScript regexes than the previous Posix style one.
    • โž• Add one-step validation functions ('fetchFilesystemAndValidate' and 'fetchHTTPAndValidate').
    • Alias the validation failure type exported by 'Data.JsonSchema.Draft4' to 'Invalid', change its field names.
  • v0.10.0.3 Changes

    • โฌ†๏ธ Bump http-client.
  • v0.10.0.2 Changes

    • Enable GHC 8.
  • v0.10.0.1 Changes

    • ๐Ÿ›  Fix .cabal file.
  • v0.9 Changes

    • ๐Ÿ‘€ Partial rewrite. The API of the library has changed, see the examples folder for how to use the new one.

    • ๐Ÿ‘‰ Users of the library can now write schemas in Haskell as well as JSON.

  • v0.8 Changes

    • ๐Ÿ‘Œ Improve scope updating and resolving.
    • Rename RawSchema's _rsObject field to _rsData.
    • ๐Ÿ‘‰ Make RawSchema's _rsURI field a Maybe. This way schemas without a starting URI can say so explicitly with Nothing instead of with "".
    • ๐Ÿ“‡ Rename Graph to SchemaGraph. Declare it with data instead of type. Give it a field referencing the starting schema. This field is used to find the curent schema if no URI is in scope and a self-referencing $ref is found (e.g. "#").
    • ๐Ÿ”„ Change the order of the last two arguments to fetchReferencedSchemas.
  • v0.7.1 Changes

    • ๐Ÿ‘Œ Support GHC 7.8 again.
  • v0.7 Changes

    ๐Ÿ”„ Change error type from Text to ValidationFailure.

    โช Revert the 0.6 changes to validate. Also switch from Vector to list. Validate is now: Schema err -> Value -> [ValidationFailure err]

    โž• Add fetchReferencedSchemas', which lets the user provide their own MonadIO function to be used when fetching schemas. This lets them do things like only fetch schemas from particular domains.

  • v0.6 Changes

    Break the API so the library doesn't induce boolean blindness.

    ๐Ÿ”„ Change validate was: Schema -> Value -> Vector ValErr now: Schema -> Value -> Either (Vector ValErr) Value

    ๐Ÿ”„ Change Schema was: type Schema = Vector Validator now: newtype Schema = Schema { _unSchema :: [Validator] }