git.iko.soy/typeable/servant
on master help sign in
Prepare 0.19 release
commite4945740aa4f82853663bd90ce2d943a9c47c28e authorGaël Deest <gael.deest@tweag.io> dateMon 31 Jan 2022, 15:13 (5 years ago) parent75db4a5
22 files changed+222−36
cabal.project+3 servant-auth/servant-auth-client/servant-auth-client.cabal+3−3 servant-auth/servant-auth-docs/servant-auth-docs.cabal+1−1 servant-auth/servant-auth-server/servant-auth-server.cabal+2−2 servant-auth/servant-auth-swagger/servant-auth-swagger.cabal+1−1 servant-auth/servant-auth/servant-auth.cabal+1−1 servant-client-core/CHANGELOG.md+29 servant-client-core/servant-client-core.cabal+2−2 servant-client-ghcjs/servant-client-ghcjs.cabal+2−2 servant-client/CHANGELOG.md+29 servant-client/servant-client.cabal+5−5 servant-conduit/servant-conduit.cabal+3−3 servant-docs/servant-docs.cabal+1−1 servant-foreign/servant-foreign.cabal+1−1 servant-http-streams/servant-http-streams.cabal+4−4 servant-machines/servant-machines.cabal+3−3 servant-pipes/servant-pipes.cabal+3−3 servant-server/CHANGELOG.md+16 servant-server/servant-server.cabal+2−2 servant-swagger/servant-swagger.cabal+1−1 servant/CHANGELOG.md+109 servant/servant.cabal+1−1
cabal.project+3
@@ -71,6 +71,9 @@ allow-newer: servant-pagination-2.2.2:servant
7171allow-newer: servant-pagination-2.2.2:servant-server
7272
7373allow-newer: servant-js:servant
74+allow-newer: servant-multipart:servant
75+allow-newer: servant-multipart:servant-server
76+allow-newer: servant-multipart-api:servant
7477
7578-- ghc 9
7679allow-newer: tdigest:base
servant-auth/servant-auth-client/servant-auth-client.cabal+3−3
@@ -35,8 +35,8 @@ library
3535 , bytestring >= 0.10.6.0 && < 0.11
3636 , containers >= 0.5.6.2 && < 0.7
3737 , servant-auth == 0.4.*
38− , servant >= 0.13 && < 0.19
39− , servant-client-core >= 0.13 && < 0.19
38+ , servant >= 0.13 && < 0.20
39+ , servant-client-core >= 0.13 && < 0.20
4040
4141 exposed-modules:
4242 Servant.Auth.Client
@@ -69,7 +69,7 @@ test-suite spec
6969 , http-client >= 0.5.13.1 && < 0.8
7070 , http-types >= 0.12.2 && < 0.13
7171 , servant-auth-server >= 0.4.2.0 && < 0.5
72− , servant-server >= 0.13 && < 0.19
72+ , servant-server >= 0.13 && < 0.20
7373 , time >= 1.5.0.1 && < 1.13
7474 , transformers >= 0.4.2.0 && < 0.6
7575 , wai >= 3.2.1.2 && < 3.3
servant-auth/servant-auth-docs/servant-auth-docs.cabal+1−1
@@ -37,7 +37,7 @@ library
3737 build-depends:
3838 base >= 4.10 && < 4.16
3939 , servant-docs >= 0.11.2 && < 0.12
40− , servant >= 0.13 && < 0.19
40+ , servant >= 0.13 && < 0.20
4141 , servant-auth == 0.4.*
4242 , lens >= 4.16.1 && <5.1
4343 exposed-modules:
servant-auth/servant-auth-server/servant-auth-server.cabal+2−2
@@ -46,9 +46,9 @@ library
4646 , memory >= 0.14.16 && < 0.17
4747 , monad-time >= 0.3.1.0 && < 0.4
4848 , mtl >= 2.2.2 && < 2.3
49− , servant >= 0.13 && < 0.19
49+ , servant >= 0.13 && < 0.20
5050 , servant-auth == 0.4.*
51− , servant-server >= 0.13 && < 0.19
51+ , servant-server >= 0.13 && < 0.20
5252 , tagged >= 0.8.4 && < 0.9
5353 , text >= 1.2.3.0 && < 1.3
5454 , time >= 1.5.0.1 && < 1.10
servant-auth/servant-auth-swagger/servant-auth-swagger.cabal+1−1
@@ -35,7 +35,7 @@ library
3535 , text >= 1.2.3.0 && < 1.3
3636 , servant-swagger >= 1.1.5 && < 2
3737 , swagger2 >= 2.2.2 && < 3
38− , servant >= 0.13 && < 0.19
38+ , servant >= 0.13 && < 0.20
3939 , servant-auth == 0.4.*
4040 , lens >= 4.16.1 && < 5.1
4141 if impl(ghc >= 9)
servant-auth/servant-auth/servant-auth.cabal+1−1
@@ -38,7 +38,7 @@ library
3838 , aeson >= 1.3.1.1 && < 3
3939 , jose >= 0.7.0.0 && < 0.10
4040 , lens >= 4.16.1 && < 5.1
41− , servant >= 0.15 && < 0.19
41+ , servant >= 0.15 && < 0.20
4242 , text >= 1.2.3.0 && < 1.3
4343 , unordered-containers >= 0.2.9.0 && < 0.3
4444 exposed-modules:
servant-client-core/CHANGELOG.md+29
@@ -1,6 +1,35 @@
11[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-client-core/CHANGELOG.md)
22[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
33
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+
4330.18.3
534------
635
servant-client-core/servant-client-core.cabal+2−2
@@ -1,6 +1,6 @@
11cabal-version: 2.2
22name: servant-client-core
3−version: 0.18.3
3+version: 0.19
44
55synopsis: Core functionality and class for client function generation for servant APIs
66category: Servant, Web
@@ -65,7 +65,7 @@ library
6565
6666 -- Servant dependencies
6767 build-depends:
68− servant >= 0.18.3 && <0.19
68+ servant >= 0.19
6969
7070 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
7171 -- 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
5656
5757 -- strict, as we re-export stuff
5858 build-depends:
59− servant >=0.16 && <0.17
60− , servant-client-core >=0.16 && <0.16.1
59+ servant >=0.16 && <0.20
60+ , servant-client-core >=0.16 && <0.20
6161
6262 hs-source-dirs: src
6363 default-language: Haskell2010
servant-client/CHANGELOG.md+29
@@ -1,6 +1,35 @@
11[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-client/CHANGELOG.md)
22[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
33
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+
4330.18.3
534------
635
servant-client/servant-client.cabal+5−5
@@ -1,6 +1,6 @@
11cabal-version: 2.2
22name: servant-client
3−version: 0.18.3
3+version: 0.19
44
55synopsis: Automatic derivation of querying functions for servant
66category: Servant, Web
@@ -58,8 +58,8 @@ library
5858 -- Servant dependencies.
5959 -- Strict dependency on `servant-client-core` as we re-export things.
6060 build-depends:
61− servant == 0.18.*
62− , servant-client-core >= 0.18.3 && <0.18.4
61+ servant >= 0.18 && < 0.20
62+ , servant-client-core >= 0.19 && < 0.19.1
6363
6464 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
6565 -- Here can be exceptions if we really need features from the newer versions.
@@ -128,8 +128,8 @@ test-suite spec
128128 , HUnit >= 1.6.0.0 && < 1.7
129129 , network >= 2.8.0.0 && < 3.2
130130 , QuickCheck >= 2.12.6.1 && < 2.15
131− , servant == 0.18.*
132− , servant-server == 0.18.*
131+ , servant == 0.19.*
132+ , servant-server == 0.19.*
133133 , tdigest >= 0.2 && < 0.3
134134
135135 build-tool-depends:
servant-conduit/servant-conduit.cabal+3−3
@@ -33,7 +33,7 @@ library
3333 , conduit >=1.3.1 && <1.4
3434 , mtl >=2.2.2 && <2.3
3535 , resourcet >=1.2.2 && <1.3
36− , servant >=0.15 && <0.19
36+ , servant >=0.15 && <0.20
3737 , unliftio-core >=0.1.2.0 && <0.3
3838 hs-source-dirs: src
3939 default-language: Haskell2010
@@ -54,8 +54,8 @@ test-suite example
5454 , resourcet
5555 , servant
5656 , servant-conduit
57− , servant-server >=0.15 && <0.19
58− , servant-client >=0.15 && <0.19
57+ , servant-server >=0.15 && <0.20
58+ , servant-client >=0.15 && <0.20
5959 , wai >=3.2.1.2 && <3.3
6060 , warp >=3.2.25 && <3.4
6161 , http-client
servant-docs/servant-docs.cabal+1−1
@@ -47,7 +47,7 @@ library
4747
4848 -- Servant dependencies
4949 build-depends:
50− servant >= 0.18 && <0.19
50+ servant >= 0.18 && <0.20
5151
5252 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
5353 -- 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
4646
4747 -- Servant dependencies
4848 build-depends:
49− servant >=0.18 && <0.19
49+ servant >=0.18 && <0.20
5050
5151 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
5252 -- 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
5454 -- Servant dependencies.
5555 -- Strict dependency on `servant-client-core` as we re-export things.
5656 build-depends:
57− servant == 0.18.*
58− , servant-client-core >= 0.18.3 && <0.18.4
57+ servant >= 0.18 && < 0.20
58+ , servant-client-core >= 0.18.3 && <0.20
5959
6060 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
6161 -- Here can be exceptions if we really need features from the newer versions.
@@ -116,8 +116,8 @@ test-suite spec
116116 , HUnit >= 1.6.0.0 && < 1.7
117117 , network >= 2.8.0.0 && < 3.2
118118 , QuickCheck >= 2.12.6.1 && < 2.15
119− , servant == 0.18.*
120− , servant-server == 0.18.*
119+ , servant == 0.19.*
120+ , servant-server == 0.19.*
121121 , tdigest >= 0.2 && < 0.3
122122
123123 build-tool-depends:
servant-machines/servant-machines.cabal+3−3
@@ -32,7 +32,7 @@ library
3232 , bytestring >=0.10.8.1 && <0.12
3333 , machines >=0.6.4 && <0.8
3434 , mtl >=2.2.2 && <2.3
35− , servant >=0.15 && <0.19
35+ , servant >=0.15 && <0.20
3636 hs-source-dirs: src
3737 default-language: Haskell2010
3838 ghc-options: -Wall
@@ -51,8 +51,8 @@ test-suite example
5151 , servant
5252 , machines
5353 , servant-machines
54− , servant-server >=0.15 && <0.19
55− , servant-client >=0.15 && <0.19
54+ , servant-server >=0.15 && <0.20
55+ , servant-client >=0.15 && <0.20
5656 , wai >=3.2.1.2 && <3.3
5757 , warp >=3.2.25 && <3.4
5858 , http-client
servant-pipes/servant-pipes.cabal+3−3
@@ -34,7 +34,7 @@ library
3434 , pipes-safe >=2.3.1 && <2.4
3535 , mtl >=2.2.2 && <2.3
3636 , monad-control >=1.0.2.3 && <1.1
37− , servant >=0.15 && <0.19
37+ , servant >=0.15 && <0.20
3838 hs-source-dirs: src
3939 default-language: Haskell2010
4040 ghc-options: -Wall
@@ -55,8 +55,8 @@ test-suite example
5555 , pipes-safe
5656 , servant-pipes
5757 , pipes-bytestring >=2.1.6 && <2.2
58− , servant-server >=0.15 && <0.19
59− , servant-client >=0.15 && <0.19
58+ , servant-server >=0.15 && <0.20
59+ , servant-client >=0.15 && <0.20
6060 , wai >=3.2.1.2 && <3.3
6161 , warp >=3.2.25 && <3.4
6262 , http-client
servant-server/CHANGELOG.md+16
@@ -1,6 +1,22 @@
11[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-server/CHANGELOG.md)
22[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
33
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+
4200.18.3
521------
622
servant-server/servant-server.cabal+2−2
@@ -1,6 +1,6 @@
11cabal-version: 2.2
22name: servant-server
3−version: 0.18.3
3+version: 0.19
44
55synopsis: A family of combinators for defining webservices APIs and serving them
66category: Servant, Web
@@ -72,7 +72,7 @@ library
7272 -- Servant dependencies
7373 -- strict dependency as we re-export 'servant' things.
7474 build-depends:
75− servant >= 0.18.3 && < 0.18.4
75+ servant >= 0.19
7676 , http-api-data >= 0.4.1 && < 0.4.4
7777
7878 -- Other dependencies: Lower bound around what is in the latest Stackage LTS.
servant-swagger/servant-swagger.cabal+1−1
@@ -77,7 +77,7 @@ library
7777 , http-media >=0.7.1.3 && <0.9
7878 , insert-ordered-containers >=0.2.1.0 && <0.3
7979 , lens >=4.17 && <6
80− , servant >=0.18.1 && <0.19
80+ , servant >=0.18.1 && <0.20
8181 , singleton-bool >=0.1.4 && <0.2
8282 , swagger2 >=2.3.0.1 && <3
8383 , text >=1.2.3.0 && <1.3
servant/CHANGELOG.md+109
@@ -1,5 +1,114 @@
11[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
22
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+
31120.18.3
4113------
5114
servant/servant.cabal+1−1
@@ -1,6 +1,6 @@
11cabal-version: 2.2
22name: servant
3−version: 0.18.3
3+version: 0.19
44
55synopsis: A family of combinators for defining webservices APIs
66category: Servant, Web