packages feed

swagger2 2.2.1 → 2.2.2

raw patch · 10 files changed

+90/−64 lines, 10 filesdep +base-compat-batteriesdep −base-compatdep −natsdep −semigroupsdep ~HUnitdep ~QuickCheckdep ~aesonPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: base-compat-batteries

Dependencies removed: base-compat, nats, semigroups

Dependency ranges changed: HUnit, QuickCheck, aeson, aeson-qq, bytestring, containers, generics-sop, hashable, hspec, http-media, lens, mtl, network, quickcheck-instances, scientific, text, unordered-containers, vector

API changes (from Hackage documentation)

+ Data.Swagger.Internal.ParamSchema: instance Data.Swagger.Internal.ParamSchema.ToParamSchema Data.Version.Version
+ Data.Swagger.Internal.Schema: instance Data.Swagger.Internal.Schema.ToSchema Data.Version.Version
- Data.Swagger.Lens: _Inline :: forall a_aA1S a_a20EN. Prism (Referenced a_a20EN) (Referenced a_aA1S) a_a20EN a_aA1S
+ Data.Swagger.Lens: _Inline :: forall a_az22 a_a1Zn0. Prism (Referenced a_a1Zn0) (Referenced a_az22) a_a1Zn0 a_az22
- Data.Swagger.Lens: _Ref :: forall a_aA1S. Prism' (Referenced a_aA1S) Reference
+ Data.Swagger.Lens: _Ref :: forall a_az22. Prism' (Referenced a_az22) Reference

Files

