diff --git a/.travis.yml b/.travis.yml index 7a5ead9c..623f0ab9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -71,7 +71,7 @@ install: - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$' - "printf 'packages: \"servant\" \"servant-client\" \"servant-client-core\" \"servant-docs\" \"servant-foreign\" \"servant-server\" \"doc/tutorial\" \"doc/cookbook/db-postgres-pool\" \"doc/cookbook/jwt-and-basic-auth\" \"doc/cookbook/db-sqlite-simple\" \"doc/cookbook/basic-auth\" \"doc/cookbook/https\" \"doc/cookbook/structuring-apis\" \"doc/cookbook/using-custom-monad\" \"doc/cookbook/file-upload\"\\n' > cabal.project" - "echo 'constraints: foundation >=0.0.14,memory <0.14.12 || >0.14.12' >> cabal.project" - - "echo 'allow-newer: servant-js:servant-foreign,servant-auth-server:http-types,servant-multipart:lens,servant-multipart:resourcet' >> cabal.project" + - "echo 'allow-newer: servant-js:servant,servant-js:servant-foreign,servant-auth-server:http-types,servant-multipart:lens,servant-multipart:resourcet,servant-multipart:servant,servant-multipart:servant-server,servant-auth-server:servant-server' >> cabal.project" - cat cabal.project - if [ -f "servant/configure.ac" ]; then (cd "servant" && autoreconf -i); @@ -149,7 +149,7 @@ script: - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \; - "printf 'packages: servant-*/*.cabal servant-client-*/*.cabal servant-client-core-*/*.cabal servant-docs-*/*.cabal servant-foreign-*/*.cabal servant-server-*/*.cabal tutorial-*/*.cabal cookbook-db-postgres-pool-*/*.cabal cookbook-jwt-and-basic-auth-*/*.cabal cookbook-db-sqlite-simple-*/*.cabal cookbook-basic-auth-*/*.cabal cookbook-https-*/*.cabal cookbook-structuring-apis-*/*.cabal cookbook-using-custom-monad-*/*.cabal cookbook-file-upload-*/*.cabal\\n' > cabal.project" - "echo 'constraints: foundation >=0.0.14,memory <0.14.12 || >0.14.12' >> cabal.project" - - "echo 'allow-newer: servant-js:servant-foreign,servant-auth-server:http-types,servant-multipart:lens,servant-multipart:resourcet' >> cabal.project" + - "echo 'allow-newer: servant-js:servant,servant-js:servant-foreign,servant-auth-server:http-types,servant-multipart:lens,servant-multipart:resourcet,servant-multipart:servant,servant-multipart:servant-server,servant-auth-server:servant-server' >> cabal.project" - cat cabal.project - echo -en 'travis_fold:end:unpack\\r' diff --git a/cabal.project b/cabal.project index d5d51915..a1d01559 100644 --- a/cabal.project +++ b/cabal.project @@ -8,10 +8,14 @@ packages: servant/ doc/cookbook/*/*.cabal allow-newer: + servant-js:servant, servant-js:servant-foreign, servant-auth-server:http-types, servant-multipart:lens, - servant-multipart:resourcet + servant-multipart:resourcet, + servant-multipart:servant, + servant-multipart:servant-server, + servant-auth-server:servant-server constraints: -- see https://github.com/haskell-infra/hackage-trustees/issues/119 diff --git a/servant-client-core/CHANGELOG.md b/servant-client-core/CHANGELOG.md index ac711738..19cbde38 100644 --- a/servant-client-core/CHANGELOG.md +++ b/servant-client-core/CHANGELOG.md @@ -1,6 +1,14 @@ [The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-client-core/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.13 +---- + +- Streaming endpoint support. + ([#836](https://github.com/haskell-servant/servant/pull/836)) +- *servant* Add `Servant.API.Modifiers` + ([#873](https://github.com/haskell-servant/servant/pull/873)) + 0.12 ---- diff --git a/servant-client-core/servant-client-core.cabal b/servant-client-core/servant-client-core.cabal index 6fb39fc0..5d0ce62f 100644 --- a/servant-client-core/servant-client-core.cabal +++ b/servant-client-core/servant-client-core.cabal @@ -1,5 +1,5 @@ name: servant-client-core -version: 0.12 +version: 0.13 synopsis: Core functionality and class for client function generation for servant APIs description: This library provides backend-agnostic generation of client functions. For @@ -57,7 +57,7 @@ library -- Servant dependencies build-depends: - servant == 0.12.* + servant == 0.13.* -- Other dependencies: Lower bound around what is in the latest Stackage LTS. -- Here can be exceptions if we really need features from the newer versions. diff --git a/servant-client-ghcjs/servant-client-ghcjs.cabal b/servant-client-ghcjs/servant-client-ghcjs.cabal index 482eb1e5..34e242c4 100644 --- a/servant-client-ghcjs/servant-client-ghcjs.cabal +++ b/servant-client-ghcjs/servant-client-ghcjs.cabal @@ -1,5 +1,5 @@ name: servant-client-ghcjs -version: 0.11 +version: 0.13 synopsis: automatical derivation of querying functions for servant webservices for ghcjs description: This library lets you automatically derive Haskell functions that @@ -43,7 +43,7 @@ library , monad-control >= 1.0.0.4 && < 1.1 , mtl >= 2.1 && < 2.3 , semigroupoids >= 4.3 && < 5.3 - , servant-client-core >= 0.12 && < 0.13 + , servant-client-core == 0.13.* , string-conversions >= 0.3 && < 0.5 , transformers >= 0.3 && < 0.6 , transformers-base >= 0.4.4 && < 0.5 diff --git a/servant-client/CHANGELOG.md b/servant-client/CHANGELOG.md index c3665a88..9df704ca 100644 --- a/servant-client/CHANGELOG.md +++ b/servant-client/CHANGELOG.md @@ -1,6 +1,17 @@ [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.13 +---- + +- Streaming endpoint support. + ([#836](https://github.com/haskell-servant/servant/pull/836)) +- *servant* Add `Servant.API.Modifiers` + ([#873](https://github.com/haskell-servant/servant/pull/873)) +- *servant-client* Support `http-client`’s `CookieJar` + ([#897](https://github.com/haskell-servant/servant/pull/897) + [#883](https://github.com/haskell-servant/servant/pull/883)) + 0.12.0.1 -------- diff --git a/servant-client/servant-client.cabal b/servant-client/servant-client.cabal index d4dc6ae0..91e85b99 100644 --- a/servant-client/servant-client.cabal +++ b/servant-client/servant-client.cabal @@ -1,5 +1,5 @@ name: servant-client -version: 0.12.0.1 +version: 0.13 synopsis: automatical derivation of querying functions for servant webservices description: This library lets you derive automatically Haskell functions that @@ -54,7 +54,7 @@ library -- Servant dependencies build-depends: - servant-client-core == 0.12.* + servant-client-core == 0.13.* -- Other dependencies: Lower bound around what is in the latest Stackage LTS. -- Here can be exceptions if we really need features from the newer versions. @@ -118,8 +118,8 @@ test-suite spec , HUnit >= 1.6 && < 1.7 , network >= 2.6.3.2 && < 2.7 , QuickCheck >= 2.10.1 && < 2.12 - , servant == 0.12.* - , servant-server == 0.12.* + , servant == 0.13.* + , servant-server == 0.13.* build-tool-depends: hspec-discover:hspec-discover >= 2.4.4 && < 2.5 diff --git a/servant-docs/CHANGELOG.md b/servant-docs/CHANGELOG.md index d7344b6e..1f4448f5 100644 --- a/servant-docs/CHANGELOG.md +++ b/servant-docs/CHANGELOG.md @@ -1,6 +1,13 @@ [The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-docs/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.11.2 +------ + +* Allow `servant-0.13`: + - Doesn't have instances for streaming. + - Servant.API.Modifiers extra information isn't used. + 0.11.1 ------ diff --git a/servant-docs/servant-docs.cabal b/servant-docs/servant-docs.cabal index 7aa5ce8f..5fca7774 100644 --- a/servant-docs/servant-docs.cabal +++ b/servant-docs/servant-docs.cabal @@ -1,5 +1,5 @@ name: servant-docs -version: 0.11.1 +version: 0.11.2 synopsis: generate API docs for your servant webservice description: Library for generating API docs from a servant API definition. @@ -51,7 +51,7 @@ library -- Servant dependencies build-depends: - servant == 0.12.* + servant == 0.13.* -- Other dependencies: Lower bound around what is in the latest Stackage LTS. -- Here can be exceptions if we really need features from the newer versions. diff --git a/servant-foreign/CHANGELOG.md b/servant-foreign/CHANGELOG.md index 24408831..73846801 100644 --- a/servant-foreign/CHANGELOG.md +++ b/servant-foreign/CHANGELOG.md @@ -6,7 +6,9 @@ ### Breaking changes -* Make foreign client Header arguments have the representation of 'Maybe' in those languages +- *servant* Add `Servant.API.Modifiers` + ([#873](https://github.com/haskell-servant/servant/pull/873)) +- Make foreign client Header arguments have the representation of 'Maybe' in those languages ([#843](https://github.com/haskell-servant/servant/pull/843)) 0.10.2 diff --git a/servant-foreign/servant-foreign.cabal b/servant-foreign/servant-foreign.cabal index 2faeabcc..04ce10d5 100644 --- a/servant-foreign/servant-foreign.cabal +++ b/servant-foreign/servant-foreign.cabal @@ -47,7 +47,7 @@ library -- Servant dependencies build-depends: - servant == 0.12.* + servant == 0.13.* -- Other dependencies: Lower bound around what is in the latest Stackage LTS. -- Here can be exceptions if we really need features from the newer versions. diff --git a/servant-server/CHANGELOG.md b/servant-server/CHANGELOG.md index c3b15cda..952b5470 100644 --- a/servant-server/CHANGELOG.md +++ b/servant-server/CHANGELOG.md @@ -1,6 +1,14 @@ [The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-server/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.13 +---- + +- Streaming endpoint support. + ([#836](https://github.com/haskell-servant/servant/pull/836)) +- *servant* Add `Servant.API.Modifiers` + ([#873](https://github.com/haskell-servant/servant/pull/873)) + 0.12 ---- diff --git a/servant-server/servant-server.cabal b/servant-server/servant-server.cabal index 7dd291a8..06ade019 100644 --- a/servant-server/servant-server.cabal +++ b/servant-server/servant-server.cabal @@ -1,5 +1,5 @@ name: servant-server -version: 0.12 +version: 0.13 synopsis: A family of combinators for defining webservices APIs and serving them description: A family of combinators for defining webservices APIs and serving them @@ -70,7 +70,7 @@ library -- Servant dependencies build-depends: - servant == 0.12.* + servant == 0.13.* -- Other dependencies: Lower bound around what is in the latest Stackage LTS. -- Here can be exceptions if we really need features from the newer versions. diff --git a/servant/CHANGELOG.md b/servant/CHANGELOG.md index 823a31e9..a249d5b7 100644 --- a/servant/CHANGELOG.md +++ b/servant/CHANGELOG.md @@ -1,5 +1,78 @@ [The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md) +0.13 +---- + +### Significant changes + +- Streaming endpoint support. + ([#836](https://github.com/haskell-servant/servant/pull/836)) + + ```haskell + type StreamApi f = "streamGetNewline" :> StreamGet NewlineFraming JSON (f Person) + ``` + + See tutorial for more details + - [A web API as a type - StreamGet and StreamPost](http://haskell-servant.readthedocs.io/en/release-0.13/tutorial/ApiType.html#streamget-and-streampost) + - [Serving an API - streaming endpoints](http://haskell-servant.readthedocs.io/en/release-0.13/tutorial/Server.html#streaming-endpoints) + - [Querying an API - Querying Streaming APIs](http://haskell-servant.readthedocs.io/en/release-0.13/tutorial/Client.html#querying-streaming-apis) + +- *servant* Add `Servant.API.Modifiers` + ([#873](https://github.com/haskell-servant/servant/pull/873)) + + `QueryParam`, `Header` and `ReqBody` understand modifiers: + - `Required` or `Optional` (resulting in `a` or `Maybe a` in handlers) + - `Strict` or `Lenient` (resulting in `a` or `Either String a` in handlers) + +- *servant-client* Support `http-client`’s `CookieJar` + ([#897](https://github.com/haskell-servant/servant/pull/897) + [#883](https://github.com/haskell-servant/servant/pull/883)) + + `ClientM` preserves cookies between requests, + if given initial `CookieJar`. + To migrate from older code, change `ClientEnv` constructor + to `mkClientEnv` which makes `ClientEnv` without `CookieJar`. + +- *servant* Mono-kind-ise modifiers, resulting in better error messages. + ([#887](https://github.com/haskell-servant/servant/issues/887) + [#890](https://github.com/haskell-servant/servant/pull/890)) + +- *servant* Add `TypeError ... => HasServer`s instances in GHC-8.2 for + not saturated modifiers (`Capture "foo" :> ...`) or `->` in place of `:>`. + ([#893](https://github.com/haskell-servant/servant/pull/893)) + +- *Cookbook* example projects at + http://haskell-servant.readthedocs.io/en/master/cookbook/index.html + ([#867](https://github.com/haskell-servant/servant/pull/867) + [#892](https://github.com/haskell-servant/servant/pull/882)) + +- *Experimental work* `servant-client-ghcjs` + ([#818](https://github.com/haskell-servant/servant/pull/818) + [#869](https://github.com/haskell-servant/servant/pull/869)) + +### Other changes + +- *servant* Links aren't double escaped + ([#878](https://github.com/haskell-servant/servant/pull/878)) + +- Dependency updates + ([#900](https://github.com/haskell-servant/servant/pull/900) + [#898](https://github.com/haskell-servant/servant/pull/898) + [#895](https://github.com/haskell-servant/servant/pull/895) + [#872](https://github.com/haskell-servant/servant/pull/872)) + +- Documentation updates + ([#875](https://github.com/haskell-servant/servant/pull/875) + [#861](https://github.com/haskell-servant/servant/pull/861)) + +- Refactorings + ([#899](https://github.com/haskell-servant/servant/pull/899) + [#896](https://github.com/haskell-servant/servant/pull/896) + [#889](https://github.com/haskell-servant/servant/pull/889) + [#891](https://github.com/haskell-servant/servant/pull/891) + [#892](https://github.com/haskell-servant/servant/pull/892) + [#885](https://github.com/haskell-servant/servant/pull/885)) + 0.12.1 ------ diff --git a/servant/servant.cabal b/servant/servant.cabal index e9eb9b8f..c882067f 100644 --- a/servant/servant.cabal +++ b/servant/servant.cabal @@ -1,5 +1,5 @@ name: servant -version: 0.12 +version: 0.13 synopsis: A family of combinators for defining webservices APIs description: A family of combinators for defining webservices APIs and serving them