Skip to content

Commit

Permalink
Changelog and cabal file edits
Browse files Browse the repository at this point in the history
- Add haskell-servant#1079, haskell-servant#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)
  • Loading branch information
phadej committed Nov 13, 2018
1 parent c62721e commit a1a9955
Show file tree
Hide file tree
Showing 35 changed files with 361 additions and 169 deletions.
13 changes: 0 additions & 13 deletions doc/tutorial/tinc.yaml

This file was deleted.

75 changes: 75 additions & 0 deletions servant-client-core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
------

Expand Down
2 changes: 1 addition & 1 deletion servant-client-core/LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2017, Servant Contributors
Copyright (c) 2017-2018, Servant Contributors

All rights reserved.

Expand Down
23 changes: 13 additions & 10 deletions servant-client-core/servant-client-core.cabal
Original file line number Diff line number Diff line change
@@ -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: [email protected]
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
Expand Down
2 changes: 1 addition & 1 deletion servant-client-ghcjs/LICENSE
Original file line number Diff line number Diff line change
@@ -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.

Expand Down
19 changes: 12 additions & 7 deletions servant-client-ghcjs/servant-client-ghcjs.cabal
Original file line number Diff line number Diff line change
@@ -1,27 +1,32 @@
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 <http://hackage.haskell.org/package/servant servant> webservice.
.
See <http://haskell-servant.readthedocs.org/en/stable/tutorial/Client.html the client section of the tutorial>.
.
<https://github.com/haskell-servant/servant/blob/master/servant-client/CHANGELOG.md CHANGELOG>

homepage: http://haskell-servant.readthedocs.org/
bug-reports: http://github.com/haskell-servant/servant/issues
license: BSD3
license-file: LICENSE
author: Servant Contributors
maintainer: [email protected]
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
Expand Down
5 changes: 0 additions & 5 deletions servant-client-ghcjs/tinc.yaml

This file was deleted.

66 changes: 66 additions & 0 deletions servant-client/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
----

Expand Down
2 changes: 1 addition & 1 deletion servant-client/LICENSE
Original file line number Diff line number Diff line change
@@ -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.

Expand Down
26 changes: 15 additions & 11 deletions servant-client/servant-client.cabal
Original file line number Diff line number Diff line change
@@ -1,31 +1,35 @@
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 <http://hackage.haskell.org/package/servant servant> webservice.
.
See <http://haskell-servant.readthedocs.org/en/stable/tutorial/Client.html the client section of the tutorial>.
.
<https://github.com/haskell-servant/servant/blob/master/servant-client/CHANGELOG.md CHANGELOG>

homepage: http://haskell-servant.readthedocs.org/
bug-reports: http://github.com/haskell-servant/servant/issues
license: BSD3
license-file: LICENSE
author: Servant Contributors
maintainer: [email protected]
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
Expand Down Expand Up @@ -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.
Expand Down
5 changes: 0 additions & 5 deletions servant-client/tinc.yaml

This file was deleted.

16 changes: 2 additions & 14 deletions servant-conduit/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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.
15 changes: 11 additions & 4 deletions servant-conduit/servant-conduit.cabal
Original file line number Diff line number Diff line change
@@ -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: [email protected]
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
Expand Down
4 changes: 1 addition & 3 deletions servant-conduit/src/Servant/Conduit.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading

0 comments on commit a1a9955

Please sign in to comment.