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
main-is: Main.hs
default-extensions: OverloadedStrings, ScopedTypeVariables, QuasiQuotes, NoImplicitPrelude
default-extensions: OverloadedStrings, QuasiQuotes, NoImplicitPrelude
ghc-options:
-threaded
-rtsopts
"-with-rtsopts=-N -I2"
default-language: Haskell2010
build-depends: aeson (>= 0.8 && < 0.10) || (>= 0.11 && < 0.12)
, auto-update
, base >= 4.8 && < 6
, bytestring
, 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
build-depends: auto-update
, base
, hasql
, hasql-pool
, postgrest
, regex-tdfa
, safe >= 0.3 && < 0.4
, scientific
, protolude
, text
, time
, transformers
, 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
, warp
if !os(windows)
build-depends: unix >= 2.7 && < 3
build-depends: unix
hs-source-dirs: main
library
default-language: Haskell2010
default-extensions: OverloadedStrings, ScopedTypeVariables, QuasiQuotes, NoImplicitPrelude
default-extensions: OverloadedStrings, QuasiQuotes, NoImplicitPrelude
build-depends: aeson
, base
, base >= 4.8 && < 6
, bytestring
, case-insensitive
, cassava
, containers
, contravariant
, errors
, hasql
, hasql-transaction
, hasql-pool
, hasql-pool == 0.4.1
, hasql-transaction == 0.4.5.1
, HTTP
, http-types
, insert-ordered-containers
, interpolatedstring-perl6
, jwt
, lens
, lens-aeson
, mtl
, network-uri
, optparse-applicative
, parsec
, protolude
, Ranged-sets == 0.3.0
, regex-tdfa
, safe
, scientific
, swagger2
, text
, time
, unordered-containers
, vector
, HTTP
, Ranged-sets
, wai >= 3.0.1
, wai
, wai-cors
, wai-extra
, wai-middleware-static >= 0.6.0
, 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
, wai-middleware-static
Other-Modules: Paths_postgrest
Exposed-Modules: PostgREST.App
Exposed-Modules: PostgREST.ApiRequest
, PostgREST.App
, PostgREST.Auth
, PostgREST.Config
, PostgREST.DbStructure
, PostgREST.Error
, PostgREST.Middleware
, PostgREST.OpenAPI
, PostgREST.Parsers
, PostgREST.DbStructure
, PostgREST.QueryBuilder
, PostgREST.RangeQuery
, PostgREST.ApiRequest
, PostgREST.Types
, PostgREST.OpenAPI
hs-source-dirs: src
Test-Suite spec
Type: exitcode-stdio-1.0
Default-Language: Haskell2010
default-extensions: OverloadedStrings, ScopedTypeVariables, QuasiQuotes
default-extensions: OverloadedStrings, QuasiQuotes, NoImplicitPrelude
ghc-options: -threaded -rtsopts -with-rtsopts=-N
Hs-Source-Dirs: test
Main-Is: Main.hs
@@ -145,63 +109,41 @@ Test-Suite spec
, Feature.DeleteSpec
, Feature.InsertSpec
, Feature.NoJwtSpec
, Feature.QuerySpec
, Feature.ProxySpec
, Feature.QueryLimitedSpec
, Feature.QuerySpec
, Feature.RangeSpec
, Feature.StructureSpec
, Feature.UnicodeSpec
, SpecHelper
, TestTypes
Build-Depends: aeson
, auto-update
, aeson-qq
, async
, auto-update
, base
, protolude
, base64-string
, bytestring
, case-insensitive
, cassava
, containers
, contravariant
, errors
, hasql
, hasql-pool
, hasql-transaction
, heredoc
, hjsonpointer
, hjsonschema
, hspec
, hspec-wai
, hspec-wai-json
, http-types
, interpolatedstring-perl6
, jwt
, lens
, lens-aeson
, monad-control
, mtl
, optparse-applicative
, parsec
, postgrest
, process
, protolude
, regex-tdfa
, safe
, scientific
, string-conversions
, text
, time
, transformers
, transformers-base
, unordered-containers
, vector
, wai
, wai-cors
, 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
import Control.Applicative
import qualified Data.ByteString.Char8 as BS
import qualified Data.CaseInsensitive as CI
import Data.List (lookup)
@@ -29,7 +28,8 @@ import Network.Wai
import Network.Wai.Middleware.Cors (CorsResourcePolicy (..))
import Options.Applicative
import Paths_postgrest (version)
import Protolude hiding (intercalate)
import Protolude hiding (intercalate
, (<>))
import Safe (readMay)
-- | 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 Data.List (elemIndex)
import Data.Maybe (fromJust)
import Data.Monoid
import Data.Text (split, strip,
breakOn, dropAround)
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 PostgREST.RangeQuery (NonnegRange, rangeLimit, rangeOffset, allRange)
import Control.Error (note, hush)
import Data.Functor.Contravariant (contramap)
import qualified Data.HashMap.Strict as HM
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
<> "), '[]') AS " <> pgFmtIdent (fromMaybe name alias)
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)
where
node_name = fromMaybe name alias
+1 -18
View File
@@ -1,24 +1,7 @@
resolver: lts-6.7
resolver: lts-7.4
extra-deps:
- Ranged-sets-0.3.0
- bytestring-tree-builder-0.2.7
- hasql-0.19.12
- hasql-pool-0.4.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:
postgrest: -O2 -Werror -Wall -fwarn-identities
+2
View File
@@ -9,6 +9,8 @@ import Network.HTTP.Types
import SpecHelper
import Network.Wai (Application)
import Protolude hiding (get)
-- }}}
spec :: SpecWith Application
+2
View File
@@ -16,6 +16,8 @@ import Network.Wai.Test (Session)
import Network.Wai (Application)
import Protolude hiding (get)
spec :: SpecWith Application
spec =
describe "Queryiny in parallel" $
+2
View File
@@ -10,6 +10,8 @@ import SpecHelper
import Network.HTTP.Types
import Network.Wai (Application)
import Protolude hiding (get)
-- }}}
spec :: SpecWith Application
+2
View File
@@ -7,6 +7,8 @@ import Text.Heredoc
import Network.HTTP.Types
import Network.Wai (Application)
import Protolude hiding (get)
spec :: SpecWith Application
spec =
describe "Deleting" $ do
+3 -1
View File
@@ -8,8 +8,8 @@ import Network.Wai.Test (SResponse(simpleBody,simpleHeaders,simpleStatus))
import SpecHelper
import qualified Data.Aeson as JSON
import Data.List (lookup)
import Data.Maybe (fromJust)
import Data.Monoid ((<>))
import Text.Heredoc
import Network.HTTP.Types.Header
import Network.HTTP.Types
@@ -18,6 +18,8 @@ import Control.Monad (replicateM_, void)
import TestTypes(IncPK(..), CompoundPK(..))
import Network.Wai (Application)
import Protolude hiding (get)
spec :: SpecWith Application
spec = do
describe "Posting new record" $ do
+2
View File
@@ -7,6 +7,8 @@ import Network.HTTP.Types
import SpecHelper
import Network.Wai (Application)
import Protolude hiding (get)
-- }}}
spec :: SpecWith Application
+2
View File
@@ -6,6 +6,8 @@ import SpecHelper
import Network.Wai (Application)
import Protolude hiding (get)
spec :: SpecWith Application
spec =
describe "GET / with proxy" $
+2
View File
@@ -9,6 +9,8 @@ import Text.Heredoc
import SpecHelper
import Network.Wai (Application)
import Protolude hiding (get)
spec :: SpecWith Application
spec =
describe "Requesting many items with server limits enabled" $ do
+2
View File
@@ -10,6 +10,8 @@ import SpecHelper
import Text.Heredoc
import Network.Wai (Application)
import Protolude hiding (get)
spec :: SpecWith Application
spec = do
+2
View File
@@ -12,6 +12,8 @@ import SpecHelper
import Text.Heredoc
import Network.Wai (Application)
import Protolude hiding (get)
defaultRange :: BL.ByteString
defaultRange = [json| { "min": 0, "max": 15 } |]
+2
View File
@@ -13,6 +13,8 @@ import SpecHelper
import Network.Wai (Application)
import Network.Wai.Test (SResponse(..))
import Protolude hiding (get)
spec :: SpecWith Application
spec = do
+2
View File
@@ -6,6 +6,8 @@ import Test.Hspec.Wai.JSON
import Network.Wai (Application)
import Control.Monad (void)
import Protolude hiding (get)
spec :: SpecWith Application
spec =
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.App (postgrest)
import Control.AutoUpdate
import Data.Function (id)
import Data.IORef
import Data.String.Conversions (cs)
import Data.Time.Clock.POSIX (getPOSIXTime)
import qualified Feature.AuthSpec
@@ -25,18 +25,20 @@ import qualified Feature.StructureSpec
import qualified Feature.UnicodeSpec
import qualified Feature.ProxySpec
import Protolude
main :: IO ()
main = do
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
getTime <- mkAutoUpdate
defaultUpdateSettings { updateAction = getPOSIXTime }
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
ltdApp = return $ postgrest testLtdRowsCfg refDbStructure pool getTime
unicodeApp = return $ postgrest testUnicodeCfg refDbStructure pool getTime
+7 -7
View File
@@ -1,10 +1,10 @@
module SpecHelper where
import Data.String.Conversions (cs)
import Control.Monad (void)
import Codec.Binary.Base64.String (encode)
import Data.CaseInsensitive (CI(..))
import Data.List (lookup)
import Text.Regex.TDFA ((=~))
import qualified Data.ByteString.Char8 as BS
import System.Process (readProcess)
@@ -21,7 +21,7 @@ import Data.Maybe (fromJust)
import Data.Aeson (decode)
import qualified Data.JsonSchema.Draft4 as D4
import Data.Text
import Protolude
validateOpenApiResponse :: [Header] -> WaiSession ()
validateOpenApiResponse headers = do
@@ -98,14 +98,14 @@ acceptHdrs mime = [(hAccept, mime)]
rangeUnit :: Header
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 =
maybe False (=~ valRegex) $ lookup name headers
authHeaderBasic :: String -> String -> Header
authHeaderBasic :: BS.ByteString -> BS.ByteString -> Header
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 =
(hAuthorization, cs $ "Bearer " ++ token)
(hAuthorization, "Bearer " <> token)