avers 0.0.15 → 0.0.16
raw patch · 4 files changed
+97/−120 lines, 4 filesdep ~MonadRandomdep ~aesondep ~attoparsecPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: MonadRandom, aeson, attoparsec, avers, base, base16-bytestring, bytestring, clock, containers, criterion, cryptohash, filepath, hspec, inflections, mtl, network, network-uri, resource-pool, rethinkdb-client-driver, safe, scrypt, stm, template-haskell, text, time, unordered-containers, vector
API changes (from Hackage documentation)
- Avers: SomeIndex :: Index a -> SomeIndex
- Avers: SomeObjectType :: ObjectType a -> SomeObjectType
- Avers: SomeView :: View obj a -> SomeView obj
- Avers.Index: SomeIndex :: Index a -> SomeIndex
- Avers.Types: SomeObjectType :: ObjectType a -> SomeObjectType
- Avers.Types: SomeView :: View obj a -> SomeView obj
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.Blob
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.BlobId
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.ObjId
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.Object
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.ObjectId
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.Operation
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.Patch
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.Path
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.Release
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.RevId
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.Secret
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.SecretId
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.Session
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.SessionId
- Avers.Types: instance Data.Aeson.Types.Class.FromJSON Avers.Types.Snapshot
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.Blob
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.BlobId
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.Change
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.ObjId
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.Object
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.ObjectId
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.Operation
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.Patch
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.Path
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.Release
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.RevId
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.Secret
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.SecretId
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.Session
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.SessionId
- Avers.Types: instance Data.Aeson.Types.Class.ToJSON Avers.Types.Snapshot
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0AversError
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0Blob
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0BlobId
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0Change
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0ObjId
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0Object
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0ObjectId
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0Operation
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0Patch
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0PatchError
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0Path
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0RevId
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0Secret
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0SecretId
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0Session
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0SessionId
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_0Snapshot
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_1AversError
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_1ObjectId
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_1Operation
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_2AversError
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_2ObjectId
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_3AversError
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_4AversError
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_5AversError
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_6AversError
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_7AversError
- Avers.Types: instance GHC.Generics.Constructor Avers.Types.C1_8AversError
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1AversError
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1Blob
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1BlobId
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1Change
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1ObjId
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1Object
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1ObjectId
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1Operation
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1Patch
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1PatchError
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1Path
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1RevId
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1Secret
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1SecretId
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1Session
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1SessionId
- Avers.Types: instance GHC.Generics.Datatype Avers.Types.D1Snapshot
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_0Blob
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_0BlobId
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_0ObjId
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_0Object
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_0Operation
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_0Patch
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_0Path
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_0RevId
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_0Secret
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_0SecretId
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_0Session
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_0SessionId
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_0Snapshot
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_1Blob
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_1Object
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_1Operation
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_1Patch
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_1Secret
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_1Session
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_1Snapshot
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_2Blob
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_2Object
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_2Patch
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_2Session
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_2Snapshot
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_3Object
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_3Patch
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_3Session
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_4Object
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_0_4Patch
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_1_0Operation
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_1_1Operation
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_1_2Operation
- Avers.Types: instance GHC.Generics.Selector Avers.Types.S1_1_3Operation
- Avers.Views: instance Data.Aeson.Types.Class.ToJSON a => Data.Aeson.Types.Class.ToJSON (Avers.Views.Record a)
+ Avers: [SomeIndex] :: (IsDatum a) => Index a -> SomeIndex
+ Avers: [SomeObjectType] :: (ToDatum a, FromDatum a, FromJSON a, ToJSON a) => ObjectType a -> SomeObjectType
+ Avers: [SomeView] :: (ToDatum a, FromDatum a, FromJSON obj, ToJSON a) => View obj a -> SomeView obj
+ Avers.Index: [SomeIndex] :: (IsDatum a) => Index a -> SomeIndex
+ Avers.TH: parseJSONList :: Value -> Parser [a]
+ Avers.TH: toEncodingList :: [a] -> Encoding
+ Avers.TH: toJSONList :: [a] -> Value
+ Avers.Types: [SomeObjectType] :: (ToDatum a, FromDatum a, FromJSON a, ToJSON a) => ObjectType a -> SomeObjectType
+ Avers.Types: [SomeView] :: (ToDatum a, FromDatum a, FromJSON obj, ToJSON a) => View obj a -> SomeView obj
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.Blob
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.BlobId
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.ObjId
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.Object
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.ObjectId
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.Operation
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.Patch
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.Path
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.Release
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.RevId
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.Secret
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.SecretId
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.Session
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.SessionId
+ Avers.Types: instance Data.Aeson.Types.FromJSON.FromJSON Avers.Types.Snapshot
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.Blob
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.BlobId
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.Change
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.ObjId
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.Object
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.ObjectId
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.Operation
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.Patch
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.Path
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.Release
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.RevId
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.Secret
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.SecretId
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.Session
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.SessionId
+ Avers.Types: instance Data.Aeson.Types.ToJSON.ToJSON Avers.Types.Snapshot
+ Avers.Views: instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Avers.Views.Record a)
- Avers.TH: parseJSON :: FromJSON a => Value -> Parser a
+ Avers.TH: parseJSON :: Value -> Parser a
- Avers.TH: toEncoding :: ToJSON a => a -> Encoding
+ Avers.TH: toEncoding :: a -> Encoding
- Avers.TH: toJSON :: ToJSON a => a -> Value
+ Avers.TH: toJSON :: a -> Value
Files
- avers.cabal +91/−114
- src/Avers/Metrics.hs +1/−1
- src/Avers/Metrics/TH.hs +1/−1
- src/Avers/TH.hs +4/−4
avers.cabal view
@@ -1,129 +1,106 @@-name: avers-version: 0.0.15-license: GPL-3-license-file: LICENSE-author: Tomas Carnecky-maintainer: tomas.carnecky@gmail.com-category: Avers-build-type: Simple-cabal-version: >= 1.10--synopsis: empty-description: empty--+name: avers+version: 0.0.16+cabal-version: >=1.10+build-type: Simple+license: GPL-3+license-file: LICENSE+maintainer: tomas.carnecky@gmail.com+synopsis: empty+description:+ empty+category: Avers+author: Tomas Carnecky extra-source-files: src/Avers/Metrics/Measurements.txt - source-repository head- type: git+ type: git location: git://github.com/wereHamster/avers-haskell.git - library- hs-source-dirs: src- default-language: Haskell2010-- ghc-options:- -Wall--- -- For the time being everything is exported. exposed-modules: Avers- , Avers.Handle- , Avers.Index- , Avers.Metrics- , Avers.Metrics.Measurements- , Avers.Metrics.TH- , Avers.Patching- , Avers.Storage- , Avers.Storage.Backend- , Avers.Storage.Expressions- , Avers.TH- , Avers.Types- , Avers.Views--- -- Standard dependencies, stuff that is or should be in the platform.+ Avers.Handle+ Avers.Index+ Avers.Metrics+ Avers.Metrics.Measurements+ Avers.Metrics.TH+ Avers.Patching+ Avers.Storage+ Avers.Storage.Backend+ Avers.Storage.Expressions+ Avers.TH+ Avers.Types+ Avers.Views build-depends:- aeson- , attoparsec- , base <= 9999- , bytestring- , clock- , containers- , filepath- , mtl- , network- , network-uri- , safe- , stm- , template-haskell- , text- , time- , unordered-containers- , vector+ aeson >=1.0.1.0 && <1.1,+ attoparsec >=0.13.1.0 && <0.14,+ base >=4.9.0.0 && <4.10,+ bytestring >=0.10.8.1 && <0.11,+ clock >=0.7.2 && <0.8,+ containers >=0.5.7.1 && <0.6,+ filepath >=1.4.1.0 && <1.5,+ mtl >=2.2.1 && <2.3,+ network >=2.6.3.1 && <2.7,+ network-uri >=2.6.1.0 && <2.7,+ safe >=0.3.9 && <0.4,+ stm >=2.4.4.1 && <2.5,+ template-haskell >=2.11.0.0 && <2.12,+ text >=1.2.2.1 && <1.3,+ time >=1.6.0.1 && <1.7,+ unordered-containers >=0.2.7.1 && <0.3,+ vector >=0.11.0.0 && <0.12,+ MonadRandom >=0.4.2.3 && <0.5,+ base16-bytestring >=0.1.1.6 && <0.2,+ cryptohash >=0.11.9 && <0.12,+ inflections >=0.2.0.1 && <0.3,+ resource-pool >=0.2.3.2 && <0.3,+ rethinkdb-client-driver >=0.0.23 && <0.1,+ scrypt >=0.5.0 && <0.6+ default-language: Haskell2010+ hs-source-dirs: src+ ghc-options: -Wall - -- More exotic dependencies which people may not immediately recognize.+test-suite spec+ type: exitcode-stdio-1.0+ main-is: Test.hs build-depends:- MonadRandom- , base16-bytestring- , cryptohash- , inflections- , resource-pool- , rethinkdb-client-driver- , scrypt--+ MonadRandom >=0.4.2.3 && <0.5,+ aeson >=1.0.1.0 && <1.1,+ attoparsec >=0.13.1.0 && <0.14,+ avers >=0.0.16 && <0.1,+ base >=4.9.0.0 && <4.10,+ base16-bytestring >=0.1.1.6 && <0.2,+ bytestring >=0.10.8.1 && <0.11,+ containers >=0.5.7.1 && <0.6,+ cryptohash >=0.11.9 && <0.12,+ hspec >=2.2.3 && <2.3,+ inflections >=0.2.0.1 && <0.3,+ mtl >=2.2.1 && <2.3,+ resource-pool >=0.2.3.2 && <0.3,+ rethinkdb-client-driver >=0.0.23 && <0.1,+ scrypt >=0.5.0 && <0.6,+ stm >=2.4.4.1 && <2.5,+ text >=1.2.2.1 && <1.3,+ time >=1.6.0.1 && <1.7,+ unordered-containers >=0.2.7.1 && <0.3,+ vector >=0.11.0.0 && <0.12+ default-language: Haskell2010+ hs-source-dirs: test benchmark benchmark- hs-source-dirs: benchmark- default-language: Haskell2010-- ghc-options: -threaded -Wall -O2 -rtsopts-- type: exitcode-stdio-1.0- main-is: Benchmark.hs-- build-depends:- aeson- , avers- , base- , mtl- , criterion- , resource-pool- , rethinkdb-client-driver- , network-uri- , text---test-suite spec- hs-source-dirs: test- default-language: Haskell2010-- type: exitcode-stdio-1.0- main-is: Test.hs-+ type: exitcode-stdio-1.0+ main-is: Benchmark.hs build-depends:- MonadRandom- , aeson- , attoparsec- , avers- , base- , base16-bytestring- , bytestring- , containers- , cryptohash- , hspec- , inflections- , mtl- , resource-pool- , rethinkdb-client-driver- , scrypt- , stm- , text- , time- , unordered-containers- , vector+ aeson >=1.0.1.0 && <1.1,+ avers >=0.0.16 && <0.1,+ base >=4.9.0.0 && <4.10,+ mtl >=2.2.1 && <2.3,+ criterion >=1.1.1.0 && <1.2,+ resource-pool >=0.2.3.2 && <0.3,+ rethinkdb-client-driver >=0.0.23 && <0.1,+ network-uri >=2.6.1.0 && <2.7,+ text >=1.2.2.1 && <1.3+ default-language: Haskell2010+ hs-source-dirs: benchmark+ ghc-options: -threaded -Wall -O2 -rtsopts
src/Avers/Metrics.hs view
@@ -18,7 +18,7 @@ end <- liftIO $ getTime Monotonic reportMeasurement m- (fromIntegral (timeSpecAsNanoSecs (diffTimeSpec start end)) / 1000000000)+ (fromIntegral (toNanoSecs (diffTimeSpec start end)) / 1000000000) return ret
src/Avers/Metrics/TH.hs view
@@ -64,7 +64,7 @@ let metrics = toMetrics labels return- [ DataD [] (mkName "Measurement") [] (map genCon metrics) []+ [ DataD [] (mkName "Measurement") [] Nothing (map genCon metrics) [] , SigD (mkName "measurementLabels") (AppT (AppT ArrowT (ConT (mkName "Measurement"))) (AppT ListT $ AppT ListT (ConT ''Char))) , FunD (mkName "measurementLabels")
src/Avers/TH.hs view
@@ -109,7 +109,7 @@ let icxt = map (\tv -> AppT (ConT ''FromJSON) (VarT tv)) tyVars return- [ InstanceD icxt+ [ InstanceD Nothing icxt (AppT fromJsonT (mkAppTys (typeT : map VarT tyVars))) [ FunD 'parseJSON [ Clause [VarP xN]@@ -171,7 +171,7 @@ let icxt = map (\tv -> AppT (ConT ''FromDatum) (VarT tv)) tyVars return- [ InstanceD icxt+ [ InstanceD Nothing icxt (AppT fromDatumT (mkAppTys (typeT : map VarT tyVars))) [ FunD 'parseDatum [ Clause [VarP xN]@@ -219,8 +219,8 @@ getTyInfo typeN = do info <- reify typeN case info of- TyConI (DataD _ _ tvbs cons _) -> pure (tvbs, getFieldNames =<< cons)- TyConI (NewtypeD _ _ tvbs con _) -> pure (tvbs, getFieldNames con)+ TyConI (DataD _ _ tvbs _ cons _) -> pure (tvbs, getFieldNames =<< cons)+ TyConI (NewtypeD _ _ tvbs _ con _) -> pure (tvbs, getFieldNames con) _ -> fail $ "Avers.TH.getTyInfo: only simple data/newtype " ++ "constructors are supported."