summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphadej <>2020-01-23 12:16:00 (GMT)
committerhdiff <hdiff@hdiff.luite.com>2020-01-23 12:16:00 (GMT)
commit58ca562482fa3832189bc423b43c4d2d2675531b (patch)
tree0f835d9a9b0bbe45d9b003ad1f816323eb2a7c32
parent12a3359fa167c5865175cca06af9fb1fdd6f692e (diff)
version 0.170.17
-rwxr-xr-xCHANGELOG.md41
-rw-r--r--servant-http-streams.cabal12
-rw-r--r--test/Servant/ClientSpec.hs4
3 files changed, 49 insertions, 8 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 19b1f6b..9861953 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,47 @@
[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.17
+----
+
+### Significant changes
+
+- Add NoContentVerb [#1028](https://github.com/haskell-servant/servant/issues/1028) [#1219](https://github.com/haskell-servant/servant/pull/1219) [#1228](https://github.com/haskell-servant/servant/pull/1228)
+
+ The `NoContent` API endpoints should now use `NoContentVerb` combinator.
+ The API type changes are usually of the kind
+
+ ```diff
+ - :<|> PostNoContent '[JSON] NoContent
+ + :<|> PostNoContent
+ ```
+
+ i.e. one doesn't need to specify the content-type anymore. There is no content.
+
+- `Capture` can be `Lenient` [#1155](https://github.com/haskell-servant/servant/issues/1155) [#1156](https://github.com/haskell-servant/servant/pull/1156)
+
+ You can specify a lenient capture as
+
+ ```haskell
+ :<|> "capture-lenient" :> Capture' '[Lenient] "foo" Int :> GET
+ ```
+
+ which will make the capture always succeed. Handlers will be of the
+ type `Either String CapturedType`, where `Left err` represents
+ the possible parse failure.
+
+### Other changes
+
+- *servant-client* *servant-client-core* *servant-http-streams* Fix Verb with headers checking content type differently [#1200](https://github.com/haskell-servant/servant/issues/1200) [#1204](https://github.com/haskell-servant/servant/pull/1204)
+
+ For `Verb`s with response `Headers`, the implementation didn't check
+ for the content-type of the response. Now it does.
+
+- *servant-client* *servant-http-streams* `HasClient` instance for `Stream` with `Headers` [#1170](https://github.com/haskell-servant/servant/issues/1170) [#1197](https://github.com/haskell-servant/servant/pull/1197)
+- *servant-client* Redact the authorization header in Show and exceptions [#1238](https://github.com/haskell-servant/servant/pull/1238)
+
+
+
0.16.0.1
--------
diff --git a/servant-http-streams.cabal b/servant-http-streams.cabal
index 2d69d2d..3a9ee9c 100644
--- a/servant-http-streams.cabal
+++ b/servant-http-streams.cabal
@@ -1,6 +1,6 @@
cabal-version: >=1.10
name: servant-http-streams
-version: 0.16.0.1
+version: 0.17
synopsis: Automatic derivation of querying functions for servant
category: Servant, Web
@@ -25,7 +25,7 @@ tested-with:
|| ==8.2.2
|| ==8.4.4
|| ==8.6.5
- || ==8.8.1
+ || ==8.8.2
extra-source-files:
CHANGELOG.md
@@ -59,8 +59,8 @@ library
-- Servant dependencies.
-- Strict dependency on `servant-client-core` as we re-export things.
build-depends:
- servant == 0.16.*
- , servant-client-core >= 0.16 && <0.16.1
+ servant == 0.17.*
+ , servant-client-core >= 0.17 && <0.17.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.
@@ -121,8 +121,8 @@ test-suite spec
, HUnit >= 1.6.0.0 && < 1.7
, network >= 2.8.0.0 && < 3.2
, QuickCheck >= 2.12.6.1 && < 2.14
- , servant == 0.16.*
- , servant-server == 0.16.*
+ , servant == 0.17.*
+ , servant-server == 0.17.*
, tdigest >= 0.2 && < 0.3
build-tool-depends:
diff --git a/test/Servant/ClientSpec.hs b/test/Servant/ClientSpec.hs
index 59197de..aa0e0fb 100644
--- a/test/Servant/ClientSpec.hs
+++ b/test/Servant/ClientSpec.hs
@@ -115,7 +115,7 @@ type TestHeaders = '[Header "X-Example1" Int, Header "X-Example2" String]
type Api =
Get '[JSON] Person
:<|> "get" :> Get '[JSON] Person
- :<|> "deleteEmpty" :> DeleteNoContent '[JSON] NoContent
+ :<|> "deleteEmpty" :> DeleteNoContent
:<|> "capture" :> Capture "name" String :> Get '[JSON,FormUrlEncoded] Person
:<|> "captureAll" :> CaptureAll "names" String :> Get '[JSON] [Person]
:<|> "body" :> ReqBody '[FormUrlEncoded,JSON] Person :> Post '[JSON] Person
@@ -131,7 +131,7 @@ type Api =
ReqBody '[JSON] [(String, [Rational])] :>
Get '[JSON] (String, Maybe Int, Bool, [(String, [Rational])])
:<|> "headers" :> Get '[JSON] (Headers TestHeaders Bool)
- :<|> "deleteContentType" :> DeleteNoContent '[JSON] NoContent
+ :<|> "deleteContentType" :> DeleteNoContent
:<|> "redirectWithCookie" :> Raw
:<|> "empty" :> EmptyAPI