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 +7/−0
- src/Data/Swagger/Declare.hs +4/−5
- src/Data/Swagger/Internal.hs +1/−1
- src/Data/Swagger/Internal/AesonUtils.hs +0/−1
- src/Data/Swagger/Internal/ParamSchema.hs +7/−1
- src/Data/Swagger/Internal/Schema.hs +5/−2
- src/Data/Swagger/Internal/Utils.hs +0/−1
- src/Data/Swagger/Operation.hs +0/−1
- swagger2.cabal +63/−51
- test/Data/Swagger/Schema/ValidationSpec.hs +3/−1
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