servant/servant/CHANGELOG.md

224 lines
8.3 KiB
Markdown
Raw Normal View History

[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
2017-12-18 18:54:39 +01:00
0.12.1
------
### Bug fixes
- Prevent double-escaping in link segments
([#835](https://github.com/haskell-servant/servant/issues/835)
[#878](https://github.com/haskell-servant/servant/pull/878))
0.12
2017-06-02 17:18:42 +02:00
---
### Significant changes
- *servant-client* *servant-client-core*
Factored out of `servant-client` all the functionality that was
independent of the `http-client` backend.
([#803](https://github.com/haskell-servant/servant/pull/803)
[#821](https://github.com/haskell-servant/servant/issues/821))
If you have own combinators, you'll need to add an additional `m` argument
in `HasClient`, `Client` and `clientWithRoute`:
```diff
-class HasClient api
- type Client (api :: *) :: *
- clientWithRoute :: Proxy api -> Req -> Client api
+class HasClient m api
+ type Client (m :: * -> *) (api :: *) :: *
+ clientWithRoute :: Proxy m -> Proxy api -> Request -> Client m api
```
See https://github.com/haskell-servant/servant-auth/pull/67/commits/f777818e3cc0fa3ed2346baff8328e96d62b1790 for a real world example.
- *servant-server* Added `hoistServer` member to the `HasServer` class, which is `HasServer`
specific `enter`.
([#804](https://github.com/haskell-servant/servant/pull/804)
[#824](https://github.com/haskell-servant/servant/pull/824))
`enter` isn't exported from `Servant` module anymore. You can change
`enter` to `hoistServer` in a straight forward way.
Unwrap natural transformation and add a api type `Proxy`:
```diff
-server = enter (NT nt) impl
+server = hoistServer (Proxy :: Proxy MyApi) nt impl
```
If you have own combinators, you'll need to define a new method of
`HasServer` class, for example:
```haskell
type ServerT (MyCombinator :> api) m = MyValue -> ServerT api m
hoistServerWithContext _ pc nt s = hoistServerWithContext (Proxy :: Proxy api) pc nt . s
```
See https://github.com/haskell-servant/servant-auth/pull/67/commits/8ee3b6315247ac076516213fd7cfcdbfdb583ac9 for a real world example.
- Add `Description` and `Summary` combinators
([#767](https://github.com/haskell-servant/servant/pull/767))
It's possible to annotate endpoints with free form text.
This information is used by e.g. by `servant-swagger`, see screenshot in
https://github.com/phadej/servant-swagger-ui
2017-06-02 17:18:42 +02:00
- Lower `:>` and `:<|>` infix precedence to 4 and 3 respectively
([#761](https://github.com/haskell-servant/servant/issues/761))
2017-11-08 11:49:47 +01:00
This shouldn't affect you, except if you define your own infix operators
for Servant type-level DSL.
### Other changes
2017-11-06 11:35:43 +01:00
- *servant-foreign* Derive `Data` for all types
([#809](https://github.com/haskell-servant/servant/pull/809))
- *servant-docs* Add authentication lenses
([#787](https://github.com/haskell-servant/servant/pull/787))
- *servant-docs* Generated markdown improvements
([#813](https://github.com/haskell-servant/servant/pull/787)
[#767](https://github.com/haskell-servant/servant/pull/767)
[#790](https://github.com/haskell-servant/servant/pull/790)
[#788](https://github.com/haskell-servant/servant/pull/788))
2017-11-07 17:49:30 +01:00
- Add `addLinks` to generate all links for unnested APIs.
([#851](https://github.com/haskell-servant/servant/pull/851))
- Allow newest dependencies
([#772](https://github.com/haskell-servant/servant/pull/772)
[#842](https://github.com/haskell-servant/servant/pull/842))
- Documentation improvements and typo fixes
([#757](https://github.com/haskell-servant/servant/pull/757)
[#771](https://github.com/haskell-servant/servant/pull/771)
[#775](https://github.com/haskell-servant/servant/pull/775)
[#790](https://github.com/haskell-servant/servant/pull/790)
[#791](https://github.com/haskell-servant/servant/pull/791)
[#806](https://github.com/haskell-servant/servant/pull/806))
- Development process improvements
([#764](https://github.com/haskell-servant/servant/pull/764)
[#839](https://github.com/haskell-servant/servant/pull/839))
2017-05-14 20:41:39 +02:00
0.11
----
### Breaking changes
- `Enter` refactored
([#734](https://github.com/haskell-servant/servant/issues/734)
, [#736](https://github.com/haskell-servant/servant/pull/736))
### Other changes
- Add a type representing an empty API
([#753](https://github.com/haskell-servant/servant/pull/753))
- Add `linkURI'` and `Link` accessors
([#745](https://github.com/haskell-servant/servant/pull/745)
, [#717](https://github.com/haskell-servant/servant/pull/717)
, [#715](https://github.com/haskell-servant/servant/issues/715))
- Prepare for GHC-8.2
([#722](https://github.com/haskell-servant/servant/pull/722))
- Add `HasLink AuthProtect` instance
([#720](https://github.com/haskell-servant/servant/pull/720))
- `AllCTRender [] ()` `TypeError` (use `NoContent`)
([#671](https://github.com/haskell-servant/servant/pull/671))
- Documentation improvements and typo fixes
([#702](https://github.com/haskell-servant/servant/pull/702)
, [#709](https://github.com/haskell-servant/servant/pull/709)
, [#716](https://github.com/haskell-servant/servant/pull/716)
, [#725](https://github.com/haskell-servant/servant/pull/725)
, [#727](https://github.com/haskell-servant/servant/pull/727))
2016-11-18 17:41:34 +01:00
0.10
2017-05-14 20:41:39 +02:00
----
2016-11-18 17:41:34 +01:00
### Breaking changes
2016-11-18 17:41:34 +01:00
* Use `NT` from `natural-transformation` for `Enter`
2017-01-16 09:09:40 +01:00
([#616](https://github.com/haskell-servant/servant/issues/616))
2016-11-18 17:41:34 +01:00
2017-01-16 09:31:18 +01:00
* Change to `MkLink (Verb ...) = Link` (previously `URI`). To consume `Link`
2017-01-16 09:46:28 +01:00
use its `ToHttpApiData` instance or `linkURI`.
2017-01-16 09:31:18 +01:00
([#527](https://github.com/haskell-servant/servant/issues/527))
### Other changes
2017-01-16 12:59:24 +01:00
* Add `Servant.API.TypeLevel` module with type families to work with API types.
2017-01-30 07:45:58 +01:00
([#345](https://github.com/haskell-servant/servant/pull/345)
, [#305](https://github.com/haskell-servant/servant/issues/305))
2017-01-16 12:59:24 +01:00
* Default JSON content type change to `application/json;charset=utf-8`.
([#263](https://github.com/haskell-servant/servant/issues/263))
Related browser bugs:
[Chromium](https://bugs.chromium.org/p/chromium/issues/detail?id=438464) and
[Firefox](https://bugzilla.mozilla.org/show_bug.cgi?id=918742)
2017-01-30 07:45:58 +01:00
* `Accept` class may accept multiple content-types. `MimeUnrender` adopted as well.
([#613](https://github.com/haskell-servant/servant/pull/614)
, [#615](https://github.com/haskell-servant/servant/pull/615))
2016-10-26 17:35:57 +02:00
0.9.1
------
2016-10-24 17:15:29 +02:00
* Added 'noHeader' function for *not* adding response headers.
0.9
---
2016-09-07 17:31:54 +02:00
* Added Eq, Show, Read, Generic and Ord instances to IsSecure
* BACKWARDS INCOMPATIBLE: replace use of `ToFromByteString` with `To/FromHttpApiData` for `GetHeaders/BuildHeadersTo`
* BACKWARDS INCOMPATIBLE: Moved `From/ToFormUrlEncoded` classes, which were renamed to `From/ToForm` to `http-api-data`
2016-09-07 17:31:54 +02:00
2016-09-02 18:09:47 +02:00
0.8.1
2016-08-17 13:37:53 +02:00
----
* Add `CaptureAll` combinator. Captures all of the remaining segments in a URL.
* Add `Servant.API.TypeLevel` module, with frequently used type-level
functionaliy.
2016-08-17 13:37:53 +02:00
2016-07-10 14:10:27 +02:00
0.8
---
* Minor fixes, documentation changes and cabal tweaks
2016-05-10 16:16:37 +02:00
0.7.1
2016-05-05 05:31:08 +02:00
-----
2016-05-10 16:16:37 +02:00
* Add module `Servant.Utils.Enter` (https://github.com/haskell-servant/servant/pull/478)
2016-05-05 05:31:08 +02:00
* Allow to set the same header multiple times in responses.
2016-05-10 16:16:37 +02:00
2016-03-19 13:26:13 +01:00
0.5
2016-05-05 05:31:08 +02:00
---
2016-01-18 22:34:56 +01:00
* Add `WithNamedConfig` combinator.
* Add `HttpVersion`, `IsSecure`, `RemoteHost` and `Vault` combinators
* Fix safeLink, so Header is not in fact required.
2015-10-08 00:15:30 +02:00
* Add more instances for (:<|>)
* Use `http-api-data` instead of `Servant.Common.Text`
2015-10-13 21:46:52 +02:00
* Remove matrix params.
* Add PlainText String MimeRender and MimeUnrender instances.
2015-12-27 14:47:05 +01:00
* Add new `Verbs` combinator, and make all existing and new verb combinators
type synonyms of it.
* Add `BasicAuth` combinator to support Basic authentication
* Add generalized authentication support
2015-06-05 12:18:01 +02:00
0.4.2
-----
* Fix missing cases for `Patch` in `safeLink`
2015-05-27 15:33:25 +02:00
0.4.1
-----
* Allow whitespace after parsing JSON
* Stricter matching for `safeLink` for `Capture`
2015-05-09 02:28:05 +02:00
0.4
2015-03-04 01:47:47 +01:00
---
* `Delete` now is like `Get`, `Post`, `Put`, and `Patch` and returns a response body
2015-03-04 01:47:47 +01:00
* Multiple content-type/accept support for all the relevant combinators
* Provide *JSON*, *PlainText*, *OctetStream* and *FormUrlEncoded* content types out of the box
* Type-safe link generation to API endpoints
* Support for the PATCH HTTP method
* Removed the home-made QuasiQuote for writing API types in a more human-friendly format until we come up with a better design for it
* Make most if not all of the haddock code examples run through doctest
2015-04-13 15:12:33 +02:00
* Some general code cleanup
* Add response headers