git.iko.soy/typeable/servant
on master help sign in
Merge pull request #855 from phadej/more-changelog-0.12
7e9910bOleg Grenrus
servant/CHANGELOG.md+43
@@ -10,15 +10,58 @@
10 independent of the `http-client` backend.
10 independent of the `http-client` backend.
11 ([#803](https://github.com/haskell-servant/servant/pull/803)
11 ([#803](https://github.com/haskell-servant/servant/pull/803)
12 [#821](https://github.com/haskell-servant/servant/issues/821))
12 [#821](https://github.com/haskell-servant/servant/issues/821))
13+
14+ If you have own combinators, you'll need to add an additional `m` argument
15+ in `HasClient`, `Client` and `clientWithRoute`:
16+
17+ ```diff
18+ -class HasClient api
19+ - type Client (api :: *) :: *
20+ - clientWithRoute :: Proxy api -> Req -> Client api
21+ +class HasClient m api
22+ + type Client (m :: * -> *) (api :: *) :: *
23+ + clientWithRoute :: Proxy m -> Proxy api -> Request -> Client m api
24+ ```
25+
26+ See https://github.com/haskell-servant/servant-auth/pull/67/commits/f777818e3cc0fa3ed2346baff8328e96d62b1790 for a real world example.
27+
13- *servant-server* Added `hoistServer` member to the `HasServer` class, which is `HasServer`
28- *servant-server* Added `hoistServer` member to the `HasServer` class, which is `HasServer`
14 specific `enter`.
29 specific `enter`.
15 ([#804](https://github.com/haskell-servant/servant/pull/804)
30 ([#804](https://github.com/haskell-servant/servant/pull/804)
16 [#824](https://github.com/haskell-servant/servant/pull/824))
31 [#824](https://github.com/haskell-servant/servant/pull/824))
32+
33+ `enter` isn't exported from `Servant` module anymore. You can change
34+ `enter` to `hoistServer` in a straight forward way.
35+ Unwrap natural transformation and add a api type `Proxy`:
36+
37+ ```diff
38+ -server = enter (NT nt) impl
39+ +server = hoistServer (Proxy :: Proxy MyApi) nt impl
40+ ```
41+
42+ If you have own combinators, you'll need to define a new method of
43+ `HasServer` class, for example:
44+
45+ ```haskell
46+ type ServerT (MyCombinator :> api) m = MyValue -> ServerT api m
47+ hoistServerWithContext _ pc nt s = hoistServerWithContext (Proxy :: Proxy api) pc nt . s
48+ ```
49+
50+ See https://github.com/haskell-servant/servant-auth/pull/67/commits/8ee3b6315247ac076516213fd7cfcdbfdb583ac9 for a real world example.
51+
17- Add `Description` and `Summary` combinators
52- Add `Description` and `Summary` combinators
18 ([#767](https://github.com/haskell-servant/servant/pull/767))
53 ([#767](https://github.com/haskell-servant/servant/pull/767))
54+
55+ It's possible to annotate endpoints with free form text.
56+ This information is used by e.g. by `servant-swagger`, see screenshot in
57+ https://github.com/phadej/servant-swagger-ui
58+
19- Lower `:>` and `:<|>` infix precedence to 4 and 3 respectively
59- Lower `:>` and `:<|>` infix precedence to 4 and 3 respectively
20 ([#761](https://github.com/haskell-servant/servant/issues/761))
60 ([#761](https://github.com/haskell-servant/servant/issues/761))
21
61
62+ This should affect you, except if you define your own infix operators
63+ for Servant type-level DSL.
64+
22### Other changes
65### Other changes
23
66
24- *servant-foreign* Derive `Data` for all types
67- *servant-foreign* Derive `Data` for all types