@@ -1,5 +1,82 @@
11[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
22
3+0.13
4+----
5+
6+### Significant changes
7+
8+- Streaming endpoint support.
9+ ([#836](https://github.com/haskell-servant/servant/pull/836))
10+
11+ ```haskell
12+ type StreamApi f = "streamGetNewline" :> StreamGet NewlineFraming JSON (f Person)
13+ ```
14+
15+ See tutorial for more details
16+ - [A web API as a type - StreamGet and StreamPost](http://haskell-servant.readthedocs.io/en/release-0.13/tutorial/ApiType.html#streamget-and-streampost)
17+ - [Serving an API - streaming endpoints](http://haskell-servant.readthedocs.io/en/release-0.13/tutorial/Server.html#streaming-endpoints)
18+ - [Querying an API - Querying Streaming APIs](http://haskell-servant.readthedocs.io/en/release-0.13/tutorial/Client.html#querying-streaming-apis)
19+
20+- *servant* Add `Servant.API.Modifiers`
21+ ([#873](https://github.com/haskell-servant/servant/pull/873)
22+ [#903](https://github.com/haskell-servant/servant/pull/903))
23+
24+ `QueryParam`, `Header` and `ReqBody` understand modifiers:
25+ - `Required` or `Optional` (resulting in `a` or `Maybe a` in handlers)
26+ - `Strict` or `Lenient` (resulting in `a` or `Either String a` in handlers)
27+
28+ Also you can use `Description` as a modifier, but it doesn't yet work
29+ with `servant-docs`, only `servant-swagger`. [There is an issue.](https://github.com/haskell-servant/servant/issues/902)
30+
31+- *servant-client* Support `http-client`’s `CookieJar`
32+ ([#897](https://github.com/haskell-servant/servant/pull/897)
33+ [#883](https://github.com/haskell-servant/servant/pull/883))
34+
35+ `ClientM` preserves cookies between requests,
36+ if given initial `CookieJar`.
37+ To migrate from older code, change `ClientEnv` constructor
38+ to `mkClientEnv` which makes `ClientEnv` without `CookieJar`.
39+
40+- *servant* Mono-kind-ise modifiers, resulting in better error messages.
41+ ([#887](https://github.com/haskell-servant/servant/issues/887)
42+ [#890](https://github.com/haskell-servant/servant/pull/890))
43+
44+- *servant* Add `TypeError ... => HasServer`s instances in GHC-8.2 for
45+ not saturated modifiers (`Capture "foo" :> ...`) or `->` in place of `:>`.
46+ ([#893](https://github.com/haskell-servant/servant/pull/893))
47+
48+- *Cookbook* example projects at
49+ http://haskell-servant.readthedocs.io/en/master/cookbook/index.html
50+ ([#867](https://github.com/haskell-servant/servant/pull/867)
51+ [#892](https://github.com/haskell-servant/servant/pull/882))
52+
53+- *Experimental work* `servant-client-ghcjs`
54+ ([#818](https://github.com/haskell-servant/servant/pull/818)
55+ [#869](https://github.com/haskell-servant/servant/pull/869))
56+
57+### Other changes
58+
59+- *servant* Links aren't double escaped
60+ ([#878](https://github.com/haskell-servant/servant/pull/878))
61+
62+- Dependency updates
63+ ([#900](https://github.com/haskell-servant/servant/pull/900)
64+ [#898](https://github.com/haskell-servant/servant/pull/898)
65+ [#895](https://github.com/haskell-servant/servant/pull/895)
66+ [#872](https://github.com/haskell-servant/servant/pull/872))
67+
68+- Documentation updates
69+ ([#875](https://github.com/haskell-servant/servant/pull/875)
70+ [#861](https://github.com/haskell-servant/servant/pull/861))
71+
72+- Refactorings
73+ ([#899](https://github.com/haskell-servant/servant/pull/899)
74+ [#896](https://github.com/haskell-servant/servant/pull/896)
75+ [#889](https://github.com/haskell-servant/servant/pull/889)
76+ [#891](https://github.com/haskell-servant/servant/pull/891)
77+ [#892](https://github.com/haskell-servant/servant/pull/892)
78+ [#885](https://github.com/haskell-servant/servant/pull/885))
79+
3800.12.1
481------
582