git.iko.soy/typeable/hjsonschema
on 1.3.0.1 help sign in
typeable/hjsonschema/changelog.md
145 lines 4.6 kB history raw
1# 1.3.0.1
3+ Bump `vector`.
5# 1.3.0.0
7+ Rewrite failure messages.
9We used to return a list of every failed validator, no matter how far it was buried within subschemas of the original schema.
11Now we return a tree of failure messages, so that if the first schema had only three validators, then no more than three top level failures will be returned.
13+ Move the code to parse each validator from JSON from `Data.Validator.Draft4` into the validators' modules themselves.
15+ Switch from Prelude to Protolude.
17+ Switch `Data.JsonSchema.Fetch` from lazy to strict bytestrings.
19# 1.2.0.2
21+ Bump hspec.
23# 1.2.0.1
25+ Switch to hspec for tests.
27# 1.2.0.0
29+ Return `AdditionalPropertiesObject` error correctly (was mistakenly returning `AdditionalItemsObject` instead.
30+ Don't silence errors resulting from subschemas of "anyOf" or "oneOf".
32# 1.1.0.1
34+ Bump `aeson` and `hjsonpointer`.
36# 1.1.0.0
38+ Rename `schemaForSchemas` to `metaSchema` and `schemaForSchemasBytes` to `metaSchemaBytes`.
40# 1.0.0.0
42## Bug fixes:
44+ Fix JSON Pointer bug. Pointers were being built in reverse order and so were totally invalid.
45+ 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.
47## API Changes:
49+ Add referenced schema loop detection.
50+ Add a new `referencesValidity` function.
51+ `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.
52+ Switch most of the fetching code to use `URISchemaMap` instead of `ReferencedSchemas`. It didn't need to know about the more complicated data type.
53+ Rething failure related names. Change `Invalid` to `Failure`, add a new `Invalid` type alias which is only used for final results.
54+ 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.
56## Fundamental Changes:
58+ Make `Fail` (previously `Failure`) an instance of `Functor`.
59+ Add a `Validator` data type which is an instance of `Profunctor`.
60+ Add a `Spec` data type for collections of `Validators`.
62## General:
64+ Switch from 2 to 4 space indentation.
65+ Update the vendored JSON Schema Test Suite.
67# 0.10.0.3
69+ Bump http-client.
71# 0.10.0.2
73+ Enable GHC 8.
75# 0.10.0.1
77+ Fix .cabal file.
79# 0.10
81+ Rewrite fetching internals.
82+ Fix reference resolution defects, add more tests.
83+ Switch to a Perl style regex library, which is closer to ECMAScript regexes than the previous Posix style one.
84+ Add one-step validation functions ('fetchFilesystemAndValidate' and 'fetchHTTPAndValidate').
85+ Alias the validation failure type exported by 'Data.JsonSchema.Draft4' to
86'Invalid', change its field names.
88# 0.9
90+ Partial rewrite. The API of the library has changed, see the examples
91folder for how to use the new one.
93+ Users of the library can now write schemas in Haskell as well as JSON.
95# 0.8
97+ Improve scope updating and resolving.
98+ Rename RawSchema's _rsObject field to _rsData.
99+ Make RawSchema's _rsURI field a Maybe. This way schemas without a starting URI can say so explicitly with Nothing instead of with "".
100+ 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. "#").
101+ Change the order of the last two arguments to fetchReferencedSchemas.
103# 0.7.1
105+ Support GHC 7.8 again.
107# 0.7
109Change error type from Text to ValidationFailure.
111Revert the 0.6 changes to validate. Also switch from Vector to list. Validate is now:
112 Schema err -> Value -> [ValidationFailure err]
114Add 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.
116# 0.6
118Break the API so the library doesn't induce boolean blindness.
120Change validate
121 was: Schema -> Value -> Vector ValErr
122 now: Schema -> Value -> Either (Vector ValErr) Value
124Change Schema
125 was: type Schema = Vector Validator
126 now: newtype Schema = Schema { _unSchema :: [Validator] }
128# 0.5.3
130+ Switch from http-conduit to http-client.
132# 0.5.2
134+ Add convenience function for validating and compiling draft 4 schemas simultaneously.
136# 0.5.1
138+ Switch from wreq to http-conduit; drop lens dependency.
140# 0.5
142+ Start changelog.
143+ Rename Utils.hs to Helpers.hs.
144+ Move all non-ValidatorGen functions in Validators.hs to Helpers.hs.
145+ Various touchups.