From fa35b5bd700ff0252b10aa84b2d649eb78bd7eb5 Mon Sep 17 00:00:00 2001 From: Oleg Grenrus Date: Sun, 29 Sep 2019 23:55:08 +0300 Subject: [PATCH 1/3] Build jsaddle with GHC-8.8 Closes https://github.com/haskell-servant/servant/issues/1227 --- .travis.yml | 22 ++++++++++++++++++++-- cabal.project | 12 ++++++++++++ servant-jsaddle/servant-jsaddle.cabal | 8 ++++---- 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6ae8bd58..337014b9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -143,7 +143,7 @@ install: if ! $GHCJS ; then echo "packages: servant-machines" >> cabal.project ; fi if ! $GHCJS ; then echo "packages: servant-conduit" >> cabal.project ; fi if ! $GHCJS ; then echo "packages: servant-pipes" >> cabal.project ; fi - if $GHCJS || ! $GHCJS && [ $HCNUMVER -lt 80800 ] ; then echo "packages: servant-jsaddle" >> cabal.project ; fi + echo "packages: servant-jsaddle" >> cabal.project if ! $GHCJS && [ $HCNUMVER -ge 80400 ] ; then echo "packages: doc/cookbook/basic-auth" >> cabal.project ; fi if ! $GHCJS && [ $HCNUMVER -ge 80400 ] ; then echo "packages: doc/cookbook/curl-mock" >> cabal.project ; fi if ! $GHCJS && [ $HCNUMVER -ge 80400 ] ; then echo "packages: doc/cookbook/basic-streaming" >> cabal.project ; fi @@ -159,6 +159,7 @@ install: echo "constraints: foundation >=0.0.14" >> cabal.project echo "constraints: memory <0.14.12 || >0.14.12" >> cabal.project echo "constraints: sqlite-simple < 0" >> cabal.project + echo "constraints: base-compat ^>=0.11" >> cabal.project echo "allow-newer: aeson-pretty-0.8.7:base-compat" >> cabal.project echo "allow-newer: vault-0.3.1.2:hashable" >> cabal.project echo "allow-newer: psqueues-0.2.7.1:hashable" >> cabal.project @@ -167,6 +168,14 @@ install: echo "allow-newer: io-streams-1.5.1.0:network" >> cabal.project echo "allow-newer: io-streams-1.5.1.0:primitive" >> cabal.project echo "allow-newer: openssl-streams-1.2.2.0:network" >> cabal.project + echo "allow-newer: jsaddle-0.9.6.0:lens" >> cabal.project + echo "allow-newer: jsaddle-0.9.6.0:primitive" >> cabal.project + echo "allow-newer: jsaddle-0.9.6.0:time" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.2:base" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.2:base-compat" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.2:Cabal" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.2:lens" >> cabal.project + echo "allow-newer: jsaddle-warp-0.9.6.0:time" >> cabal.project echo "optimization: False" >> cabal.project - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(cookbook-basic-auth|cookbook-basic-streaming|cookbook-curl-mock|cookbook-db-postgres-pool|cookbook-file-upload|cookbook-generic|cookbook-pagination|cookbook-structuring-apis|cookbook-testing|cookbook-using-custom-monad|cookbook-using-free-client|servant|servant-client|servant-client-core|servant-conduit|servant-docs|servant-foreign|servant-http-streams|servant-jsaddle|servant-machines|servant-pipes|servant-server|tutorial)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done" - cat cabal.project || true @@ -247,7 +256,7 @@ script: if ! $GHCJS ; then echo "packages: ${PKGDIR_servant_machines}" >> cabal.project ; fi if ! $GHCJS ; then echo "packages: ${PKGDIR_servant_conduit}" >> cabal.project ; fi if ! $GHCJS ; then echo "packages: ${PKGDIR_servant_pipes}" >> cabal.project ; fi - if $GHCJS || ! $GHCJS && [ $HCNUMVER -lt 80800 ] ; then echo "packages: ${PKGDIR_servant_jsaddle}" >> cabal.project ; fi + echo "packages: ${PKGDIR_servant_jsaddle}" >> cabal.project if ! $GHCJS && [ $HCNUMVER -ge 80400 ] ; then echo "packages: ${PKGDIR_cookbook_basic_auth}" >> cabal.project ; fi if ! $GHCJS && [ $HCNUMVER -ge 80400 ] ; then echo "packages: ${PKGDIR_cookbook_curl_mock}" >> cabal.project ; fi if ! $GHCJS && [ $HCNUMVER -ge 80400 ] ; then echo "packages: ${PKGDIR_cookbook_basic_streaming}" >> cabal.project ; fi @@ -263,6 +272,7 @@ script: echo "constraints: foundation >=0.0.14" >> cabal.project echo "constraints: memory <0.14.12 || >0.14.12" >> cabal.project echo "constraints: sqlite-simple < 0" >> cabal.project + echo "constraints: base-compat ^>=0.11" >> cabal.project echo "allow-newer: aeson-pretty-0.8.7:base-compat" >> cabal.project echo "allow-newer: vault-0.3.1.2:hashable" >> cabal.project echo "allow-newer: psqueues-0.2.7.1:hashable" >> cabal.project @@ -271,6 +281,14 @@ script: echo "allow-newer: io-streams-1.5.1.0:network" >> cabal.project echo "allow-newer: io-streams-1.5.1.0:primitive" >> cabal.project echo "allow-newer: openssl-streams-1.2.2.0:network" >> cabal.project + echo "allow-newer: jsaddle-0.9.6.0:lens" >> cabal.project + echo "allow-newer: jsaddle-0.9.6.0:primitive" >> cabal.project + echo "allow-newer: jsaddle-0.9.6.0:time" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.2:base" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.2:base-compat" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.2:Cabal" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.2:lens" >> cabal.project + echo "allow-newer: jsaddle-warp-0.9.6.0:time" >> cabal.project echo "optimization: False" >> cabal.project - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(cookbook-basic-auth|cookbook-basic-streaming|cookbook-curl-mock|cookbook-db-postgres-pool|cookbook-file-upload|cookbook-generic|cookbook-pagination|cookbook-structuring-apis|cookbook-testing|cookbook-using-custom-monad|cookbook-using-free-client|servant|servant-client|servant-client-core|servant-conduit|servant-docs|servant-foreign|servant-http-streams|servant-jsaddle|servant-machines|servant-pipes|servant-server|tutorial)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done" - cat cabal.project || true diff --git a/cabal.project b/cabal.project index 9d6e3fdd..c4329c9d 100644 --- a/cabal.project +++ b/cabal.project @@ -62,3 +62,15 @@ allow-newer: openssl-streams-1.2.2.0:network -- MonadFail -- https://github.com/nurpax/sqlite-simple/issues/74 constraints: sqlite-simple < 0 + +-- jsaddle +allow-newer: jsaddle-0.9.6.0:lens +allow-newer: jsaddle-0.9.6.0:primitive +allow-newer: jsaddle-0.9.6.0:time +allow-newer: jsaddle-dom-0.9.3.2:base +allow-newer: jsaddle-dom-0.9.3.2:base-compat +allow-newer: jsaddle-dom-0.9.3.2:Cabal +allow-newer: jsaddle-dom-0.9.3.2:lens +allow-newer: jsaddle-warp-0.9.6.0:time + +constraints: base-compat ^>=0.11 diff --git a/servant-jsaddle/servant-jsaddle.cabal b/servant-jsaddle/servant-jsaddle.cabal index c9904056..e12cf9e5 100644 --- a/servant-jsaddle/servant-jsaddle.cabal +++ b/servant-jsaddle/servant-jsaddle.cabal @@ -22,7 +22,7 @@ category: Servant, Web build-type: Simple cabal-version: >=1.10 tested-with: - GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 + GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.1 , GHCJS ==8.4 homepage: http://haskell-servant.readthedocs.org/ @@ -46,7 +46,7 @@ library -- Bundled with GHC: Lower bound to not force re-installs -- text and mtl are bundled starting with GHC-8.4 build-depends: - base >=4.9 && <4.13 + base >=4.9 && <4.14 , bytestring >=0.10.8.1 && <0.11 , containers >=0.5.7.1 && <0.7 , mtl >=2.2.2 && <2.3 @@ -60,10 +60,10 @@ library -- Strict dependency on `servant-client-core` as we re-export things. build-depends: servant-client-core >=0.16 && <0.16.1 build-depends: - base-compat >=0.10.5 && <0.11 + base-compat >=0.10.5 && <0.12 , case-insensitive >=1.2.0.0 && <1.3 , exceptions >=0.10.0 && <0.11 - , ghcjs-dom + , ghcjs-dom >=0.9.4.0 && <0.10 , http-media >=0.7.1.3 && <0.9 , http-types >=0.12.2 && <0.13 , jsaddle >=0.9.6.0 && <0.10 From 52408fea16b530d394d8b3841ab2f448170f0af5 Mon Sep 17 00:00:00 2001 From: Oleg Grenrus Date: Sun, 15 Sep 2019 14:50:55 +0300 Subject: [PATCH 2/3] Fix servant-client with base-compat-0.11 --- cabal.project | 2 -- servant-client/CHANGELOG.md | 5 +++++ servant-client/servant-client.cabal | 2 +- .../src/Servant/Client/Internal/HttpClient.hs | 10 +++++++--- servant-http-streams/CHANGELOG.md | 5 +++++ .../src/Servant/HttpStreams/Internal.hs | 8 +++++++- 6 files changed, 25 insertions(+), 7 deletions(-) diff --git a/cabal.project b/cabal.project index c4329c9d..41093bdc 100644 --- a/cabal.project +++ b/cabal.project @@ -38,8 +38,6 @@ packages: doc/cookbook/using-free-client -- doc/cookbook/open-id-connect - - tests: True optimization: False -- reorder-goals: True diff --git a/servant-client/CHANGELOG.md b/servant-client/CHANGELOG.md index aa144cab..02f7bd85 100644 --- a/servant-client/CHANGELOG.md +++ b/servant-client/CHANGELOG.md @@ -1,6 +1,11 @@ [The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-client/CHANGELOG.md) [Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md) +0.16.0.1 +-------- + +- Allow `base-compat-0.11` + 0.16 ---- diff --git a/servant-client/servant-client.cabal b/servant-client/servant-client.cabal index 5c8268fc..dd7356f1 100644 --- a/servant-client/servant-client.cabal +++ b/servant-client/servant-client.cabal @@ -1,6 +1,6 @@ cabal-version: >=1.10 name: servant-client -version: 0.16 +version: 0.16.0.1 synopsis: Automatic derivation of querying functions for servant category: Servant, Web diff --git a/servant-client/src/Servant/Client/Internal/HttpClient.hs b/servant-client/src/Servant/Client/Internal/HttpClient.hs index 1feb56d6..ec8a63e5 100644 --- a/servant-client/src/Servant/Client/Internal/HttpClient.hs +++ b/servant-client/src/Servant/Client/Internal/HttpClient.hs @@ -16,10 +16,11 @@ import Prelude.Compat import Control.Concurrent.MVar (modifyMVar, newMVar) -import qualified Data.ByteString as BS import Control.Concurrent.STM.TVar import Control.Exception + (SomeException (..), catch) import Control.Monad + (unless) import Control.Monad.Base (MonadBase (..)) import Control.Monad.Catch @@ -27,15 +28,18 @@ import Control.Monad.Catch import Control.Monad.Error.Class (MonadError (..)) import Control.Monad.IO.Class - (liftIO) + (MonadIO (..)) import Control.Monad.Reader + (MonadReader, ReaderT, ask, runReaderT) import Control.Monad.STM (STM, atomically) import Control.Monad.Trans.Control (MonadBaseControl (..)) import Control.Monad.Trans.Except + (ExceptT, runExceptT) import Data.Bifunctor (bimap) +import qualified Data.ByteString as BS import Data.ByteString.Builder (toLazyByteString) import qualified Data.ByteString.Lazy as BSL @@ -64,8 +68,8 @@ import Network.HTTP.Types (hContentType, renderQuery, statusCode) import Servant.Client.Core -import qualified Servant.Types.SourceT as S import qualified Network.HTTP.Client as Client +import qualified Servant.Types.SourceT as S -- | The environment in which a request is run. data ClientEnv diff --git a/servant-http-streams/CHANGELOG.md b/servant-http-streams/CHANGELOG.md index 7bf14e4f..19b1f6b1 100644 --- a/servant-http-streams/CHANGELOG.md +++ b/servant-http-streams/CHANGELOG.md @@ -1,6 +1,11 @@ [The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-http-streams/CHANGELOG.md) [Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md) +0.16.0.1 +-------- + +- Allow `base-compat-0.11` + 0.16 ---- diff --git a/servant-http-streams/src/Servant/HttpStreams/Internal.hs b/servant-http-streams/src/Servant/HttpStreams/Internal.hs index 3c5fb7e4..54c920bc 100644 --- a/servant-http-streams/src/Servant/HttpStreams/Internal.hs +++ b/servant-http-streams/src/Servant/HttpStreams/Internal.hs @@ -18,6 +18,8 @@ import Control.DeepSeq (NFData, force) import Control.Exception (IOException, SomeException (..), catch, evaluate, throwIO) +import Control.Monad + (unless) import Control.Monad.Base (MonadBase (..)) import Control.Monad.Codensity @@ -25,9 +27,13 @@ import Control.Monad.Codensity import Control.Monad.Error.Class (MonadError (..)) import Control.Monad.IO.Class - (liftIO) + (MonadIO (..)) import Control.Monad.Reader + (MonadReader, ReaderT, ask, runReaderT) +import Control.Monad.Trans.Class + (lift) import Control.Monad.Trans.Except + (ExceptT, runExceptT) import Data.Bifunctor (bimap, first) import Data.ByteString.Builder From 71ca2a203c30df159d6040e938d732f7889e4eb6 Mon Sep 17 00:00:00 2001 From: Oleg Grenrus Date: Mon, 30 Sep 2019 10:53:32 +0300 Subject: [PATCH 3/3] Allow jsaddle-dom-0.9.3.1 --- .travis.yml | 8 ++++++++ cabal.project | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/.travis.yml b/.travis.yml index 337014b9..d6385fae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -171,6 +171,10 @@ install: echo "allow-newer: jsaddle-0.9.6.0:lens" >> cabal.project echo "allow-newer: jsaddle-0.9.6.0:primitive" >> cabal.project echo "allow-newer: jsaddle-0.9.6.0:time" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.1:base" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.1:base-compat" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.1:Cabal" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.1:lens" >> cabal.project echo "allow-newer: jsaddle-dom-0.9.3.2:base" >> cabal.project echo "allow-newer: jsaddle-dom-0.9.3.2:base-compat" >> cabal.project echo "allow-newer: jsaddle-dom-0.9.3.2:Cabal" >> cabal.project @@ -284,6 +288,10 @@ script: echo "allow-newer: jsaddle-0.9.6.0:lens" >> cabal.project echo "allow-newer: jsaddle-0.9.6.0:primitive" >> cabal.project echo "allow-newer: jsaddle-0.9.6.0:time" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.1:base" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.1:base-compat" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.1:Cabal" >> cabal.project + echo "allow-newer: jsaddle-dom-0.9.3.1:lens" >> cabal.project echo "allow-newer: jsaddle-dom-0.9.3.2:base" >> cabal.project echo "allow-newer: jsaddle-dom-0.9.3.2:base-compat" >> cabal.project echo "allow-newer: jsaddle-dom-0.9.3.2:Cabal" >> cabal.project diff --git a/cabal.project b/cabal.project index 41093bdc..fc36d163 100644 --- a/cabal.project +++ b/cabal.project @@ -65,6 +65,10 @@ constraints: sqlite-simple < 0 allow-newer: jsaddle-0.9.6.0:lens allow-newer: jsaddle-0.9.6.0:primitive allow-newer: jsaddle-0.9.6.0:time +allow-newer: jsaddle-dom-0.9.3.1:base +allow-newer: jsaddle-dom-0.9.3.1:base-compat +allow-newer: jsaddle-dom-0.9.3.1:Cabal +allow-newer: jsaddle-dom-0.9.3.1:lens allow-newer: jsaddle-dom-0.9.3.2:base allow-newer: jsaddle-dom-0.9.3.2:base-compat allow-newer: jsaddle-dom-0.9.3.2:Cabal