hjsonschema 1.7.1 → 1.7.2
raw patch · 5 files changed
+42/−45 lines, 5 filesdep ~QuickCheckdep ~aesondep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: QuickCheck, aeson, base, bytestring, containers, directory, file-embed, filepath, hashable, hjsonpointer, hspec, http-client, http-types, pcre-heavy, profunctors, protolude, scientific, semigroups, text, unordered-containers, vector
API changes (from Hackage documentation)
Files
- README.md +3/−7
- changelog.md +4/−0
- hjsonschema.cabal +22/−22
- test/Local.hs +2/−4
- test/Shared.hs +11/−12
README.md view
@@ -1,6 +1,6 @@  -A Haskell implementation of the most commonly used [JSON Schema](http://json-schema.org/) specification ([Draft 4](https://github.com/json-schema-org/json-schema-spec/wiki/Specification-Links#draft-4)).+A Haskell implementation of [JSON Schema](http://json-schema.org/) ([Draft 4](https://github.com/json-schema-org/json-schema-spec/wiki/Specification-Links#draft-4)). [Hackage](https://hackage.haskell.org/package/hjsonschema) / [GitHub](https://github.com/seagreen/hjsonschema) / [Travis CI](https://travis-ci.org/seagreen/hjsonschema) @@ -38,13 +38,9 @@ + Be a useful reference for implementers in other languages. Haskell's high level nature, expressive type system and referential transparency suit this purpose well. -## Good Parts--+ Passes all the required tests in the [language agnostic test suite](https://github.com/json-schema/JSON-Schema-Test-Suite). NOTE: due to an issue with the test suite this isn't true at the moment, see [#175](https://github.com/json-schema-org/JSON-Schema-Test-Suite/issues/175).--+ Very modular, which should make it easy to support future versions of the specification.+## Issues -## Bad Parts++ Doesn't pass all of the tests in the [language agnostic test suite](https://github.com/json-schema/JSON-Schema-Test-Suite). See the issue list for details. + Uses the [pcre-heavy](https://hackage.haskell.org/package/pcre-heavy) regular expression library for the "pattern" validator. It should use a library based on the ECMA 262 regex dialect, which the [spec](http://json-schema.org/latest/json-schema-validation.html#anchor33) requires.
changelog.md view
@@ -1,3 +1,7 @@+# 1.7.2+++ Remove upper bounds.+ # 1.7.1 + Bump http-types.
hjsonschema.cabal view
@@ -1,5 +1,5 @@ name: hjsonschema-version: 1.7.1+version: 1.7.2 synopsis: JSON Schema library homepage: https://github.com/seagreen/hjsonschema license: MIT@@ -59,27 +59,27 @@ JSONSchema.Validator.Draft4.Object.Properties , Import build-depends:- base >= 4.7 && < 4.11+ base >= 4.7 && < 5 -- 0.11 is for `.:!`:- , aeson >= 0.11 && < 1.3- , bytestring >= 0.10 && < 0.11- , containers >= 0.5 && < 0.6- , file-embed >= 0.0.8 && < 0.1- , filepath >= 1.3 && < 1.5- , hashable >= 1.2 && < 1.3- , hjsonpointer >= 1.1 && < 1.4+ , aeson >= 0.11+ , bytestring >= 0.10+ , containers >= 0.5+ , file-embed >= 0.0.8+ , filepath >= 1.3+ , hashable >= 1.2+ , hjsonpointer >= 1.1 -- 0.4.30 is for parseUrlThrow:- , http-client >= 0.4.30 && < 0.6- , http-types >= 0.8 && < 0.11- , pcre-heavy >= 1.0 && < 1.1- , profunctors >= 5.0 && < 5.3- , protolude >= 0.1.10 && < 1.2- , QuickCheck >= 2.8 && < 2.11- , scientific >= 0.3 && < 0.4- , semigroups >= 0.18 && < 0.19- , unordered-containers >= 0.2 && < 0.3- , text >= 1.1 && < 1.3- , vector >= 0.10 && < 1.0+ , http-client >= 0.4.30+ , http-types >= 0.8+ , pcre-heavy >= 1.0+ , profunctors >= 5.0+ , protolude >= 0.1.10+ , QuickCheck >= 2.8+ , scientific >= 0.3+ , semigroups >= 0.18+ , unordered-containers >= 0.2+ , text >= 1.1+ , vector >= 0.10 test-suite local hs-source-dirs:@@ -121,8 +121,8 @@ , vector -- directory-1.2.5 required for `listDirectory`:- , directory >= 1.2.5 && < 2.0- , hspec >= 2.2 && < 3.0+ , directory >= 1.2.5+ , hspec >= 2.2 test-suite remote hs-source-dirs:
test/Local.hs view
@@ -33,12 +33,10 @@ -- Language agnostic tests ts <- readSchemaTests dir- (\a -> not (isHTTPTest a || skipOptional a))+ (\a -> not (isHTTPTest a || skipTest a)) -- Custom supplements to the language agnostic tests- supplementTs <- readSchemaTests- supplementDir- (\a -> not (isHTTPTest a || skipOptional a))+ supplementTs <- readSchemaTests supplementDir (not . isHTTPTest) hspec $ do describe "Examples" exampleTests
@@ -14,6 +14,17 @@ import System.FilePath ((</>)) import Test.Hspec +skipTest :: FilePath -> Bool+skipTest file = (file == "optional/format.json") -- Optional+ || (file == "optional/zeroTerminatedFloats.json")+ || (file == "optional/ecmascript-regex.json")+++isHTTPTest :: FilePath -> Bool+isHTTPTest file = (file == "definitions.json")+ || (file == "ref.json")+ || (file == "refRemote.json")+ -- Recursively return the contents of a directory -- (or return itself if given a file as an argument). --@@ -36,18 +47,6 @@ else do fs <- fmap (path </>) <$> SD.listDirectory path concat <$> traverse listFilesFullPath fs--isHTTPTest :: FilePath -> Bool-isHTTPTest file = (file == "definitions.json")- || (file == "ref.json")- || (file == "refRemote.json")---- | We may never support the @"format"@ keywords--- and are currently failing the others listed here.-skipOptional :: FilePath -> Bool-skipOptional file = (file == "optional/format.json")- || (file == "optional/zeroTerminatedFloats.json")- || (file == "optional/ecmascript-regex.json") data SchemaTest = SchemaTest { _stDescription :: Text