From a1a99552b58bf49f8f142be62eef8b6eae14b7c0 Mon Sep 17 00:00:00 2001 From: Oleg Grenrus Date: Mon, 12 Nov 2018 22:04:29 +0200 Subject: [PATCH] Changelog and cabal file edits - Add #1079, #1011 entry - Stricter internal dependencies - Unify .cabal files - Correct -conduit, -machines, -pipes changelog - Fix years in LICENSEs - Remove tinc.yamls - Tweaks to 0.15 changelog - Add changelogs for all packages - Add changelogs for new packages (extra-source-files) --- doc/tutorial/tinc.yaml | 13 ---- servant-client-core/CHANGELOG.md | 75 +++++++++++++++++++ servant-client-core/LICENSE | 2 +- servant-client-core/servant-client-core.cabal | 23 +++--- servant-client-ghcjs/LICENSE | 2 +- .../servant-client-ghcjs.cabal | 19 +++-- servant-client-ghcjs/tinc.yaml | 5 -- servant-client/CHANGELOG.md | 66 ++++++++++++++++ servant-client/LICENSE | 2 +- servant-client/servant-client.cabal | 26 ++++--- servant-client/tinc.yaml | 5 -- servant-conduit/CHANGELOG.md | 16 +--- servant-conduit/servant-conduit.cabal | 15 +++- servant-conduit/src/Servant/Conduit.hs | 4 +- servant-docs/CHANGELOG.md | 6 ++ servant-docs/LICENSE | 2 +- servant-docs/servant-docs.cabal | 21 +++--- servant-docs/tinc.yaml | 3 - servant-foreign/CHANGELOG.md | 12 +++ servant-foreign/LICENSE | 2 +- servant-foreign/servant-foreign.cabal | 22 +++--- servant-foreign/tinc.yaml | 3 - servant-machines/CHANGELOG.md | 16 +--- servant-machines/servant-machines.cabal | 15 +++- servant-machines/src/Servant/Machines.hs | 4 +- servant-pipes/CHANGELOG.md | 16 +--- servant-pipes/servant-pipes.cabal | 15 +++- servant-pipes/src/Servant/Pipes.hs | 4 +- servant-server/CHANGELOG.md | 50 +++++++++++++ servant-server/LICENSE | 2 +- servant-server/servant-server.cabal | 22 +++--- servant-server/tinc.yaml | 3 - servant/CHANGELOG.md | 29 +++++-- servant/LICENSE | 2 +- servant/servant.cabal | 8 +- 35 files changed, 361 insertions(+), 169 deletions(-) delete mode 100644 doc/tutorial/tinc.yaml delete mode 100644 servant-client-ghcjs/tinc.yaml delete mode 100644 servant-client/tinc.yaml delete mode 100644 servant-docs/tinc.yaml delete mode 100644 servant-foreign/tinc.yaml delete mode 100644 servant-server/tinc.yaml diff --git a/doc/tutorial/tinc.yaml b/doc/tutorial/tinc.yaml deleted file mode 100644 index f52bab2d..00000000 --- a/doc/tutorial/tinc.yaml +++ /dev/null @@ -1,13 +0,0 @@ -dependencies: - - name: servant - path: ../../servant - - name: servant-server - path: ../../servant-server - - name: servant-client - path: ../../servant-client - - name: servant-js - path: ../../servant-js - - name: servant-docs - path: ../../servant-docs - - name: servant-foreign - path: ../../servant-foreign diff --git a/servant-client-core/CHANGELOG.md b/servant-client-core/CHANGELOG.md index 89043507..0ff188ce 100644 --- a/servant-client-core/CHANGELOG.md +++ b/servant-client-core/CHANGELOG.md @@ -1,6 +1,81 @@ [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.15 +---- + +- Streaming refactoring. + [#991](https://github.com/haskell-servant/servant/pull/991) + [#1076](https://github.com/haskell-servant/servant/pull/1076) + [#1077](https://github.com/haskell-servant/servant/pull/1077) + + The streaming functionality (`Servant.API.Stream`) is refactored to use + `servant`'s own `SourceIO` type (see `Servant.Types.SourceT` documentation), + which replaces both `StreamGenerator` and `ResultStream` types. + + New conversion type-classes are `ToSourceIO` and `FromSourceIO` + (replacing `ToStreamGenerator` and `BuildFromStream`). + There are instances for *conduit*, *pipes* and *machines* in new packages: + [servant-conduit](https://hackage.haskell.org/package/servant-conduit) + [servant-pipes](https://hackage.haskell.org/package/servant-pipes) and + [servant-machines](https://hackage.haskell.org/package/servant-machines) + respectively. + + Writing new framing strategies is simpler. Check existing strategies for examples. + + This change shouldn't affect you, if you don't use streaming endpoints. + +- *servant-client* Separate streaming client. + [#1066](https://github.com/haskell-servant/servant/pull/1066) + + We now have two `http-client` based clients, + in `Servant.Client` and `Servant.Client.Streaming`. + + Their API is the same, except for + - `Servant.Client` **cannot** request `Stream` endpoints. + - `Servant.Client` is *run* by direct + `runClientM :: ClientM a -> ClientEnv -> IO (Either ServantError a)` + - `Servant.Client.Streaming` **can** request `Stream` endpoints. + - `Servant.Client.Streaming` is *used* by CPSised + `withClientM :: ClientM a -> ClientEnv -> (Either ServantError a -> IO b) -> IO b` + + To access `Stream` endpoints use `Servant.Client.Streaming` with + `withClientM`; otherwise you can continue using `Servant.Client` with `runClientM`. + You can use both too, `ClientEnv` and `BaseUrl` types are same for both. + + **Note:** `Servant.Client.Streaming` doesn't *stream* non-`Stream` endpoints. + Requesting ordinary `Verb` endpoints (e.g. `Get`) will block until + the whole response is received. + + There is `Servant.Client.Streaming.runClientM` function, but it has + restricted type. `NFData a` constraint prevents using it with + `SourceT`, `Conduit` etc. response types. + + ```haskell + runClientM :: NFData a => ClientM a -> ClientEnv -> IO (Either ServantError a) + ``` + + This change shouldn't affect you, if you don't use streaming endpoints. + +- *servant-client-core* Related to the previous: + `streamingResponse` is removed from `RunClient`. + We have a new type-class: + + ```haskell + class RunClient m => RunStreamingClient m where + withStreamingRequest :: Request -> (StreamingResponse -> IO a) -> m a + ``` + +- Drop support for GHC older than 8.0 + [#1008](https://github.com/haskell-servant/servant/pull/1008) + [#1009](https://github.com/haskell-servant/servant/pull/1009) + +- *servant-client-core* Add `NFData (GenResponse a)` and `NFData ServantError` instances. + [#1076](https://github.com/haskell-servant/servant/pull/1076) + +- *servant-client-core* Add `aeson` and `Lift BaseUrl` instances + [#1037](https://github.com/haskell-servant/servant/pull/1037) + 0.14.1 ------ diff --git a/servant-client-core/LICENSE b/servant-client-core/LICENSE index 04bba964..0c0a5f4a 100644 --- a/servant-client-core/LICENSE +++ b/servant-client-core/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2017, Servant Contributors +Copyright (c) 2017-2018, Servant Contributors All rights reserved. diff --git a/servant-client-core/servant-client-core.cabal b/servant-client-core/servant-client-core.cabal index 4dfb5908..31503aaa 100644 --- a/servant-client-core/servant-client-core.cabal +++ b/servant-client-core/servant-client-core.cabal @@ -1,27 +1,30 @@ +cabal-version: >=1.10 name: servant-client-core version: 0.15 + synopsis: Core functionality and class for client function generation for servant APIs +category: Servant, Web description: This library provides backend-agnostic generation of client functions. For more information, see the README. + +homepage: http://haskell-servant.readthedocs.org/ +bug-reports: http://github.com/haskell-servant/servant/issues license: BSD3 license-file: LICENSE author: Servant Contributors maintainer: haskell-servant-maintainers@googlegroups.com -homepage: http://haskell-servant.readthedocs.org/ -bug-reports: http://github.com/haskell-servant/servant/issues -cabal-version: >=1.10 -copyright: 2014-2016 Zalora South East Asia Pte Ltd, 2016-2017 Servant Contributors -category: Web +copyright: 2014-2016 Zalora South East Asia Pte Ltd, 2016-2018 Servant Contributors build-type: Simple +tested-with: + GHC ==8.0.2 + || ==8.2.2 + || ==8.4.4 + || ==8.6.2 + extra-source-files: CHANGELOG.md README.md -tested-with: - GHC==8.0.2 - GHC==8.2.2 - GHC==8.4.4 - GHC==8.6.2 source-repository head type: git diff --git a/servant-client-ghcjs/LICENSE b/servant-client-ghcjs/LICENSE index 9717a9ce..c6a28c24 100644 --- a/servant-client-ghcjs/LICENSE +++ b/servant-client-ghcjs/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014-2016, Zalora South East Asia Pte Ltd, Servant Contributors +Copyright (c) 2014-2016, Zalora South East Asia Pte Ltd, 2016-2018 Servant Contributors All rights reserved. diff --git a/servant-client-ghcjs/servant-client-ghcjs.cabal b/servant-client-ghcjs/servant-client-ghcjs.cabal index ac44ecfd..557d9459 100644 --- a/servant-client-ghcjs/servant-client-ghcjs.cabal +++ b/servant-client-ghcjs/servant-client-ghcjs.cabal @@ -1,6 +1,9 @@ +cabal-version: >=1.10 name: servant-client-ghcjs version: 0.14 -synopsis: automatical derivation of querying functions for servant webservices for ghcjs + +synopsis: Automatic derivation of querying functions for servant webservices for GHCJS +category: Servant, Web description: This library lets you automatically derive Haskell functions that let you query each endpoint of a webservice. @@ -8,20 +11,22 @@ description: See . . + +homepage: http://haskell-servant.readthedocs.org/ +bug-reports: http://github.com/haskell-servant/servant/issues license: BSD3 license-file: LICENSE author: Servant Contributors maintainer: haskell-servant-maintainers@googlegroups.com -copyright: 2014-2016 Zalora South East Asia Pte Ltd, 2016-2017 Servant Contributors -category: Servant, Web +copyright: 2014-2016 Zalora South East Asia Pte Ltd, 2016-2018 Servant Contributors build-type: Simple -cabal-version: >=1.10 -tested-with: GHC >= 7.8 -homepage: http://haskell-servant.readthedocs.org/ -Bug-reports: http://github.com/haskell-servant/servant/issues +tested-with: + GHC >= 7.8 + extra-source-files: CHANGELOG.md README.md + source-repository head type: git location: http://github.com/haskell-servant/servant.git diff --git a/servant-client-ghcjs/tinc.yaml b/servant-client-ghcjs/tinc.yaml deleted file mode 100644 index ec6d448f..00000000 --- a/servant-client-ghcjs/tinc.yaml +++ /dev/null @@ -1,5 +0,0 @@ -dependencies: - - name: servant - path: ../servant - - name: servant-server - path: ../servant-server diff --git a/servant-client/CHANGELOG.md b/servant-client/CHANGELOG.md index 3b40adcf..f63ccb9a 100644 --- a/servant-client/CHANGELOG.md +++ b/servant-client/CHANGELOG.md @@ -1,6 +1,72 @@ [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.15 +---- + +- Streaming refactoring. + [#991](https://github.com/haskell-servant/servant/pull/991) + [#1076](https://github.com/haskell-servant/servant/pull/1076) + [#1077](https://github.com/haskell-servant/servant/pull/1077) + + The streaming functionality (`Servant.API.Stream`) is refactored to use + `servant`'s own `SourceIO` type (see `Servant.Types.SourceT` documentation), + which replaces both `StreamGenerator` and `ResultStream` types. + + New conversion type-classes are `ToSourceIO` and `FromSourceIO` + (replacing `ToStreamGenerator` and `BuildFromStream`). + There are instances for *conduit*, *pipes* and *machines* in new packages: + [servant-conduit](https://hackage.haskell.org/package/servant-conduit) + [servant-pipes](https://hackage.haskell.org/package/servant-pipes) and + [servant-machines](https://hackage.haskell.org/package/servant-machines) + respectively. + + Writing new framing strategies is simpler. Check existing strategies for examples. + + This change shouldn't affect you, if you don't use streaming endpoints. + +- *servant-client* Separate streaming client. + [#1066](https://github.com/haskell-servant/servant/pull/1066) + + We now have two `http-client` based clients, + in `Servant.Client` and `Servant.Client.Streaming`. + + Their API is the same, except for + - `Servant.Client` **cannot** request `Stream` endpoints. + - `Servant.Client` is *run* by direct + `runClientM :: ClientM a -> ClientEnv -> IO (Either ServantError a)` + - `Servant.Client.Streaming` **can** request `Stream` endpoints. + - `Servant.Client.Streaming` is *used* by CPSised + `withClientM :: ClientM a -> ClientEnv -> (Either ServantError a -> IO b) -> IO b` + + To access `Stream` endpoints use `Servant.Client.Streaming` with + `withClientM`; otherwise you can continue using `Servant.Client` with `runClientM`. + You can use both too, `ClientEnv` and `BaseUrl` types are same for both. + + **Note:** `Servant.Client.Streaming` doesn't *stream* non-`Stream` endpoints. + Requesting ordinary `Verb` endpoints (e.g. `Get`) will block until + the whole response is received. + + There is `Servant.Client.Streaming.runClientM` function, but it has + restricted type. `NFData a` constraint prevents using it with + `SourceT`, `Conduit` etc. response types. + + ```haskell + runClientM :: NFData a => ClientM a -> ClientEnv -> IO (Either ServantError a) + ``` + + This change shouldn't affect you, if you don't use streaming endpoints. + +- Drop support for GHC older than 8.0 + [#1008](https://github.com/haskell-servant/servant/pull/1008) + [#1009](https://github.com/haskell-servant/servant/pull/1009) + +- *servant-client-core* Add `NFData (GenResponse a)` and `NFData ServantError` instances. + [#1076](https://github.com/haskell-servant/servant/pull/1076) + + *servant-client-core* Add `aeson` and `Lift BaseUrl` instances + [#1037](https://github.com/haskell-servant/servant/pull/1037) + 0.14 ---- diff --git a/servant-client/LICENSE b/servant-client/LICENSE index 9717a9ce..c6a28c24 100644 --- a/servant-client/LICENSE +++ b/servant-client/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014-2016, Zalora South East Asia Pte Ltd, Servant Contributors +Copyright (c) 2014-2016, Zalora South East Asia Pte Ltd, 2016-2018 Servant Contributors All rights reserved. diff --git a/servant-client/servant-client.cabal b/servant-client/servant-client.cabal index 848d284d..647a40a9 100644 --- a/servant-client/servant-client.cabal +++ b/servant-client/servant-client.cabal @@ -1,6 +1,9 @@ +cabal-version: >=1.10 name: servant-client version: 0.15 -synopsis: automatical derivation of querying functions for servant webservices + +synopsis: Automatic derivation of querying functions for servant +category: Servant, Web description: This library lets you derive automatically Haskell functions that let you query each endpoint of a webservice. @@ -8,24 +11,25 @@ description: See . . + +homepage: http://haskell-servant.readthedocs.org/ +bug-reports: http://github.com/haskell-servant/servant/issues license: BSD3 license-file: LICENSE author: Servant Contributors maintainer: haskell-servant-maintainers@googlegroups.com -copyright: 2014-2016 Zalora South East Asia Pte Ltd, 2016-2017 Servant Contributors -category: Servant, Web +copyright: 2014-2016 Zalora South East Asia Pte Ltd, 2016-2018 Servant Contributors build-type: Simple -cabal-version: >=1.10 tested-with: - GHC==8.0.2 - GHC==8.2.2 - GHC==8.4.4 - GHC==8.6.2 -homepage: http://haskell-servant.readthedocs.org/ -Bug-reports: http://github.com/haskell-servant/servant/issues + GHC ==8.0.2 + || ==8.2.2 + || ==8.4.4 + || ==8.6.2 + extra-source-files: CHANGELOG.md README.md + source-repository head type: git location: http://github.com/haskell-servant/servant.git @@ -54,7 +58,7 @@ library -- Strict dependency on `servant-client-core` as we re-export things. build-depends: servant == 0.15.* - , servant-client-core == 0.15 + , servant-client-core >= 0.15 && <0.15.1 -- 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/tinc.yaml b/servant-client/tinc.yaml deleted file mode 100644 index ec6d448f..00000000 --- a/servant-client/tinc.yaml +++ /dev/null @@ -1,5 +0,0 @@ -dependencies: - - name: servant - path: ../servant - - name: servant-server - path: ../servant-server diff --git a/servant-conduit/CHANGELOG.md b/servant-conduit/CHANGELOG.md index c01545e9..bd9ef796 100644 --- a/servant-conduit/CHANGELOG.md +++ b/servant-conduit/CHANGELOG.md @@ -1,16 +1,4 @@ -0.10 +0.15 ---- -* `EncodeOpts` and `DecodeOpts` merged into just `EncodeOpts`. -* Add `TabSeparatedOpts` for `text/tab-separated-values`. - -0.9 ---- - -* Refactorerd `CSV`' type. - -0.8 ---- - -* Removed DefaultEncodeOpts and DefaultDecodeOpts in favor of a single - (new) DefaultOpts +- First release with support for `servant-0.15` `Stream` refactoring. diff --git a/servant-conduit/servant-conduit.cabal b/servant-conduit/servant-conduit.cabal index 763088d5..d6cbd44a 100644 --- a/servant-conduit/servant-conduit.cabal +++ b/servant-conduit/servant-conduit.cabal @@ -1,23 +1,30 @@ +cabal-version: >=1.10 name: servant-conduit -version: 1 +version: 0.15 + synopsis: Servant Stream support for conduit. +category: Servant, Web, Enumerator description: Servant Stream support for conduit. + . + Provides 'ToSourceIO' and 'FromSourceIO' instances for 'ConduitT'. + homepage: http://haskell-servant.readthedocs.org/ +bug-reports: http://github.com/haskell-servant/servant/issues license: BSD3 license-file: LICENSE author: Servant Contributors maintainer: haskell-servant-maintainers@googlegroups.com copyright: 2018 Servant Contributors -category: Web, Servant, Enumerator build-type: Simple -cabal-version: >=1.10 -bug-reports: http://github.com/haskell-servant/servant-conduit/issues tested-with: GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.2 +extra-source-files: + CHANGELOG.md + source-repository head type: git location: http://github.com/haskell-servant/servant-conduit.git diff --git a/servant-conduit/src/Servant/Conduit.hs b/servant-conduit/src/Servant/Conduit.hs index 0788046b..b3fdc4e1 100644 --- a/servant-conduit/src/Servant/Conduit.hs +++ b/servant-conduit/src/Servant/Conduit.hs @@ -6,9 +6,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} --- | TBW --- --- This module exports 'ToSourceIO' and 'FromSourceIO' instances. +-- | This module exports 'ToSourceIO' and 'FromSourceIO' for 'ConduitT' instances. module Servant.Conduit ( ConduitToSourceIO (..), ) where diff --git a/servant-docs/CHANGELOG.md b/servant-docs/CHANGELOG.md index 1f4448f5..5e56e234 100644 --- a/servant-docs/CHANGELOG.md +++ b/servant-docs/CHANGELOG.md @@ -1,6 +1,12 @@ [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.3 +------ + +- Support `servant-0.15` + - Instances for 'Stream' and 'StreamBody' + 0.11.2 ------ diff --git a/servant-docs/LICENSE b/servant-docs/LICENSE index 9717a9ce..c6a28c24 100644 --- a/servant-docs/LICENSE +++ b/servant-docs/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014-2016, Zalora South East Asia Pte Ltd, Servant Contributors +Copyright (c) 2014-2016, Zalora South East Asia Pte Ltd, 2016-2018 Servant Contributors All rights reserved. diff --git a/servant-docs/servant-docs.cabal b/servant-docs/servant-docs.cabal index 7d321449..d22447fd 100644 --- a/servant-docs/servant-docs.cabal +++ b/servant-docs/servant-docs.cabal @@ -1,27 +1,30 @@ +cabal-version: >=1.10 name: servant-docs version: 0.11.3 + synopsis: generate API docs for your servant webservice +category: Servant, Web description: Library for generating API docs from a servant API definition. . Runnable example . . + +homepage: http://haskell-servant.readthedocs.org/ +bug-reports: http://github.com/haskell-servant/servant/issues license: BSD3 license-file: LICENSE author: Servant Contributors maintainer: haskell-servant-maintainers@googlegroups.com -copyright: 2014-2016 Zalora South East Asia Pte Ltd, Servant Contributors -category: Servant, Web +copyright: 2014-2016 Zalora South East Asia Pte Ltd, 2016-2018 Servant Contributors build-type: Simple -cabal-version: >=1.10 tested-with: - GHC==8.0.2 - GHC==8.2.2 - GHC==8.4.4 - GHC==8.6.2 -homepage: http://haskell-servant.readthedocs.org/ -Bug-reports: http://github.com/haskell-servant/servant/issues + GHC ==8.0.2 + || ==8.2.2 + || ==8.4.4 + || ==8.6.2 + extra-source-files: CHANGELOG.md README.md diff --git a/servant-docs/tinc.yaml b/servant-docs/tinc.yaml deleted file mode 100644 index dbf42cc7..00000000 --- a/servant-docs/tinc.yaml +++ /dev/null @@ -1,3 +0,0 @@ -dependencies: - - name: servant - path: ../servant diff --git a/servant-foreign/CHANGELOG.md b/servant-foreign/CHANGELOG.md index 796f9017..64fc579b 100644 --- a/servant-foreign/CHANGELOG.md +++ b/servant-foreign/CHANGELOG.md @@ -1,6 +1,18 @@ [The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-foreign/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.15 +---- + +- *servant-foreign* Add support so `HasForeign` can be implemented for + `MultipartForm` from [`servant-multipart`](http://hackage.haskell.org/package/servant-multipart) + [#1035](https://github.com/haskell-servant/servant/pull/1035) + +- Drop support for GHC older than 8.0 + [#1008](https://github.com/haskell-servant/servant/pull/1008) + [#1009](https://github.com/haskell-servant/servant/pull/1009) + + 0.11.1 ------ diff --git a/servant-foreign/LICENSE b/servant-foreign/LICENSE index 9717a9ce..c6a28c24 100644 --- a/servant-foreign/LICENSE +++ b/servant-foreign/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014-2016, Zalora South East Asia Pte Ltd, Servant Contributors +Copyright (c) 2014-2016, Zalora South East Asia Pte Ltd, 2016-2018 Servant Contributors All rights reserved. diff --git a/servant-foreign/servant-foreign.cabal b/servant-foreign/servant-foreign.cabal index 1e7b4093..56e1213a 100644 --- a/servant-foreign/servant-foreign.cabal +++ b/servant-foreign/servant-foreign.cabal @@ -1,6 +1,9 @@ +cabal-version: >=1.10 name: servant-foreign version: 0.15 + synopsis: Helpers for generating clients for servant APIs in any programming language +category: Servant, Web description: Helper types and functions for generating client functions for servant APIs in any programming language . @@ -9,23 +12,24 @@ description: See the servant-js package for an example . + +homepage: http://haskell-servant.readthedocs.org/ +bug-reports: http://github.com/haskell-servant/servant/issues license: BSD3 license-file: LICENSE author: Servant Contributors maintainer: haskell-servant-maintainers@googlegroups.com -copyright: 2015-2016 Servant Contributors -category: Servant, Web +copyright: 2015-2018 Servant Contributors build-type: Simple -cabal-version: >=1.10 +tested-with: + GHC ==8.0.2 + || ==8.2.2 + || ==8.4.4 + || ==8.6.2 + extra-source-files: CHANGELOG.md README.md -bug-reports: http://github.com/haskell-servant/servant/issues -tested-with: - GHC==8.0.2 - GHC==8.2.2 - GHC==8.4.4 - GHC==8.6.2 source-repository head type: git diff --git a/servant-foreign/tinc.yaml b/servant-foreign/tinc.yaml deleted file mode 100644 index dbf42cc7..00000000 --- a/servant-foreign/tinc.yaml +++ /dev/null @@ -1,3 +0,0 @@ -dependencies: - - name: servant - path: ../servant diff --git a/servant-machines/CHANGELOG.md b/servant-machines/CHANGELOG.md index c01545e9..bd9ef796 100644 --- a/servant-machines/CHANGELOG.md +++ b/servant-machines/CHANGELOG.md @@ -1,16 +1,4 @@ -0.10 +0.15 ---- -* `EncodeOpts` and `DecodeOpts` merged into just `EncodeOpts`. -* Add `TabSeparatedOpts` for `text/tab-separated-values`. - -0.9 ---- - -* Refactorerd `CSV`' type. - -0.8 ---- - -* Removed DefaultEncodeOpts and DefaultDecodeOpts in favor of a single - (new) DefaultOpts +- First release with support for `servant-0.15` `Stream` refactoring. diff --git a/servant-machines/servant-machines.cabal b/servant-machines/servant-machines.cabal index b86c3494..ffc7e107 100644 --- a/servant-machines/servant-machines.cabal +++ b/servant-machines/servant-machines.cabal @@ -1,23 +1,30 @@ +cabal-version: >=1.10 name: servant-machines -version: 1 +version: 0.15 + synopsis: Servant Stream support for machines +category: Servant, Web, Enumerator description: Servant Stream support for machines. + . + Provides 'ToSourceIO' and 'FromSourceIO' instances for 'MachineT'. + homepage: http://haskell-servant.readthedocs.org/ +bug-reports: http://github.com/haskell-servant/servant/issues license: BSD3 license-file: LICENSE author: Servant Contributors maintainer: haskell-servant-maintainers@googlegroups.com copyright: 2018 Servant Contributors -category: Web, Servant, Enumerator build-type: Simple -cabal-version: >=1.10 -bug-reports: http://github.com/haskell-servant/servant-machines/issues tested-with: GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.2 +extra-source-files: + CHANGELOG.md + source-repository head type: git location: http://github.com/haskell-servant/servant-machines.git diff --git a/servant-machines/src/Servant/Machines.hs b/servant-machines/src/Servant/Machines.hs index a0d75754..a0d6d8b9 100644 --- a/servant-machines/src/Servant/Machines.hs +++ b/servant-machines/src/Servant/Machines.hs @@ -5,9 +5,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} --- | TBW --- --- This module exports 'ToSourceIO' and 'FromSourceIO' instances. +-- | This module exports 'ToSourceIO' and 'FromSourceIO' for 'MachineT' instances. module Servant.Machines ( MachineToSourceIO (..), ) where diff --git a/servant-pipes/CHANGELOG.md b/servant-pipes/CHANGELOG.md index c01545e9..bd9ef796 100644 --- a/servant-pipes/CHANGELOG.md +++ b/servant-pipes/CHANGELOG.md @@ -1,16 +1,4 @@ -0.10 +0.15 ---- -* `EncodeOpts` and `DecodeOpts` merged into just `EncodeOpts`. -* Add `TabSeparatedOpts` for `text/tab-separated-values`. - -0.9 ---- - -* Refactorerd `CSV`' type. - -0.8 ---- - -* Removed DefaultEncodeOpts and DefaultDecodeOpts in favor of a single - (new) DefaultOpts +- First release with support for `servant-0.15` `Stream` refactoring. diff --git a/servant-pipes/servant-pipes.cabal b/servant-pipes/servant-pipes.cabal index 9d6f7344..622d3462 100644 --- a/servant-pipes/servant-pipes.cabal +++ b/servant-pipes/servant-pipes.cabal @@ -1,23 +1,30 @@ name: servant-pipes -version: 1 +version: 0.15 +cabal-version: >=1.10 + synopsis: Servant Stream support for pipes +category: Servant, Web, Pipes description: Servant Stream support for pipes. + . + Provides 'ToSourceIO' and 'FromSourceIO' instances for 'Proxy' and 'SafeT'. + homepage: http://haskell-servant.readthedocs.org/ +bug-reports: http://github.com/haskell-servant/servant/issues license: BSD3 license-file: LICENSE author: Servant Contributors maintainer: haskell-servant-maintainers@googlegroups.com copyright: 2018 Servant Contributors -category: Web, Servant, Pipes build-type: Simple -cabal-version: >=1.10 -bug-reports: http://github.com/haskell-servant/servant-pipes/issues tested-with: GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.2 +extra-source-files: + CHANGELOG.md + source-repository head type: git location: http://github.com/haskell-servant/servant-pipes.git diff --git a/servant-pipes/src/Servant/Pipes.hs b/servant-pipes/src/Servant/Pipes.hs index ec48c03d..52f70b25 100644 --- a/servant-pipes/src/Servant/Pipes.hs +++ b/servant-pipes/src/Servant/Pipes.hs @@ -6,9 +6,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} --- | TBW --- --- This module exports 'ToSourceIO' and 'FromSourceIO' instances. +-- | This module exports 'ToSourceIO' and 'FromSourceIO' for 'Proxy' and 'SafeT' instances. module Servant.Pipes ( PipesToSourceIO (..), ) where diff --git a/servant-server/CHANGELOG.md b/servant-server/CHANGELOG.md index a3fb8f94..f5283eb0 100644 --- a/servant-server/CHANGELOG.md +++ b/servant-server/CHANGELOG.md @@ -1,6 +1,56 @@ [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.15 +---- + +- Streaming refactoring. + [#991](https://github.com/haskell-servant/servant/pull/991) + [#1076](https://github.com/haskell-servant/servant/pull/1076) + [#1077](https://github.com/haskell-servant/servant/pull/1077) + + The streaming functionality (`Servant.API.Stream`) is refactored to use + `servant`'s own `SourceIO` type (see `Servant.Types.SourceT` documentation), + which replaces both `StreamGenerator` and `ResultStream` types. + + New conversion type-classes are `ToSourceIO` and `FromSourceIO` + (replacing `ToStreamGenerator` and `BuildFromStream`). + There are instances for *conduit*, *pipes* and *machines* in new packages: + [servant-conduit](https://hackage.haskell.org/package/servant-conduit) + [servant-pipes](https://hackage.haskell.org/package/servant-pipes) and + [servant-machines](https://hackage.haskell.org/package/servant-machines) + respectively. + + Writing new framing strategies is simpler. Check existing strategies for examples. + + This change shouldn't affect you, if you don't use streaming endpoints. + +- Drop support for GHC older than 8.0 + [#1008](https://github.com/haskell-servant/servant/pull/1008) + [#1009](https://github.com/haskell-servant/servant/pull/1009) + +- *servant* NewlineFraming encodes newline after each element (i.e last) + [#1079](https://github.com/haskell-servant/servant/pull/1079) + [#1011](https://github.com/haskell-servant/servant/issues/1011) + +- *servant* Add `lookupResponseHeader :: ... => Headers headers r -> ResponseHeader h a` + [#1064](https://github.com/haskell-servant/servant/pull/1064) + +- *servant-server* Add `MonadMask Handler` + [#1068](https://github.com/haskell-servant/servant/pull/1068) + +- *servant* Export `GetHeaders'` + [#1052](https://github.com/haskell-servant/servant/pull/1052) + +- *servant* Add `Bitraversable` and other `Bi-` instances for `:<|>` + [#1032](https://github.com/haskell-servant/servant/pull/1032) + +- *servant* Add `PutCreated` method type alias + [#1024](https://github.com/haskell-servant/servant/pull/1024) + +- *servant* Add `ToSourceIO (NonEmpty a)` instance + [#988](https://github.com/haskell-servant/servant/pull/988) + 0.14.1 ------ diff --git a/servant-server/LICENSE b/servant-server/LICENSE index 9717a9ce..c6a28c24 100644 --- a/servant-server/LICENSE +++ b/servant-server/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014-2016, Zalora South East Asia Pte Ltd, Servant Contributors +Copyright (c) 2014-2016, Zalora South East Asia Pte Ltd, 2016-2018 Servant Contributors All rights reserved. diff --git a/servant-server/servant-server.cabal b/servant-server/servant-server.cabal index c156f1bd..00a4a03e 100644 --- a/servant-server/servant-server.cabal +++ b/servant-server/servant-server.cabal @@ -1,6 +1,9 @@ +cabal-version: >=1.10 name: servant-server version: 0.15 + synopsis: A family of combinators for defining webservices APIs and serving them +category: Servant, Web description: A family of combinators for defining webservices APIs and serving them . @@ -11,21 +14,21 @@ description: a webserver that serves this API, using this package. . + homepage: http://haskell-servant.readthedocs.org/ -Bug-reports: http://github.com/haskell-servant/servant/issues +bug-reports: http://github.com/haskell-servant/servant/issues license: BSD3 license-file: LICENSE author: Servant Contributors maintainer: haskell-servant-maintainers@googlegroups.com -copyright: 2014-2016 Zalora South East Asia Pte Ltd, Servant Contributors -category: Servant, Web +copyright: 2014-2016 Zalora South East Asia Pte Ltd, 2016-2018 Servant Contributors build-type: Custom -cabal-version: >=1.10 tested-with: - GHC==8.0.2 - GHC==8.2.2 - GHC==8.4.4 - GHC==8.6.2 + GHC ==8.0.2 + || ==8.2.2 + || ==8.4.4 + || ==8.6.2 + extra-source-files: CHANGELOG.md README.md @@ -71,8 +74,9 @@ library , filepath >= 1.4.1.1 && < 1.5 -- Servant dependencies + -- strict dependency as we re-export 'servant' things. build-depends: - servant >= 0.15 && < 0.16 + servant >= 0.15 && < 0.15.1 -- 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/tinc.yaml b/servant-server/tinc.yaml deleted file mode 100644 index dbf42cc7..00000000 --- a/servant-server/tinc.yaml +++ /dev/null @@ -1,3 +0,0 @@ -dependencies: - - name: servant - path: ../servant diff --git a/servant/CHANGELOG.md b/servant/CHANGELOG.md index 338bd8dd..09320313 100644 --- a/servant/CHANGELOG.md +++ b/servant/CHANGELOG.md @@ -11,7 +11,7 @@ [#1077](https://github.com/haskell-servant/servant/pull/1077) The streaming functionality (`Servant.API.Stream`) is refactored to use - `servant` own `SourceIO` type (see `Servant.Types.SourceT` documentation), + `servant`'s own `SourceIO` type (see `Servant.Types.SourceT` documentation), which replaces both `StreamGenerator` and `ResultStream` types. New conversion type-classes are `ToSourceIO` and `FromSourceIO` @@ -58,32 +58,45 @@ This change shouldn't affect you, if you don't use streaming endpoints. +- *servant-client-core* Related to the previous: + `streamingResponse` is removed from `RunClient`. + We have a new type-class: + + ```haskell + class RunClient m => RunStreamingClient m where + withStreamingRequest :: Request -> (StreamingResponse -> IO a) -> m a + ``` + - Drop support for GHC older than 8.0 [#1008](https://github.com/haskell-servant/servant/pull/1008) [#1009](https://github.com/haskell-servant/servant/pull/1009) -- `ComprehensiveAPI` is a part of public API in `Servant.Test.ComprehensiveAPI`` module. +- *servant* `ComprehensiveAPI` is a part of public API in `Servant.Test.ComprehensiveAPI` module. This API type is used to verify that libraries implement all core combinators. Now we won't change this type between major versions. (This has been true for some time already). [#1070](https://github.com/haskell-servant/servant/pull/1070) -- Remove `Servant.Utils.Enter` module +- *servant* Remove `Servant.Utils.Enter` module (deprecated in `servant-0.12` in favour of `hoistServer`) [#996](https://github.com/haskell-servant/servant/pull/996) +- *servant-foreign* Add support so `HasForeign` can be implemented for + `MultipartForm` from [`servant-multipart`](http://hackage.haskell.org/package/servant-multipart) + [#1035](https://github.com/haskell-servant/servant/pull/1035) + ### Other changes - *servant-client-core* Add `NFData (GenResponse a)` and `NFData ServantError` instances. [#1076](https://github.com/haskell-servant/servant/pull/1076) +- *servant* NewlineFraming encodes newline after each element (i.e last) + [#1079](https://github.com/haskell-servant/servant/pull/1079) + [#1011](https://github.com/haskell-servant/servant/issues/1011) + - *servant* Add `lookupResponseHeader :: ... => Headers headers r -> ResponseHeader h a` [#1064](https://github.com/haskell-servant/servant/pull/1064) -- *servant-foreign* Add support so `HasForeign` can be implemented for - `MultipartForm` from [`servant-multipart`](http://hackage.haskell.org/package/servant-multipart) - [#1035](https://github.com/haskell-servant/servant/pull/1035) - - *servant-server* Add `MonadMask Handler` [#1068](https://github.com/haskell-servant/servant/pull/1068) @@ -102,7 +115,7 @@ - *servant-client-core* Add `aeson` and `Lift BaseUrl` instances [#1037](https://github.com/haskell-servant/servant/pull/1037) -- Add `ToSourceIO (NonEmpty a)` instance +- *servant* Add `ToSourceIO (NonEmpty a)` instance [#988](https://github.com/haskell-servant/servant/pull/988) - Development process improvements diff --git a/servant/LICENSE b/servant/LICENSE index 9717a9ce..c6a28c24 100644 --- a/servant/LICENSE +++ b/servant/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014-2016, Zalora South East Asia Pte Ltd, Servant Contributors +Copyright (c) 2014-2016, Zalora South East Asia Pte Ltd, 2016-2018 Servant Contributors All rights reserved. diff --git a/servant/servant.cabal b/servant/servant.cabal index 7ad0ff40..d6e21c87 100644 --- a/servant/servant.cabal +++ b/servant/servant.cabal @@ -21,10 +21,10 @@ copyright: 2014-2016 Zalora South East Asia Pte Ltd, 2016-2018 Servant build-type: Custom tested-with: - GHC==8.0.2 - GHC==8.2.2 - GHC==8.4.4 - GHC==8.6.2 + GHC ==8.0.2 + || ==8.2.2 + || ==8.4.4 + || ==8.6.2 extra-source-files: CHANGELOG.md