Bring packages up to date (#722)

* Bring packages up to date

* New LTS includes deps now

Use stack to select most versions

* Alphabetize packages

* Strip down packages

Switch tests to protolude

* Appease cabal check with base version constraint
This commit is contained in:
Joe Nelson
2016-10-19 22:25:58 -07:00
committed by GitHub
parent 726b2b9d18
commit 74e68408e6
19 changed files with 72 additions and 123 deletions
+31 -89
View File
@@ -23,119 +23,83 @@ Flag CI
executable postgrest executable postgrest
main-is: Main.hs main-is: Main.hs
default-extensions: OverloadedStrings, ScopedTypeVariables, QuasiQuotes, NoImplicitPrelude default-extensions: OverloadedStrings, QuasiQuotes, NoImplicitPrelude
ghc-options: ghc-options:
-threaded -threaded
-rtsopts -rtsopts
"-with-rtsopts=-N -I2" "-with-rtsopts=-N -I2"
default-language: Haskell2010 default-language: Haskell2010
build-depends: aeson (>= 0.8 && < 0.10) || (>= 0.11 && < 0.12) build-depends: auto-update
, auto-update , base
, base >= 4.8 && < 6 , hasql
, bytestring , hasql-pool
, bytestring-tree-builder == 0.2.7
, case-insensitive
, cassava
, containers
, contravariant
, errors
, hasql == 0.19.12
, hasql-pool == 0.4.1
, hasql-transaction == 0.4.5.1
, http-types >= 0.9 && < 0.10
, interpolatedstring-perl6
, jwt
, lens >=3.8 && < 5.0
, lens-aeson >= 1.0.0.0 && < 1.1.0.0
, mtl
, optparse-applicative >= 0.11 && < 0.13
, parsec
, postgresql-binary == 0.9.0.1
, postgrest , postgrest
, regex-tdfa , protolude
, safe >= 0.3 && < 0.4
, scientific
, text , text
, time , time
, transformers , warp
, unordered-containers
, vector
, wai >= 3.0.1
, wai-cors
, wai-extra
, wai-middleware-static >= 0.6.0
, warp >= 3.1.0
, insert-ordered-containers >= 0.1.0.1
, swagger2 >= 2.1
, network-uri >= 2.6.1.0
, HTTP
, Ranged-sets
, protolude >= 0.1.5 && < 0.2.0
if !os(windows) if !os(windows)
build-depends: unix >= 2.7 && < 3 build-depends: unix
hs-source-dirs: main hs-source-dirs: main
library library
default-language: Haskell2010 default-language: Haskell2010
default-extensions: OverloadedStrings, ScopedTypeVariables, QuasiQuotes, NoImplicitPrelude default-extensions: OverloadedStrings, QuasiQuotes, NoImplicitPrelude
build-depends: aeson build-depends: aeson
, base , base >= 4.8 && < 6
, bytestring , bytestring
, case-insensitive , case-insensitive
, cassava , cassava
, containers , containers
, contravariant , contravariant
, errors
, hasql , hasql
, hasql-transaction , hasql-pool == 0.4.1
, hasql-pool , hasql-transaction == 0.4.5.1
, HTTP
, http-types , http-types
, insert-ordered-containers
, interpolatedstring-perl6 , interpolatedstring-perl6
, jwt , jwt
, lens , lens
, lens-aeson , lens-aeson
, mtl , network-uri
, optparse-applicative , optparse-applicative
, parsec , parsec
, protolude
, Ranged-sets == 0.3.0
, regex-tdfa , regex-tdfa
, safe , safe
, scientific , scientific
, swagger2
, text , text
, time , time
, unordered-containers , unordered-containers
, vector , vector
, HTTP , wai
, Ranged-sets
, wai >= 3.0.1
, wai-cors , wai-cors
, wai-extra , wai-extra
, wai-middleware-static >= 0.6.0 , wai-middleware-static
, warp >= 3.1.0
, insert-ordered-containers >= 0.1.0.1
, swagger2 >= 2.1
, protolude >= 0.1.5 && < 0.2.0
, network-uri >= 2.6.1.0
Other-Modules: Paths_postgrest Other-Modules: Paths_postgrest
Exposed-Modules: PostgREST.App Exposed-Modules: PostgREST.ApiRequest
, PostgREST.App
, PostgREST.Auth , PostgREST.Auth
, PostgREST.Config , PostgREST.Config
, PostgREST.DbStructure
, PostgREST.Error , PostgREST.Error
, PostgREST.Middleware , PostgREST.Middleware
, PostgREST.OpenAPI
, PostgREST.Parsers , PostgREST.Parsers
, PostgREST.DbStructure
, PostgREST.QueryBuilder , PostgREST.QueryBuilder
, PostgREST.RangeQuery , PostgREST.RangeQuery
, PostgREST.ApiRequest
, PostgREST.Types , PostgREST.Types
, PostgREST.OpenAPI
hs-source-dirs: src hs-source-dirs: src
Test-Suite spec Test-Suite spec
Type: exitcode-stdio-1.0 Type: exitcode-stdio-1.0
Default-Language: Haskell2010 Default-Language: Haskell2010
default-extensions: OverloadedStrings, ScopedTypeVariables, QuasiQuotes default-extensions: OverloadedStrings, QuasiQuotes, NoImplicitPrelude
ghc-options: -threaded -rtsopts -with-rtsopts=-N ghc-options: -threaded -rtsopts -with-rtsopts=-N
Hs-Source-Dirs: test Hs-Source-Dirs: test
Main-Is: Main.hs Main-Is: Main.hs
@@ -145,63 +109,41 @@ Test-Suite spec
, Feature.DeleteSpec , Feature.DeleteSpec
, Feature.InsertSpec , Feature.InsertSpec
, Feature.NoJwtSpec , Feature.NoJwtSpec
, Feature.QuerySpec , Feature.ProxySpec
, Feature.QueryLimitedSpec , Feature.QueryLimitedSpec
, Feature.QuerySpec
, Feature.RangeSpec , Feature.RangeSpec
, Feature.StructureSpec , Feature.StructureSpec
, Feature.UnicodeSpec , Feature.UnicodeSpec
, SpecHelper , SpecHelper
, TestTypes , TestTypes
Build-Depends: aeson Build-Depends: aeson
, auto-update
, aeson-qq , aeson-qq
, async , async
, auto-update
, base , base
, protolude
, base64-string , base64-string
, bytestring , bytestring
, case-insensitive , case-insensitive
, cassava , cassava
, containers
, contravariant , contravariant
, errors
, hasql , hasql
, hasql-pool , hasql-pool
, hasql-transaction
, heredoc , heredoc
, hjsonpointer
, hjsonschema
, hspec , hspec
, hspec-wai , hspec-wai
, hspec-wai-json , hspec-wai-json
, http-types , http-types
, interpolatedstring-perl6
, jwt
, lens , lens
, lens-aeson , lens-aeson
, monad-control , monad-control
, mtl
, optparse-applicative
, parsec
, postgrest , postgrest
, process , process
, protolude
, regex-tdfa , regex-tdfa
, safe
, scientific
, string-conversions
, text
, time , time
, transformers
, transformers-base , transformers-base
, unordered-containers
, vector
, wai , wai
, wai-cors
, wai-extra , wai-extra
, wai-middleware-static
, warp
, insert-ordered-containers
, hjsonpointer
, hjsonschema
, swagger2
, network-uri
, HTTP
, Ranged-sets
+2 -2
View File
@@ -19,7 +19,6 @@ module PostgREST.Config ( prettyVersion
) )
where where
import Control.Applicative
import qualified Data.ByteString.Char8 as BS import qualified Data.ByteString.Char8 as BS
import qualified Data.CaseInsensitive as CI import qualified Data.CaseInsensitive as CI
import Data.List (lookup) import Data.List (lookup)
@@ -29,7 +28,8 @@ import Network.Wai
import Network.Wai.Middleware.Cors (CorsResourcePolicy (..)) import Network.Wai.Middleware.Cors (CorsResourcePolicy (..))
import Options.Applicative import Options.Applicative
import Paths_postgrest (version) import Paths_postgrest (version)
import Protolude hiding (intercalate) import Protolude hiding (intercalate
, (<>))
import Safe (readMay) import Safe (readMay)
-- | Data type to store all command line options -- | Data type to store all command line options
-1
View File
@@ -15,7 +15,6 @@ import qualified Hasql.Query as H
import Control.Applicative import Control.Applicative
import Data.List (elemIndex) import Data.List (elemIndex)
import Data.Maybe (fromJust) import Data.Maybe (fromJust)
import Data.Monoid
import Data.Text (split, strip, import Data.Text (split, strip,
breakOn, dropAround) breakOn, dropAround)
import qualified Data.Text as T import qualified Data.Text as T
+1 -2
View File
@@ -35,7 +35,6 @@ import qualified Hasql.Decoders as HD
import qualified Data.Aeson as JSON import qualified Data.Aeson as JSON
import PostgREST.RangeQuery (NonnegRange, rangeLimit, rangeOffset, allRange) import PostgREST.RangeQuery (NonnegRange, rangeLimit, rangeOffset, allRange)
import Control.Error (note, hush)
import Data.Functor.Contravariant (contramap) import Data.Functor.Contravariant (contramap)
import qualified Data.HashMap.Strict as HM import qualified Data.HashMap.Strict as HM
import Data.Text (intercalate, unwords, replace, isInfixOf, toLower, split) import Data.Text (intercalate, unwords, replace, isInfixOf, toLower, split)
@@ -361,7 +360,7 @@ requestToQuery schema isParent (DbRead (Node (Select colSelects tbls conditions
<> "FROM (" <> subquery <> ") " <> pgFmtIdent table <> "FROM (" <> subquery <> ") " <> pgFmtIdent table
<> "), '[]') AS " <> pgFmtIdent (fromMaybe name alias) <> "), '[]') AS " <> pgFmtIdent (fromMaybe name alias)
where subquery = requestToQuery schema False (DbRead (Node n forst)) where subquery = requestToQuery schema False (DbRead (Node n forst))
getQueryParts (Node n@(_, (name, Just r@Relation{relType=Parent,relTable=Table{tableName=table}}, alias)) forst) (j,s) = (joi:j,sel:s) getQueryParts (Node n@(_, (name, Just r@Relation{relType=Parent,relTable=Table{tableName=table}}, alias)) forst) (j,s) = (joi:j,sel:s)
where where
node_name = fromMaybe name alias node_name = fromMaybe name alias
+1 -18
View File
@@ -1,24 +1,7 @@
resolver: lts-6.7 resolver: lts-7.4
extra-deps: extra-deps:
- Ranged-sets-0.3.0 - Ranged-sets-0.3.0
- bytestring-tree-builder-0.2.7
- hasql-0.19.12
- hasql-pool-0.4.1 - hasql-pool-0.4.1
- hasql-transaction-0.4.5.1 - hasql-transaction-0.4.5.1
- jwt-0.7.2
- postgresql-binary-0.9.0.1
- binary-parser-0.5.2
- contravariant-extras-0.3.2
- placeholders-0.1
- postgresql-error-codes-1
- success-0.2.6
- tuple-th-0.2.5
- wai-cors-0.2.5
- cryptohash-sha256-0.11.100.0
- hackage-security-0.5.2.1
- swagger2-2.1
- hjsonpointer-0.3.0.1
- hjsonschema-1.0.0.0
- network-uri-2.6.1.0
ghc-options: ghc-options:
postgrest: -O2 -Werror -Wall -fwarn-identities postgrest: -O2 -Werror -Wall -fwarn-identities
+2
View File
@@ -9,6 +9,8 @@ import Network.HTTP.Types
import SpecHelper import SpecHelper
import Network.Wai (Application) import Network.Wai (Application)
import Protolude hiding (get)
-- }}} -- }}}
spec :: SpecWith Application spec :: SpecWith Application
+2
View File
@@ -16,6 +16,8 @@ import Network.Wai.Test (Session)
import Network.Wai (Application) import Network.Wai (Application)
import Protolude hiding (get)
spec :: SpecWith Application spec :: SpecWith Application
spec = spec =
describe "Queryiny in parallel" $ describe "Queryiny in parallel" $
+2
View File
@@ -10,6 +10,8 @@ import SpecHelper
import Network.HTTP.Types import Network.HTTP.Types
import Network.Wai (Application) import Network.Wai (Application)
import Protolude hiding (get)
-- }}} -- }}}
spec :: SpecWith Application spec :: SpecWith Application
+2
View File
@@ -7,6 +7,8 @@ import Text.Heredoc
import Network.HTTP.Types import Network.HTTP.Types
import Network.Wai (Application) import Network.Wai (Application)
import Protolude hiding (get)
spec :: SpecWith Application spec :: SpecWith Application
spec = spec =
describe "Deleting" $ do describe "Deleting" $ do
+3 -1
View File
@@ -8,8 +8,8 @@ import Network.Wai.Test (SResponse(simpleBody,simpleHeaders,simpleStatus))
import SpecHelper import SpecHelper
import qualified Data.Aeson as JSON import qualified Data.Aeson as JSON
import Data.List (lookup)
import Data.Maybe (fromJust) import Data.Maybe (fromJust)
import Data.Monoid ((<>))
import Text.Heredoc import Text.Heredoc
import Network.HTTP.Types.Header import Network.HTTP.Types.Header
import Network.HTTP.Types import Network.HTTP.Types
@@ -18,6 +18,8 @@ import Control.Monad (replicateM_, void)
import TestTypes(IncPK(..), CompoundPK(..)) import TestTypes(IncPK(..), CompoundPK(..))
import Network.Wai (Application) import Network.Wai (Application)
import Protolude hiding (get)
spec :: SpecWith Application spec :: SpecWith Application
spec = do spec = do
describe "Posting new record" $ do describe "Posting new record" $ do
+2
View File
@@ -7,6 +7,8 @@ import Network.HTTP.Types
import SpecHelper import SpecHelper
import Network.Wai (Application) import Network.Wai (Application)
import Protolude hiding (get)
-- }}} -- }}}
spec :: SpecWith Application spec :: SpecWith Application
+2
View File
@@ -6,6 +6,8 @@ import SpecHelper
import Network.Wai (Application) import Network.Wai (Application)
import Protolude hiding (get)
spec :: SpecWith Application spec :: SpecWith Application
spec = spec =
describe "GET / with proxy" $ describe "GET / with proxy" $
+2
View File
@@ -9,6 +9,8 @@ import Text.Heredoc
import SpecHelper import SpecHelper
import Network.Wai (Application) import Network.Wai (Application)
import Protolude hiding (get)
spec :: SpecWith Application spec :: SpecWith Application
spec = spec =
describe "Requesting many items with server limits enabled" $ do describe "Requesting many items with server limits enabled" $ do
+2
View File
@@ -10,6 +10,8 @@ import SpecHelper
import Text.Heredoc import Text.Heredoc
import Network.Wai (Application) import Network.Wai (Application)
import Protolude hiding (get)
spec :: SpecWith Application spec :: SpecWith Application
spec = do spec = do
+2
View File
@@ -12,6 +12,8 @@ import SpecHelper
import Text.Heredoc import Text.Heredoc
import Network.Wai (Application) import Network.Wai (Application)
import Protolude hiding (get)
defaultRange :: BL.ByteString defaultRange :: BL.ByteString
defaultRange = [json| { "min": 0, "max": 15 } |] defaultRange = [json| { "min": 0, "max": 15 } |]
+2
View File
@@ -13,6 +13,8 @@ import SpecHelper
import Network.Wai (Application) import Network.Wai (Application)
import Network.Wai.Test (SResponse(..)) import Network.Wai.Test (SResponse(..))
import Protolude hiding (get)
spec :: SpecWith Application spec :: SpecWith Application
spec = do spec = do
+2
View File
@@ -6,6 +6,8 @@ import Test.Hspec.Wai.JSON
import Network.Wai (Application) import Network.Wai (Application)
import Control.Monad (void) import Control.Monad (void)
import Protolude hiding (get)
spec :: SpecWith Application spec :: SpecWith Application
spec = spec =
describe "Reading and writing to unicode schema and table names" $ describe "Reading and writing to unicode schema and table names" $
+5 -3
View File
@@ -8,8 +8,8 @@ import qualified Hasql.Pool as P
import PostgREST.DbStructure (getDbStructure) import PostgREST.DbStructure (getDbStructure)
import PostgREST.App (postgrest) import PostgREST.App (postgrest)
import Control.AutoUpdate import Control.AutoUpdate
import Data.Function (id)
import Data.IORef import Data.IORef
import Data.String.Conversions (cs)
import Data.Time.Clock.POSIX (getPOSIXTime) import Data.Time.Clock.POSIX (getPOSIXTime)
import qualified Feature.AuthSpec import qualified Feature.AuthSpec
@@ -25,18 +25,20 @@ import qualified Feature.StructureSpec
import qualified Feature.UnicodeSpec import qualified Feature.UnicodeSpec
import qualified Feature.ProxySpec import qualified Feature.ProxySpec
import Protolude
main :: IO () main :: IO ()
main = do main = do
setupDb setupDb
pool <- P.acquire (3, 10, cs testDbConn) pool <- P.acquire (3, 10, toS testDbConn)
-- ask for the OS time at most once per second -- ask for the OS time at most once per second
getTime <- mkAutoUpdate getTime <- mkAutoUpdate
defaultUpdateSettings { updateAction = getPOSIXTime } defaultUpdateSettings { updateAction = getPOSIXTime }
result <- P.use pool $ getDbStructure "test" result <- P.use pool $ getDbStructure "test"
refDbStructure <- newIORef $ either (error.show) id result refDbStructure <- newIORef $ either (panic.show) id result
let withApp = return $ postgrest testCfg refDbStructure pool getTime let withApp = return $ postgrest testCfg refDbStructure pool getTime
ltdApp = return $ postgrest testLtdRowsCfg refDbStructure pool getTime ltdApp = return $ postgrest testLtdRowsCfg refDbStructure pool getTime
unicodeApp = return $ postgrest testUnicodeCfg refDbStructure pool getTime unicodeApp = return $ postgrest testUnicodeCfg refDbStructure pool getTime
+7 -7
View File
@@ -1,10 +1,10 @@
module SpecHelper where module SpecHelper where
import Data.String.Conversions (cs)
import Control.Monad (void) import Control.Monad (void)
import Codec.Binary.Base64.String (encode) import Codec.Binary.Base64.String (encode)
import Data.CaseInsensitive (CI(..)) import Data.CaseInsensitive (CI(..))
import Data.List (lookup)
import Text.Regex.TDFA ((=~)) import Text.Regex.TDFA ((=~))
import qualified Data.ByteString.Char8 as BS import qualified Data.ByteString.Char8 as BS
import System.Process (readProcess) import System.Process (readProcess)
@@ -21,7 +21,7 @@ import Data.Maybe (fromJust)
import Data.Aeson (decode) import Data.Aeson (decode)
import qualified Data.JsonSchema.Draft4 as D4 import qualified Data.JsonSchema.Draft4 as D4
import Data.Text import Protolude
validateOpenApiResponse :: [Header] -> WaiSession () validateOpenApiResponse :: [Header] -> WaiSession ()
validateOpenApiResponse headers = do validateOpenApiResponse headers = do
@@ -98,14 +98,14 @@ acceptHdrs mime = [(hAccept, mime)]
rangeUnit :: Header rangeUnit :: Header
rangeUnit = ("Range-Unit" :: CI BS.ByteString, "items") rangeUnit = ("Range-Unit" :: CI BS.ByteString, "items")
matchHeader :: CI BS.ByteString -> String -> [Header] -> Bool matchHeader :: CI BS.ByteString -> BS.ByteString -> [Header] -> Bool
matchHeader name valRegex headers = matchHeader name valRegex headers =
maybe False (=~ valRegex) $ lookup name headers maybe False (=~ valRegex) $ lookup name headers
authHeaderBasic :: String -> String -> Header authHeaderBasic :: BS.ByteString -> BS.ByteString -> Header
authHeaderBasic u p = authHeaderBasic u p =
(hAuthorization, cs $ "Basic " ++ encode (u ++ ":" ++ p)) (hAuthorization, "Basic " <> (toS . encode . toS $ u <> ":" <> p))
authHeaderJWT :: String -> Header authHeaderJWT :: BS.ByteString -> Header
authHeaderJWT token = authHeaderJWT token =
(hAuthorization, cs $ "Bearer " ++ token) (hAuthorization, "Bearer " <> token)