git.iko.soy/typeable/servant
on master help sign in
Prepare 0.19 release
e494574Gaël Deest
cabal.project+3
@@ -71,6 +71,9 @@ allow-newer: servant-pagination-2.2.2:servant
71allow-newer: servant-pagination-2.2.2:servant-server
71allow-newer: servant-pagination-2.2.2:servant-server
72
72
73allow-newer: servant-js:servant
73allow-newer: servant-js:servant
74+allow-newer: servant-multipart:servant
75+allow-newer: servant-multipart:servant-server
76+allow-newer: servant-multipart-api:servant
74
77
75-- ghc 9
78-- ghc 9
76allow-newer: tdigest:base
79allow-newer: tdigest:base
servant-auth/servant-auth-client/servant-auth-client.cabal+3−3
@@ -35,8 +35,8 @@ library
35 , bytestring >= 0.10.6.0 && < 0.11
35 , bytestring >= 0.10.6.0 && < 0.11
36 , containers >= 0.5.6.2 && < 0.7
36 , containers >= 0.5.6.2 && < 0.7
37 , servant-auth == 0.4.*
37 , servant-auth == 0.4.*
38− , servant >= 0.13 && < 0.19
38+ , servant >= 0.13 && < 0.20
39− , servant-client-core >= 0.13 && < 0.19
39+ , servant-client-core >= 0.13 && < 0.20
40
40
41 exposed-modules:
41 exposed-modules:
42 Servant.Auth.Client
42 Servant.Auth.Client
@@ -69,7 +69,7 @@ test-suite spec
69 , http-client >= 0.5.13.1 && < 0.8
69 , http-client >= 0.5.13.1 && < 0.8
70 , http-types >= 0.12.2 && < 0.13
70 , http-types >= 0.12.2 && < 0.13
71 , servant-auth-server >= 0.4.2.0 && < 0.5
71 , servant-auth-server >= 0.4.2.0 && < 0.5
72− , servant-server >= 0.13 && < 0.19
72+ , servant-server >= 0.13 && < 0.20
73 , time >= 1.5.0.1 && < 1.13
73 , time >= 1.5.0.1 && < 1.13
74 , transformers >= 0.4.2.0 && < 0.6
74 , transformers >= 0.4.2.0 && < 0.6
75 , wai >= 3.2.1.2 && < 3.3
75 , wai >= 3.2.1.2 && < 3.3
servant-auth/servant-auth-docs/servant-auth-docs.cabal+1−1
@@ -37,7 +37,7 @@ library
37 build-depends:
37 build-depends:
38 base >= 4.10 && < 4.16
38 base >= 4.10 && < 4.16
39 , servant-docs >= 0.11.2 && < 0.12
39 , servant-docs >= 0.11.2 && < 0.12
40− , servant >= 0.13 && < 0.19
40+ , servant >= 0.13 && < 0.20
41 , servant-auth == 0.4.*
41 , servant-auth == 0.4.*
42 , lens >= 4.16.1 && <5.1
42 , lens >= 4.16.1 && <5.1
43 exposed-modules:
43 exposed-modules:
servant-auth/servant-auth-server/servant-auth-server.cabal+2−2
@@ -46,9 +46,9 @@ library
46 , memory >= 0.14.16 && < 0.17
46 , memory >= 0.14.16 && < 0.17
47 , monad-time >= 0.3.1.0 && < 0.4
47 , monad-time >= 0.3.1.0 && < 0.4
48 , mtl >= 2.2.2 && < 2.3
48 , mtl >= 2.2.2 && < 2.3
49− , servant >= 0.13 && < 0.19
49+ , servant >= 0.13 && < 0.20
50 , servant-auth == 0.4.*
50 , servant-auth == 0.4.*
51− , servant-server >= 0.13 && < 0.19
51+ , servant-server >= 0.13 && < 0.20
52 , tagged >= 0.8.4 && < 0.9
52 , tagged >= 0.8.4 && < 0.9
53 , text >= 1.2.3.0 && < 1.3
53 , text >= 1.2.3.0 && < 1.3
54 , time >= 1.5.0.1 && < 1.10
54 , time >= 1.5.0.1 && < 1.10
servant-auth/servant-auth-swagger/servant-auth-swagger.cabal+1−1
@@ -35,7 +35,7 @@ library
35 , text >= 1.2.3.0 && < 1.3
35 , text >= 1.2.3.0 && < 1.3
36 , servant-swagger >= 1.1.5 && < 2
36 , servant-swagger >= 1.1.5 && < 2
37 , swagger2 >= 2.2.2 && < 3
37 , swagger2 >= 2.2.2 && < 3
38− , servant >= 0.13 && < 0.19
38+ , servant >= 0.13 && < 0.20
39 , servant-auth == 0.4.*
39 , servant-auth == 0.4.*
40 , lens >= 4.16.1 && < 5.1
40 , lens >= 4.16.1 && < 5.1
41 if impl(ghc >= 9)
41 if impl(ghc >= 9)
servant-auth/servant-auth/servant-auth.cabal+1−1
@@ -38,7 +38,7 @@ library
38 , aeson >= 1.3.1.1 && < 3
38 , aeson >= 1.3.1.1 && < 3
39 , jose >= 0.7.0.0 && < 0.10
39 , jose >= 0.7.0.0 && < 0.10
40 , lens >= 4.16.1 && < 5.1
40 , lens >= 4.16.1 && < 5.1
41− , servant >= 0.15 && < 0.19
41+ , servant >= 0.15 && < 0.20
42 , text >= 1.2.3.0 && < 1.3
42 , text >= 1.2.3.0 && < 1.3
43 , unordered-containers >= 0.2.9.0 && < 0.3
43 , unordered-containers >= 0.2.9.0 && < 0.3
44 exposed-modules:
44 exposed-modules:
servant-client-core/CHANGELOG.md+29
@@ -1,6 +1,35 @@
1[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-client-core/CHANGELOG.md)
1[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-client-core/CHANGELOG.md)
2[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
2[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
3
3
4+Package versions follow the [Package Versioning Policy](https://pvp.haskell.org/): in A.B.C, bumps to either A or B represent major versions.
5+
6+0.19
7+----
8+
9+### Significant changes
10+
11+- Drop support for GHC < 8.6.
12+- Support GHC 9.0 (GHC 9.2 should work as well, but isn't fully tested yet).
13+- Support Aeson 2 ([#1475](https://github.com/haskell-servant/servant/pull/1475)).
14+- Add `NamedRoutes` combinator, making support for records first-class in Servant
15+ ([#1388](https://github.com/haskell-servant/servant/pull/1388)).
16+- Add custom type errors for partially applied combinators
17+ ([#1289](https://github.com/haskell-servant/servant/pull/1289),
18+ [#1486](https://github.com/haskell-servant/servant/pull/1486)).
19+- *servant-client* / *servant-client*: Fix erroneous behavior, where only 2XX
20+ status codes would be considered successful, irrelevant of the status
21+ parameter specified by the verb combinator.
22+ ([#1469](https://github.com/haskell-servant/servant/pull/1469))
23+- *servant-client* / *servant-client-core*: Fix `Show` instance for
24+ `Servant.Client.Core.Request`.
25+- *servant-client* / *servant-client-core*: Allow passing arbitrary binary data
26+ in Query parameters.
27+ ([#1432](https://github.com/haskell-servant/servant/pull/1432)).
28+
29+### Other changes
30+
31+- Various version bumps.
32+
40.18.3
330.18.3
5------
34------
6
35
servant-client-core/servant-client-core.cabal+2−2
@@ -1,6 +1,6 @@
1cabal-version: 2.2
1cabal-version: 2.2
2name: servant-client-core
2name: servant-client-core
3−version: 0.18.3
3+version: 0.19
4
4
5synopsis: Core functionality and class for client function generation for servant APIs
5synopsis: Core functionality and class for client function generation for servant APIs
6category: Servant, Web
6category: Servant, Web
@@ -65,7 +65,7 @@ library
65
65
66 -- Servant dependencies
66 -- Servant dependencies
67 build-depends:
67 build-depends:
68− servant >= 0.18.3 && <0.19
68+ servant >= 0.19
69
69
70 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
70 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
71 -- Here can be exceptions if we really need features from the newer versions.
71 -- Here can be exceptions if we really need features from the newer versions.
servant-client-ghcjs/servant-client-ghcjs.cabal+2−2
@@ -56,8 +56,8 @@ library
56
56
57 -- strict, as we re-export stuff
57 -- strict, as we re-export stuff
58 build-depends:
58 build-depends:
59− servant >=0.16 && <0.17
59+ servant >=0.16 && <0.20
60− , servant-client-core >=0.16 && <0.16.1
60+ , servant-client-core >=0.16 && <0.20
61
61
62 hs-source-dirs: src
62 hs-source-dirs: src
63 default-language: Haskell2010
63 default-language: Haskell2010
servant-client/CHANGELOG.md+29
@@ -1,6 +1,35 @@
1[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-client/CHANGELOG.md)
1[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-client/CHANGELOG.md)
2[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
2[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
3
3
4+Package versions follow the [Package Versioning Policy](https://pvp.haskell.org/): in A.B.C, bumps to either A or B represent major versions.
5+
6+0.19
7+----
8+
9+### Significant changes
10+
11+- Drop support for GHC < 8.6.
12+- Support GHC 9.0 (GHC 9.2 should work as well, but isn't fully tested yet).
13+- Support Aeson 2 ([#1475](https://github.com/haskell-servant/servant/pull/1475)).
14+- Add `NamedRoutes` combinator, making support for records first-class in Servant
15+ ([#1388](https://github.com/haskell-servant/servant/pull/1388)).
16+- Add custom type errors for partially applied combinators
17+ ([#1289](https://github.com/haskell-servant/servant/pull/1289),
18+ [#1486](https://github.com/haskell-servant/servant/pull/1486)).
19+- *servant-client* / *servant-client*: Fix erroneous behavior, where only 2XX
20+ status codes would be considered successful, irrelevant of the status
21+ parameter specified by the verb combinator.
22+ ([#1469](https://github.com/haskell-servant/servant/pull/1469))
23+- *servant-client* / *servant-client-core*: Fix `Show` instance for
24+ `Servant.Client.Core.Request`.
25+- *servant-client* / *servant-client-core*: Allow passing arbitrary binary data
26+ in Query parameters.
27+ ([#1432](https://github.com/haskell-servant/servant/pull/1432)).
28+
29+### Other changes
30+
31+- Various version bumps.
32+
40.18.3
330.18.3
5------
34------
6
35
servant-client/servant-client.cabal+5−5
@@ -1,6 +1,6 @@
1cabal-version: 2.2
1cabal-version: 2.2
2name: servant-client
2name: servant-client
3−version: 0.18.3
3+version: 0.19
4
4
5synopsis: Automatic derivation of querying functions for servant
5synopsis: Automatic derivation of querying functions for servant
6category: Servant, Web
6category: Servant, Web
@@ -58,8 +58,8 @@ library
58 -- Servant dependencies.
58 -- Servant dependencies.
59 -- Strict dependency on `servant-client-core` as we re-export things.
59 -- Strict dependency on `servant-client-core` as we re-export things.
60 build-depends:
60 build-depends:
61− servant == 0.18.*
61+ servant >= 0.18 && < 0.20
62− , servant-client-core >= 0.18.3 && <0.18.4
62+ , servant-client-core >= 0.19 && < 0.19.1
63
63
64 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
64 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
65 -- Here can be exceptions if we really need features from the newer versions.
65 -- Here can be exceptions if we really need features from the newer versions.
@@ -128,8 +128,8 @@ test-suite spec
128 , HUnit >= 1.6.0.0 && < 1.7
128 , HUnit >= 1.6.0.0 && < 1.7
129 , network >= 2.8.0.0 && < 3.2
129 , network >= 2.8.0.0 && < 3.2
130 , QuickCheck >= 2.12.6.1 && < 2.15
130 , QuickCheck >= 2.12.6.1 && < 2.15
131− , servant == 0.18.*
131+ , servant == 0.19.*
132− , servant-server == 0.18.*
132+ , servant-server == 0.19.*
133 , tdigest >= 0.2 && < 0.3
133 , tdigest >= 0.2 && < 0.3
134
134
135 build-tool-depends:
135 build-tool-depends:
servant-conduit/servant-conduit.cabal+3−3
@@ -33,7 +33,7 @@ library
33 , conduit >=1.3.1 && <1.4
33 , conduit >=1.3.1 && <1.4
34 , mtl >=2.2.2 && <2.3
34 , mtl >=2.2.2 && <2.3
35 , resourcet >=1.2.2 && <1.3
35 , resourcet >=1.2.2 && <1.3
36− , servant >=0.15 && <0.19
36+ , servant >=0.15 && <0.20
37 , unliftio-core >=0.1.2.0 && <0.3
37 , unliftio-core >=0.1.2.0 && <0.3
38 hs-source-dirs: src
38 hs-source-dirs: src
39 default-language: Haskell2010
39 default-language: Haskell2010
@@ -54,8 +54,8 @@ test-suite example
54 , resourcet
54 , resourcet
55 , servant
55 , servant
56 , servant-conduit
56 , servant-conduit
57− , servant-server >=0.15 && <0.19
57+ , servant-server >=0.15 && <0.20
58− , servant-client >=0.15 && <0.19
58+ , servant-client >=0.15 && <0.20
59 , wai >=3.2.1.2 && <3.3
59 , wai >=3.2.1.2 && <3.3
60 , warp >=3.2.25 && <3.4
60 , warp >=3.2.25 && <3.4
61 , http-client
61 , http-client
servant-docs/servant-docs.cabal+1−1
@@ -47,7 +47,7 @@ library
47
47
48 -- Servant dependencies
48 -- Servant dependencies
49 build-depends:
49 build-depends:
50− servant >= 0.18 && <0.19
50+ servant >= 0.18 && <0.20
51
51
52 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
52 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
53 -- Here can be exceptions if we really need features from the newer versions.
53 -- Here can be exceptions if we really need features from the newer versions.
servant-foreign/servant-foreign.cabal+1−1
@@ -46,7 +46,7 @@ library
46
46
47 -- Servant dependencies
47 -- Servant dependencies
48 build-depends:
48 build-depends:
49− servant >=0.18 && <0.19
49+ servant >=0.18 && <0.20
50
50
51 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
51 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
52 -- Here can be exceptions if we really need features from the newer versions.
52 -- Here can be exceptions if we really need features from the newer versions.
servant-http-streams/servant-http-streams.cabal+4−4
@@ -54,8 +54,8 @@ library
54 -- Servant dependencies.
54 -- Servant dependencies.
55 -- Strict dependency on `servant-client-core` as we re-export things.
55 -- Strict dependency on `servant-client-core` as we re-export things.
56 build-depends:
56 build-depends:
57− servant == 0.18.*
57+ servant >= 0.18 && < 0.20
58− , servant-client-core >= 0.18.3 && <0.18.4
58+ , servant-client-core >= 0.18.3 && <0.20
59
59
60 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
60 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
61 -- Here can be exceptions if we really need features from the newer versions.
61 -- Here can be exceptions if we really need features from the newer versions.
@@ -116,8 +116,8 @@ test-suite spec
116 , HUnit >= 1.6.0.0 && < 1.7
116 , HUnit >= 1.6.0.0 && < 1.7
117 , network >= 2.8.0.0 && < 3.2
117 , network >= 2.8.0.0 && < 3.2
118 , QuickCheck >= 2.12.6.1 && < 2.15
118 , QuickCheck >= 2.12.6.1 && < 2.15
119− , servant == 0.18.*
119+ , servant == 0.19.*
120− , servant-server == 0.18.*
120+ , servant-server == 0.19.*
121 , tdigest >= 0.2 && < 0.3
121 , tdigest >= 0.2 && < 0.3
122
122
123 build-tool-depends:
123 build-tool-depends:
servant-machines/servant-machines.cabal+3−3
@@ -32,7 +32,7 @@ library
32 , bytestring >=0.10.8.1 && <0.12
32 , bytestring >=0.10.8.1 && <0.12
33 , machines >=0.6.4 && <0.8
33 , machines >=0.6.4 && <0.8
34 , mtl >=2.2.2 && <2.3
34 , mtl >=2.2.2 && <2.3
35− , servant >=0.15 && <0.19
35+ , servant >=0.15 && <0.20
36 hs-source-dirs: src
36 hs-source-dirs: src
37 default-language: Haskell2010
37 default-language: Haskell2010
38 ghc-options: -Wall
38 ghc-options: -Wall
@@ -51,8 +51,8 @@ test-suite example
51 , servant
51 , servant
52 , machines
52 , machines
53 , servant-machines
53 , servant-machines
54− , servant-server >=0.15 && <0.19
54+ , servant-server >=0.15 && <0.20
55− , servant-client >=0.15 && <0.19
55+ , servant-client >=0.15 && <0.20
56 , wai >=3.2.1.2 && <3.3
56 , wai >=3.2.1.2 && <3.3
57 , warp >=3.2.25 && <3.4
57 , warp >=3.2.25 && <3.4
58 , http-client
58 , http-client
servant-pipes/servant-pipes.cabal+3−3
@@ -34,7 +34,7 @@ library
34 , pipes-safe >=2.3.1 && <2.4
34 , pipes-safe >=2.3.1 && <2.4
35 , mtl >=2.2.2 && <2.3
35 , mtl >=2.2.2 && <2.3
36 , monad-control >=1.0.2.3 && <1.1
36 , monad-control >=1.0.2.3 && <1.1
37− , servant >=0.15 && <0.19
37+ , servant >=0.15 && <0.20
38 hs-source-dirs: src
38 hs-source-dirs: src
39 default-language: Haskell2010
39 default-language: Haskell2010
40 ghc-options: -Wall
40 ghc-options: -Wall
@@ -55,8 +55,8 @@ test-suite example
55 , pipes-safe
55 , pipes-safe
56 , servant-pipes
56 , servant-pipes
57 , pipes-bytestring >=2.1.6 && <2.2
57 , pipes-bytestring >=2.1.6 && <2.2
58− , servant-server >=0.15 && <0.19
58+ , servant-server >=0.15 && <0.20
59− , servant-client >=0.15 && <0.19
59+ , servant-client >=0.15 && <0.20
60 , wai >=3.2.1.2 && <3.3
60 , wai >=3.2.1.2 && <3.3
61 , warp >=3.2.25 && <3.4
61 , warp >=3.2.25 && <3.4
62 , http-client
62 , http-client
servant-server/CHANGELOG.md+16
@@ -1,6 +1,22 @@
1[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-server/CHANGELOG.md)
1[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-server/CHANGELOG.md)
2[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
2[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
3
3
4+Package versions follow the [Package Versioning Policy](https://pvp.haskell.org/): in A.B.C, bumps to either A or B represent major versions.
5+
6+0.19
7+----
8+
9+### Significant changes
10+
11+- Drop support for GHC < 8.6.
12+- Support GHC 9.0 (GHC 9.2 should work as well, but isn't fully tested yet).
13+- Support Aeson 2 ([#1475](https://github.com/haskell-servant/servant/pull/1475)).
14+- Add `NamedRoutes` combinator, making support for records first-class in Servant
15+ ([#1388](https://github.com/haskell-servant/servant/pull/1388)).
16+- Add custom type errors for partially applied combinators
17+ ([#1289](https://github.com/haskell-servant/servant/pull/1289),
18+ [#1486](https://github.com/haskell-servant/servant/pull/1486)).
19+
40.18.3
200.18.3
5------
21------
6
22
servant-server/servant-server.cabal+2−2
@@ -1,6 +1,6 @@
1cabal-version: 2.2
1cabal-version: 2.2
2name: servant-server
2name: servant-server
3−version: 0.18.3
3+version: 0.19
4
4
5synopsis: A family of combinators for defining webservices APIs and serving them
5synopsis: A family of combinators for defining webservices APIs and serving them
6category: Servant, Web
6category: Servant, Web
@@ -72,7 +72,7 @@ library
72 -- Servant dependencies
72 -- Servant dependencies
73 -- strict dependency as we re-export 'servant' things.
73 -- strict dependency as we re-export 'servant' things.
74 build-depends:
74 build-depends:
75− servant >= 0.18.3 && < 0.18.4
75+ servant >= 0.19
76 , http-api-data >= 0.4.1 && < 0.4.4
76 , http-api-data >= 0.4.1 && < 0.4.4
77
77
78 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
78 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
servant-swagger/servant-swagger.cabal+1−1
@@ -77,7 +77,7 @@ library
77 , http-media >=0.7.1.3 && <0.9
77 , http-media >=0.7.1.3 && <0.9
78 , insert-ordered-containers >=0.2.1.0 && <0.3
78 , insert-ordered-containers >=0.2.1.0 && <0.3
79 , lens >=4.17 && <6
79 , lens >=4.17 && <6
80− , servant >=0.18.1 && <0.19
80+ , servant >=0.18.1 && <0.20
81 , singleton-bool >=0.1.4 && <0.2
81 , singleton-bool >=0.1.4 && <0.2
82 , swagger2 >=2.3.0.1 && <3
82 , swagger2 >=2.3.0.1 && <3
83 , text >=1.2.3.0 && <1.3
83 , text >=1.2.3.0 && <1.3
servant/CHANGELOG.md+109
@@ -1,5 +1,114 @@
1[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
1[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
2
2
3+Package versions follow the [Package Versioning Policy](https://pvp.haskell.org/): in A.B.C, bumps to either A or B represent major versions.
4+
5+0.19
6+----
7+
8+### Significant changes
9+
10+- Drop support for GHC < 8.6.
11+- Support GHC 9.0 (GHC 9.2 should work as well, but isn't fully tested yet).
12+- Support Aeson 2 ([#1475](https://github.com/haskell-servant/servant/pull/1475)).
13+- Add `NamedRoutes` combinator, making support for records first-class in Servant
14+ ([#1388](https://github.com/haskell-servant/servant/pull/1388)).
15+
16+ Users can now directly mark part as an API as defined by a record, instead of
17+ using `(:<|>)` to combine routes. Concretely, the anonymous:
18+
19+ ```haskell
20+ type API =
21+ "version" :> Get '[JSON] String :<|>
22+ "products" :> Get '[JSON] [Product]
23+ ```
24+
25+ can be replaced with the explicitly-named:
26+
27+ ```haskell
28+ type API = NamedRoutes NamedAPI
29+ data NamedAPI mode = NamedAPI
30+ { version :: mode :- "version" :> Get '[JSON] String
31+ , products :: mode :- "products" :> Get '[JSON] [Product]
32+ }
33+ ```
34+
35+ `NamedRoutes` builds upon `servant-generic`, but improves usability by freeing
36+ users from the need to perform `toServant` / `fromServant` conversions
37+ manually. Serving `NamedRoutes NamedAPI` is now done directly by providing a
38+ record of handlers, and servant generates clients directly as records as well.
39+ In particular, it makes it much more practical to work with nested hierarchies
40+ of named routes.
41+
42+ Two convenience functions, `(//)` and `(/:)`, have been added to make the
43+ usage of named route hierarchies more pleasant:
44+
45+ ```haskell
46+ rootClient :: RootApi (AsClientT ClientM)
47+ rootClient = client (Proxy @API)
48+
49+ hello :: String -> ClientM String
50+ hello name = rootClient // hello /: name
51+
52+ endpointClient :: ClientM Person
53+ endpointClient = client // subApi /: "foobar123" // endpoint
54+
55+ type Api = NamedRoutes RootApi
56+
57+ data RootApi mode = RootApi
58+ { subApi :: mode :- Capture "token" String :> NamedRoutes SubApi
59+ , hello :: mode :- Capture "name" String :> Get '[JSON] String
60+ , …
61+ } deriving Generic
62+
63+ data SubApi mode = SubApi
64+ { endpoint :: mode :- Get '[JSON] Person
65+ , …
66+ } deriving Generic
67+ ```
68+
69+- Add custom type errors for partially applied combinators
70+ ([#1289](https://github.com/haskell-servant/servant/pull/1289),
71+ [#1486](https://github.com/haskell-servant/servant/pull/1486)).
72+
73+ For example, forgetting to document the expected type for a query parameter,
74+ as in:
75+
76+ ``` haskell
77+ type API = QueryParam "param" :> Get '[JSON] NoContent
78+ ```
79+
80+ will raise to the following error when trying to serve the API:
81+
82+ ```
83+ • There is no instance for HasServer (QueryParam'
84+ '[Optional, Strict] "param" :> ...)
85+ QueryParam' '[Optional, Strict] "1" expects 1 more arguments
86+ ```
87+
88+ As a consequence of this change, unsaturated types are now forbidden before `(:>)`.
89+
90+- Add a `HeadNoContent` verb ([#1502](https://github.com/haskell-servant/servant/pull/1502)).
91+
92+- *servant-client* / *servant-client*: Fix erroneous behavior, where only 2XX
93+ status codes would be considered successful, irrelevant of the status
94+ parameter specified by the verb combinator.
95+ ([#1469](https://github.com/haskell-servant/servant/pull/1469))
96+
97+- *servant-client* / *servant-client-core*: Fix `Show` instance for
98+ `Servant.Client.Core.Request`.
99+
100+
101+- *servant-client* / *servant-client-core*: Allow passing arbitrary binary data
102+ in Query parameters.
103+ ([#1432](https://github.com/haskell-servant/servant/pull/1432)).
104+
105+### Other changes
106+
107+- Various bit rotten cookbooks have been updated and re-introduced on
108+ `haskell-servant.github.io`.
109+
110+- Various version bumps.
111+
30.18.3
1120.18.3
4------
113------
5
114
servant/servant.cabal+1−1
@@ -1,6 +1,6 @@
1cabal-version: 2.2
1cabal-version: 2.2
2name: servant
2name: servant
3−version: 0.18.3
3+version: 0.19
4
4
5synopsis: A family of combinators for defining webservices APIs
5synopsis: A family of combinators for defining webservices APIs
6category: Servant, Web
6category: Servant, Web