CHANGELOG.md view
@@ -1,3 +1,10 @@+2.2.2+-----++* Add `ToSchema Version` instance+* Use base-compat-batteries (0.10)+* PVP bounds+ 2.2.1 ----- 
src/Data/Swagger/Declare.hs view
@@ -29,7 +29,6 @@ import Control.Monad.Trans.Writer.Lazy as Lazy import Control.Monad.Trans.Writer.Strict as Strict import Data.Functor.Identity-import Data.Monoid  -- | A declare monad transformer parametrized by: --@@ -50,15 +49,15 @@   pure x = DeclareT (\_ -> pure (mempty, x))   DeclareT df <*> DeclareT dx = DeclareT $ \d -> do     ~(d',  f) <- df d-    ~(d'', x) <- dx (d <> d')-    return (d' <> d'', f x)+    ~(d'', x) <- dx (mappend d d')+    return (mappend d' d'', f x)  instance (Applicative m, Monad m, Monoid d) => Monad (DeclareT d m) where   return x = DeclareT (\_ -> pure (mempty, x))   DeclareT dx >>= f = DeclareT $ \d -> do     ~(d',  x) <- dx d-    ~(d'', y) <- runDeclareT (f x) (d <> d')-    return (d' <> d'', y)+    ~(d'', y) <- runDeclareT (f x) (mappend d d')+    return (mappend d' d'', y)  instance Monoid d => MonadTrans (DeclareT d) where   lift m = DeclareT (\_ -> (,) mempty `liftM` m)
src/Data/Swagger/Internal.hs view
@@ -33,7 +33,7 @@ import           Data.Map                 (Map) import qualified Data.Map                 as Map import           Data.Monoid              (Monoid (..))-import           Data.Semigroup           (Semigroup (..))+import           Data.Semigroup.Compat    (Semigroup (..)) import           Data.Scientific          (Scientific) import           Data.Set                 (Set) import           Data.String              (IsString(..))
src/Data/Swagger/Internal/AesonUtils.hs view
@@ -47,7 +47,6 @@  #if MIN_VERSION_aeson(0,10,0) import Data.Aeson (Encoding, pairs, (.=), Series)-import Data.Monoid ((<>)) #endif  -------------------------------------------------------------------------------
src/Data/Swagger/Internal/ParamSchema.hs view
@@ -39,7 +39,8 @@ import qualified Data.Vector.Primitive as VP import qualified Data.Vector.Storable as VS import qualified Data.Vector.Unboxed as VU-import Numeric.Natural+import Data.Version (Version)+import Numeric.Natural.Compat (Natural) import Data.Word import Data.UUID.Types (UUID) @@ -217,6 +218,11 @@  instance ToParamSchema TL.Text where   toParamSchema _ = toParamSchema (Proxy :: Proxy String)++instance ToParamSchema Version where+  toParamSchema _ = mempty+    & type_ .~ SwaggerString+    & pattern ?~ "^\\d+(\\.\\d+)*$"  #if __GLASGOW_HASKELL__ < 800 #else
src/Data/Swagger/Internal/Schema.hs view
@@ -44,7 +44,7 @@ import Data.Int import Data.IntSet (IntSet) import Data.IntMap (IntMap)-import Data.List.NonEmpty (NonEmpty)+import Data.List.NonEmpty.Compat (NonEmpty) import Data.Map (Map) import Data.Proxy import Data.Scientific (Scientific)@@ -57,7 +57,8 @@ import qualified Data.Vector.Primitive as VP import qualified Data.Vector.Storable as VS import qualified Data.Vector.Unboxed as VU-import Numeric.Natural+import Data.Version (Version)+import Numeric.Natural.Compat (Natural) import Data.Word import GHC.Generics import qualified Data.UUID.Types as UUID@@ -497,6 +498,8 @@  instance ToSchema T.Text where declareNamedSchema = plain . paramSchemaToSchema instance ToSchema TL.Text where declareNamedSchema = plain . paramSchemaToSchema++instance ToSchema Version where declareNamedSchema = plain . paramSchemaToSchema  #if __GLASGOW_HASKELL__ < 800 #else
src/Data/Swagger/Internal/Utils.hs view
@@ -21,7 +21,6 @@ import Data.HashMap.Strict.InsOrd (InsOrdHashMap) import qualified Data.HashMap.Strict.InsOrd as InsOrdHashMap import Data.Map (Map)-import Data.Monoid import Data.Set (Set) import Data.Text (Text) import GHC.Generics
src/Data/Swagger/Operation.hs view
@@ -37,7 +37,6 @@ import Data.Data.Lens import Data.List.Compat import Data.Maybe (mapMaybe)-import Data.Monoid import qualified Data.Set as Set  import Data.Swagger.Declare
swagger2.cabal view
@@ -1,11 +1,14 @@+cabal-version:       >=1.10 name:                swagger2-version:             2.2.1+version:             2.2.2+ synopsis:            Swagger 2.0 data model description:   This library is inteded to be used for decoding and encoding Swagger 2.0 API   specifications as well as manipulating them.   .   The original Swagger 2.0 specification is available at http://swagger.io/specification/.+ homepage:            https://github.com/GetShopTV/swagger2 bug-reports:         https://github.com/GetShopTV/swagger2/issues license:             BSD3@@ -20,7 +23,6 @@   , CHANGELOG.md   , examples/*.hs   , include/overlapping-compat.h-cabal-version:       >=1.10 tested-with:         GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.1  custom-setup@@ -48,60 +50,73 @@     Data.Swagger.Internal.Utils     Data.Swagger.Internal.AesonUtils     Data.Swagger.Internal.TypeShape-  build-depends:       base        >=4.7   && <4.12-                     , base-compat >=0.9.1 && <0.10-                     , aeson       >=0.11.2.1-                     , bytestring-                     , containers-                     , hashable-                     , generics-sop >=0.2 && <0.4-                     , http-media-                     , insert-ordered-containers >=0.1.0.0 && <0.3-                     , lens-                     , mtl-                     , network-                     , scientific-                     , text-                     , template-haskell-                     , time-                     , transformers-                     , transformers-compat >= 0.3-                     , unordered-containers-                     , vector-                     , uuid-types >=1.0.2 && <1.1-  if !impl(ghc >= 7.10)-     build-depends:    nats >=1.1.1 && <1.2-  if !impl(ghc >= 8.0)-     build-depends:    semigroups >= 0.18.3 && <0.19++  -- GHC boot libraries+  build-depends:+      base             >=4.7     && <4.12+    , bytestring       >=0.10.4  && <0.11+    , containers       >=0.5.5.1 && <0.6+    , template-haskell >=2.9.0.0 && <2.14+    , time             >=1.4.2   && <1.9+    , transformers     >=0.3.0.0 && <0.6++  build-depends:+      mtl              >=2.1     && <2.3+    , text             >=1.2.3.0 && <1.3++  -- other dependencies+  build-depends:+      base-compat-batteries     >=0.10.1   && <0.11+    , aeson                     >=1.0.0.0  && <1.4+    , generics-sop              >=0.3.2.0  && <0.4+    , hashable                  >=1.2.7.0  && <1.3+    , http-media                >=0.7.1.2  && <0.8+    , insert-ordered-containers >=0.1.0.0  && <0.3+    , lens                      >=4.16.1   && <4.17+    , network                   >=2.6.3.5  && <2.7+    , scientific                >=0.3.5.3  && <0.4+    , transformers-compat       >=0.3      && <0.7+    , unordered-containers      >=0.2.9.0  && <0.3+    , uuid-types                >=1.0.2    && <1.1+    , vector                    >=0.12.0.1 && <0.13+   default-language:    Haskell2010  test-suite spec   type:             exitcode-stdio-1.0   hs-source-dirs:   test   main-is:          Spec.hs++  -- From library parat  -- We need aeson's toEncoding for doctests too-  build-depends:    base-                  , base-compat-                  , aeson >=0.10.0.0-                  , aeson-qq-                  , bytestring-                  , containers-                  , hashable-                  , hspec-                  , insert-ordered-containers-                  , HUnit-                  , mtl-                  , QuickCheck >=2.8.2-                  , quickcheck-instances-                  , swagger2-                  , text-                  , time-                  , unordered-containers-                  , vector-                  , lens-  if !impl(ghc >= 8.0)-     build-depends:    semigroups+  build-depends: +      base+    , swagger2+    , aeson+    , base-compat-batteries+    , bytestring+    , containers+    , hashable+    , insert-ordered-containers+    , lens+    , mtl+    , text+    , time+    , unordered-containers+    , vector +  -- test-suite only dependencies+  build-depends:+      aeson-qq             >=0.8.2   && <0.9+    , hspec                >=2.4.8   && <2.6+    , HUnit                >=1.6.0.0 && <1.7+    , QuickCheck           >=2.10.1  && <2.12+    , quickcheck-instances >=0.3.18  && <0.14++  -- https://github.com/haskell/cabal/issues/3708+  build-tool-depends:+    hspec-discover:hspec-discover >=2.4.8 && <2.6+   other-modules:     SpecCommon     Data.SwaggerSpec@@ -110,9 +125,6 @@     Data.Swagger.SchemaSpec     Data.Swagger.Schema.ValidationSpec   default-language: Haskell2010-  -- https://github.com/haskell/cabal/issues/3708-  build-tool-depends:-    hspec-discover:hspec-discover  test-suite doctests   -- See QuickCheck note in https://github.com/phadej/cabal-doctest#notes
test/Data/Swagger/Schema/ValidationSpec.hs view
@@ -16,13 +16,14 @@ import qualified "unordered-containers" Data.HashSet as HashSet import Data.HashMap.Strict (HashMap) import qualified Data.HashMap.Strict as HashMap-import Data.List.NonEmpty (NonEmpty(..), nonEmpty)+import Data.List.NonEmpty.Compat (NonEmpty(..), nonEmpty) import Data.Map (Map) import Data.Monoid (mempty) import Data.Proxy import Data.Time import qualified Data.Text as T import qualified Data.Text.Lazy as TL+import Data.Version (Version) import Data.Set (Set) import Data.Word import GHC.Generics@@ -90,6 +91,7 @@     prop "MyRoseTree" $ shouldValidate (Proxy :: Proxy MyRoseTree)     prop "Light" $ shouldValidate (Proxy :: Proxy Light)     prop "ButtonImages" $ shouldValidate (Proxy :: Proxy ButtonImages)+    prop "Version" $ shouldValidate (Proxy :: Proxy Version)    describe "invalid cases" $ do     prop "invalidPersonToJSON"        $ shouldNotValidate invalidPersonToJSON