Merge pull request #1268 from haskell-servant/version-0.17

Bump version to 0.17
This commit is contained in:
Oleg Grenrus 2020-01-23 13:58:03 +02:00 committed by GitHub
commit 74aa1d52ec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
39 changed files with 441 additions and 254 deletions

View file

@ -4,7 +4,7 @@
#
# For more information, see https://github.com/haskell-CI/haskell-ci
#
# version: 0.9.20200110
# version: 0.9.20200121
#
version: ~> 1.0
language: c
@ -75,39 +75,31 @@ before_install:
- echo $HCNUMVER
- CABAL="$CABAL -vnormal+nowrap"
- set -o pipefail
install:
- ${CABAL} --version
- echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
- node --version
- echo $GHCJS
- TEST=--enable-tests
- BENCH=--enable-benchmarks
- HEADHACKAGE=false
- rm -f $CABALHOME/config
- |
echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config
echo "remote-build-reporting: anonymous" >> $CABALHOME/config
echo "write-ghc-environment-files: always" >> $CABALHOME/config
echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config
echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config
echo "world-file: $CABALHOME/world" >> $CABALHOME/config
echo "extra-prog-path: $CABALHOME/bin" >> $CABALHOME/config
echo "symlink-bindir: $CABALHOME/bin" >> $CABALHOME/config
echo "installdir: $CABALHOME/bin" >> $CABALHOME/config
echo "build-summary: $CABALHOME/logs/build.log" >> $CABALHOME/config
echo "store-dir: $CABALHOME/store" >> $CABALHOME/config
echo "install-dirs user" >> $CABALHOME/config
echo " prefix: $CABALHOME" >> $CABALHOME/config
echo "repository hackage.haskell.org" >> $CABALHOME/config
echo " url: http://hackage.haskell.org/" >> $CABALHOME/config
echo " secure: True" >> $CABALHOME/config
echo " key-threshold: 3" >> $CABALHOME/config
echo " root-keys:" >> $CABALHOME/config
echo " fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0" >> $CABALHOME/config
echo " 1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42" >> $CABALHOME/config
echo " 2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3" >> $CABALHOME/config
echo " 0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d" >> $CABALHOME/config
echo " 51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921" >> $CABALHOME/config
echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config
echo "remote-build-reporting: anonymous" >> $CABALHOME/config
echo "write-ghc-environment-files: always" >> $CABALHOME/config
echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config
echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config
echo "world-file: $CABALHOME/world" >> $CABALHOME/config
echo "extra-prog-path: $CABALHOME/bin" >> $CABALHOME/config
echo "symlink-bindir: $CABALHOME/bin" >> $CABALHOME/config
echo "installdir: $CABALHOME/bin" >> $CABALHOME/config
echo "build-summary: $CABALHOME/logs/build.log" >> $CABALHOME/config
echo "store-dir: $CABALHOME/store" >> $CABALHOME/config
echo "install-dirs user" >> $CABALHOME/config
echo " prefix: $CABALHOME" >> $CABALHOME/config
echo "repository hackage.haskell.org" >> $CABALHOME/config
echo " url: http://hackage.haskell.org/" >> $CABALHOME/config
install:
- ${CABAL} --version
- echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
- node --version
- echo $GHCJS
- GHCJOBS=-j2
- |
echo "program-default-options" >> $CABALHOME/config
@ -157,6 +149,9 @@ install:
echo "allow-newer: io-streams-1.5.1.0:network" >> cabal.project
echo "allow-newer: io-streams-1.5.1.0:primitive" >> cabal.project
echo "allow-newer: openssl-streams-1.2.2.0:network" >> cabal.project
echo "allow-newer: servant" >> cabal.project
echo "allow-newer: servant-server" >> cabal.project
echo "allow-newer: servant-client" >> cabal.project
echo "optimization: False" >> cabal.project
- "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(cookbook-basic-auth|cookbook-basic-streaming|cookbook-curl-mock|cookbook-db-postgres-pool|cookbook-file-upload|cookbook-generic|cookbook-pagination|cookbook-structuring-apis|cookbook-testing|cookbook-using-custom-monad|cookbook-using-free-client|servant|servant-client|servant-client-core|servant-conduit|servant-docs|servant-foreign|servant-http-streams|servant-machines|servant-pipes|servant-server|tutorial)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
- cat cabal.project || true
@ -259,6 +254,9 @@ script:
echo "allow-newer: io-streams-1.5.1.0:network" >> cabal.project
echo "allow-newer: io-streams-1.5.1.0:primitive" >> cabal.project
echo "allow-newer: openssl-streams-1.2.2.0:network" >> cabal.project
echo "allow-newer: servant" >> cabal.project
echo "allow-newer: servant-server" >> cabal.project
echo "allow-newer: servant-client" >> cabal.project
echo "optimization: False" >> cabal.project
- "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(cookbook-basic-auth|cookbook-basic-streaming|cookbook-curl-mock|cookbook-db-postgres-pool|cookbook-file-upload|cookbook-generic|cookbook-pagination|cookbook-structuring-apis|cookbook-testing|cookbook-using-custom-monad|cookbook-using-free-client|servant|servant-client|servant-client-core|servant-conduit|servant-docs|servant-foreign|servant-http-streams|servant-machines|servant-pipes|servant-server|tutorial)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
- cat cabal.project || true
@ -318,5 +316,5 @@ script:
- if ! $GHCJS ; then ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all ; fi
- echo -en 'travis_fold:end:haddock\\r'
# REGENDATA ("0.9.20200110",["--config=cabal.haskell-ci","--output=.travis.yml","cabal.project"])
# REGENDATA ("0.9.20200121",["--config=cabal.haskell-ci","--output=.travis.yml","cabal.project"])
# EOF

View file

@ -65,3 +65,8 @@ constraints: base-compat ^>=0.11
-- needed for doctests
write-ghc-environment-files: always
-- servant-0.17
allow-newer: servant
allow-newer: servant-server
allow-newer: servant-client

View file

@ -1,18 +0,0 @@
synopsis: Add NoContentVerb
prs: #1228 #1219
issues: #1028
significance: significant
description: {
The `NoContent` API endpoints should now use `NoContentVerb` combinator.
The API type changes are usually of the kind
```diff
- :<|> PostNoContent '[JSON] NoContent
+ :<|> PostNoContent
```
i.e. one doesn't need to specify the content-type anymore. There is no content.
}

View file

@ -1,12 +0,0 @@
synopsis: Fix Verb with headers checking content type differently
packages: servant-client-core servant-client
prs: #1204
issues: #1200
packages: servant-client servant-client-core servant-http-streams
description: {
For `Verb`s with response `Headers`, the implementation didn't check
for the content-type of the response. Now it does.
}

View file

@ -1,16 +0,0 @@
synopsis: Merge documentation from duplicate routes
packages: servant-docs
prs: #1241
issues: #1240
description: {
Servant supports defining the same route multiple times with different
content-types and result-types, but servant-docs was only documenting
the first of copy of such duplicated routes. It now combines the
documentation from all the copies.
Unfortunately, it is not yet possible for the documentation to specify
multiple status codes.
}

View file

@ -1,3 +0,0 @@
synopsis: Progress on servant-jsaddle
packages: servant-jsaddle
prs: #1216

View file

@ -1,17 +0,0 @@
synopsis: `Capture` can be `Lenient`
issues: #1155
prs: #1156
significance: significant
description: {
You can specify a lenient capture as
```haskell
:<|> "capture-lenient" :> Capture' '[Lenient] "foo" Int :> GET
```
which will make the capture always succeed. Handlers will be of the
type `Either String CapturedType`, where `Left err` represents
the possible parse failure.
}

View file

@ -1,7 +0,0 @@
synopsis: Add sponsorship button
prs: #1190
description: {
[Well-Typed](https://www.well-typed.com/)
}

View file

@ -1,3 +0,0 @@
synopsis: Prevent race-conditions in testing
packages: servant-docs
prs: #1194

View file

@ -1,4 +0,0 @@
synopsis: `HasClient` instance for `Stream` with `Headers`
packages: servant-client servant-client servant-http-streams
prs: #1197
issues: #1170

View file

@ -1,3 +0,0 @@
synopsis: Remove unused extensions from cabal file
packages: servant
prs: #1201

View file

@ -1,12 +0,0 @@
synopsis: Added a function to create Client.Request in ClientEnv
packages: servant-client
significance: significant
prs: #1213 #1255
description: {
The new member `makeClientRequest` of `ClientEnv` is used to create
`http-client` `Request` from `servant-client-core` `Request`.
This functionality can be used for example to set
dynamic timeouts for each request.
}

View file

@ -1,3 +0,0 @@
synopsis: Redact the authorization header in Show and exceptions
packages: servant-client
prs: #1238

View file

@ -1,15 +0,0 @@
synopsis: use queryString to parse QueryParam, QueryParams and QueryFlag
packages: servant-server
prs: #1249 #1262
significance: significant
description: {
Some APIs need query parameters rewriting, e.g. in order to support
for multiple casing (camel, snake, etc) or something to that effect.
This could be easily achieved by using WAI Middleware and modyfing
request's `Query`. But QueryParam, QueryParams and QueryFlag use
`rawQueryString`. By using `queryString` rather then `rawQueryString`
we can enable such rewritings.
}

View file

@ -1,11 +0,0 @@
synopsis: Make packages `build-type: Simple`
packages: servant servant-server
prs: #1263
significance: significant
description: {
We used `build-type: Custom`, but it's problematic e.g.
for cross-compiling. The benefit is small, as the doctests
can be run other ways too (though not so conviniently).
}

View file

@ -1,8 +0,0 @@
synopsis: Try changelog-d for changelog management
prs: #1230
description: {
Check the [CONTRIBUTING.md](https://github.com/haskell-servant/servant/blob/master/CONTRIBUTING.md) for details
}

View file

@ -1,19 +0,0 @@
synopsis: CI and testing tweaks.
prs:
#1154
#1157
#1182
#1214
#1229
#1233
#1242
#1247
#1250
#1258
description: {
We are experiencing some bitrotting of cookbook recipe dependencies,
therefore some of them aren't build as part of our CI anymore.
}

View file

@ -1,9 +0,0 @@
synopsis: New cookbook recipes
prs: #1171 #1088 #1198
description: {
- [OIDC Recipe](#TODO)
- [MySQL Recipe](#TODO)
}

View file

@ -1,9 +0,0 @@
synopsis: Dependency upgrades
prs:
#1173
#1181
#1183
#1188
#1224
#1245
#1257

View file

@ -1,8 +0,0 @@
synopsis: Documentation updates
prs:
#1162
#1174
#1175
#1234
#1244
#1247

View file

@ -1,6 +1,45 @@
[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-client-core/CHANGELOG.md)
[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
0.17
----
### Significant changes
- Add NoContentVerb [#1028](https://github.com/haskell-servant/servant/issues/1028) [#1219](https://github.com/haskell-servant/servant/pull/1219) [#1228](https://github.com/haskell-servant/servant/pull/1228)
The `NoContent` API endpoints should now use `NoContentVerb` combinator.
The API type changes are usually of the kind
```diff
- :<|> PostNoContent '[JSON] NoContent
+ :<|> PostNoContent
```
i.e. one doesn't need to specify the content-type anymore. There is no content.
- `Capture` can be `Lenient` [#1155](https://github.com/haskell-servant/servant/issues/1155) [#1156](https://github.com/haskell-servant/servant/pull/1156)
You can specify a lenient capture as
```haskell
:<|> "capture-lenient" :> Capture' '[Lenient] "foo" Int :> GET
```
which will make the capture always succeed. Handlers will be of the
type `Either String CapturedType`, where `Left err` represents
the possible parse failure.
### Other changes
- *servant-client* *servant-client-core* *servant-http-streams* Fix Verb with headers checking content type differently [#1200](https://github.com/haskell-servant/servant/issues/1200) [#1204](https://github.com/haskell-servant/servant/pull/1204)
For `Verb`s with response `Headers`, the implementation didn't check
for the content-type of the response. Now it does.
- *servant-client* *servant-http-streams* `HasClient` instance for `Stream` with `Headers` [#1170](https://github.com/haskell-servant/servant/issues/1170) [#1197](https://github.com/haskell-servant/servant/pull/1197)
- *servant-client* Redact the authorization header in Show and exceptions [#1238](https://github.com/haskell-servant/servant/pull/1238)
0.16
----

View file

@ -1,6 +1,6 @@
cabal-version: >=1.10
name: servant-client-core
version: 0.16
version: 0.17
synopsis: Core functionality and class for client function generation for servant APIs
category: Servant, Web
@ -69,7 +69,7 @@ library
-- Servant dependencies
build-depends:
servant >= 0.16 && <0.17
servant >= 0.17 && <0.18
-- Other dependencies: Lower bound around what is in the latest Stackage LTS.
-- Here can be exceptions if we really need features from the newer versions.

View file

@ -1,6 +1,54 @@
[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-client/CHANGELOG.md)
[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
0.17
----
### Significant changes
- Add NoContentVerb [#1028](https://github.com/haskell-servant/servant/issues/1028) [#1219](https://github.com/haskell-servant/servant/pull/1219) [#1228](https://github.com/haskell-servant/servant/pull/1228)
The `NoContent` API endpoints should now use `NoContentVerb` combinator.
The API type changes are usually of the kind
```diff
- :<|> PostNoContent '[JSON] NoContent
+ :<|> PostNoContent
```
i.e. one doesn't need to specify the content-type anymore. There is no content.
- `Capture` can be `Lenient` [#1155](https://github.com/haskell-servant/servant/issues/1155) [#1156](https://github.com/haskell-servant/servant/pull/1156)
You can specify a lenient capture as
```haskell
:<|> "capture-lenient" :> Capture' '[Lenient] "foo" Int :> GET
```
which will make the capture always succeed. Handlers will be of the
type `Either String CapturedType`, where `Left err` represents
the possible parse failure.
- *servant-client* Added a function to create Client.Request in ClientEnv [#1213](https://github.com/haskell-servant/servant/pull/1213) [#1255](https://github.com/haskell-servant/servant/pull/1255)
The new member `makeClientRequest` of `ClientEnv` is used to create
`http-client` `Request` from `servant-client-core` `Request`.
This functionality can be used for example to set
dynamic timeouts for each request.
### Other changes
- *servant-client* *servant-client-core* *servant-http-streams* Fix Verb with headers checking content type differently [#1200](https://github.com/haskell-servant/servant/issues/1200) [#1204](https://github.com/haskell-servant/servant/pull/1204)
For `Verb`s with response `Headers`, the implementation didn't check
for the content-type of the response. Now it does.
- *servant-client* *servant-http-streams* `HasClient` instance for `Stream` with `Headers` [#1170](https://github.com/haskell-servant/servant/issues/1170) [#1197](https://github.com/haskell-servant/servant/pull/1197)
- *servant-client* Redact the authorization header in Show and exceptions [#1238](https://github.com/haskell-servant/servant/pull/1238)
0.16.0.1
--------

View file

@ -1,6 +1,6 @@
cabal-version: >=1.10
name: servant-client
version: 0.16.0.1
version: 0.17
synopsis: Automatic derivation of querying functions for servant
category: Servant, Web
@ -62,8 +62,8 @@ library
-- Servant dependencies.
-- Strict dependency on `servant-client-core` as we re-export things.
build-depends:
servant == 0.16.*
, servant-client-core >= 0.16 && <0.16.1
servant == 0.17.*
, servant-client-core >= 0.17 && <0.17.1
-- Other dependencies: Lower bound around what is in the latest Stackage LTS.
-- Here can be exceptions if we really need features from the newer versions.
@ -127,8 +127,8 @@ test-suite spec
, HUnit >= 1.6.0.0 && < 1.7
, network >= 2.8.0.0 && < 3.2
, QuickCheck >= 2.12.6.1 && < 2.14
, servant == 0.16.*
, servant-server == 0.16.*
, servant == 0.17.*
, servant-server == 0.17.*
, tdigest >= 0.2 && < 0.3
build-tool-depends:

View file

@ -1,7 +1,7 @@
cabal-version: >=1.10
name: servant-conduit
version: 0.15
x-revision: 1
x-revision: 3
synopsis: Servant Stream support for conduit.
category: Servant, Web, Enumerator
@ -39,7 +39,7 @@ library
, conduit >=1.3.1 && <1.4
, mtl >=2.2.2 && <2.3
, resourcet >=1.2.2 && <1.3
, servant >=0.15 && <0.17
, servant >=0.15 && <0.18
, unliftio-core >=0.1.2.0 && <0.2
hs-source-dirs: src
default-language: Haskell2010
@ -60,8 +60,8 @@ test-suite example
, resourcet
, servant
, servant-conduit
, servant-server >=0.15 && <0.17
, servant-client >=0.15 && <0.17
, servant-server >=0.15 && <0.18
, servant-client >=0.15 && <0.18
, wai >=3.2.1.2 && <3.3
, warp >=3.2.25 && <3.4
, http-client

View file

@ -1,6 +1,46 @@
[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-docs/CHANGELOG.md)
[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
0.14.2
----
- Add NoContentVerb [#1028](https://github.com/haskell-servant/servant/issues/1028) [#1219](https://github.com/haskell-servant/servant/pull/1219) [#1228](https://github.com/haskell-servant/servant/pull/1228)
The `NoContent` API endpoints should now use `NoContentVerb` combinator.
The API type changes are usually of the kind
```diff
- :<|> PostNoContent '[JSON] NoContent
+ :<|> PostNoContent
```
i.e. one doesn't need to specify the content-type anymore. There is no content.
- `Capture` can be `Lenient` [#1155](https://github.com/haskell-servant/servant/issues/1155) [#1156](https://github.com/haskell-servant/servant/pull/1156)
You can specify a lenient capture as
```haskell
:<|> "capture-lenient" :> Capture' '[Lenient] "foo" Int :> GET
```
which will make the capture always succeed. Handlers will be of the
type `Either String CapturedType`, where `Left err` represents
the possible parse failure.
- *servant-docs* Merge documentation from duplicate routes [#1240](https://github.com/haskell-servant/servant/issues/1240) [#1241](https://github.com/haskell-servant/servant/pull/1241)
Servant supports defining the same route multiple times with different
content-types and result-types, but servant-docs was only documenting
the first of copy of such duplicated routes. It now combines the
documentation from all the copies.
Unfortunately, it is not yet possible for the documentation to specify
multiple status codes.
- *servant-docs* Prevent race-conditions in testing [#1194](https://github.com/haskell-servant/servant/pull/1194)
0.11.4
------

View file

@ -1,6 +1,6 @@
cabal-version: >=1.10
name: servant-docs
version: 0.11.4
version: 0.11.5
synopsis: generate API docs for your servant webservice
category: Servant, Web
@ -52,7 +52,7 @@ library
-- Servant dependencies
build-depends:
servant >= 0.15 && <0.17
servant >= 0.17 && <0.18
-- Other dependencies: Lower bound around what is in the latest Stackage LTS.
-- Here can be exceptions if we really need features from the newer versions.

View file

@ -1,6 +1,69 @@
[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-foreign/CHANGELOG.md)
[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
0.15.1
------
* Support `servant-0.17`
0.15
----
- *servant-foreign* Add support so `HasForeign` can be implemented for
`MultipartForm` from [`servant-multipart`](http://hackage.haskell.org/package/servant-multipart)
[#1035](https://github.com/haskell-servant/servant/pull/1035)
- Drop support for GHC older than 8.0
[#1008](https://github.com/haskell-servant/servant/pull/1008)
[#1009](https://github.com/haskell-servant/servant/pull/1009)
0.11.1
------
- Add missing `Semigroup` instances
0.11
----
### Breaking changes
- *servant* Add `Servant.API.Modifiers`
([#873](https://github.com/haskell-servant/servant/pull/873))
- Make foreign client Header arguments have the representation of 'Maybe' in those languages
([#843](https://github.com/haskell-servant/servant/pull/843))
0.10.2
------
### Changes
* Add instances for `Description` and `Summary` combinators
([#767](https://github.com/haskell-servant/servant/pull/767))
* Derive Data for all types
([#809](https://github.com/haskell-servant/servant/pull/809))
0.10.1
------
### Changes
* Don't drop samples in `HasDocs ReqBody` instance
([#755](https://github.com/haskell-servant/servant/pull/755/files)).
*Breaking change in an `Internal` module*.
0.10
----
### Breaking changes
* Do not apply JavaScript specific mangling to the names.
([#191](https://github.com/haskell-servant/servant/issues/191))
0.7.1
-----
* Support GHC 8.0
0.15
----

View file

@ -1,7 +1,6 @@
cabal-version: >=1.10
name: servant-foreign
version: 0.15
x-revision: 1
version: 0.15.1
synopsis: Helpers for generating clients for servant APIs in any programming language
category: Servant, Web
@ -52,7 +51,7 @@ library
-- Servant dependencies
build-depends:
servant >=0.15 && <0.17
servant >=0.17 && <0.18
-- Other dependencies: Lower bound around what is in the latest Stackage LTS.
-- Here can be exceptions if we really need features from the newer versions.

View file

@ -1,6 +1,47 @@
[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-http-streams/CHANGELOG.md)
[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
0.17
----
### Significant changes
- Add NoContentVerb [#1028](https://github.com/haskell-servant/servant/issues/1028) [#1219](https://github.com/haskell-servant/servant/pull/1219) [#1228](https://github.com/haskell-servant/servant/pull/1228)
The `NoContent` API endpoints should now use `NoContentVerb` combinator.
The API type changes are usually of the kind
```diff
- :<|> PostNoContent '[JSON] NoContent
+ :<|> PostNoContent
```
i.e. one doesn't need to specify the content-type anymore. There is no content.
- `Capture` can be `Lenient` [#1155](https://github.com/haskell-servant/servant/issues/1155) [#1156](https://github.com/haskell-servant/servant/pull/1156)
You can specify a lenient capture as
```haskell
:<|> "capture-lenient" :> Capture' '[Lenient] "foo" Int :> GET
```
which will make the capture always succeed. Handlers will be of the
type `Either String CapturedType`, where `Left err` represents
the possible parse failure.
### Other changes
- *servant-client* *servant-client-core* *servant-http-streams* Fix Verb with headers checking content type differently [#1200](https://github.com/haskell-servant/servant/issues/1200) [#1204](https://github.com/haskell-servant/servant/pull/1204)
For `Verb`s with response `Headers`, the implementation didn't check
for the content-type of the response. Now it does.
- *servant-client* *servant-http-streams* `HasClient` instance for `Stream` with `Headers` [#1170](https://github.com/haskell-servant/servant/issues/1170) [#1197](https://github.com/haskell-servant/servant/pull/1197)
- *servant-client* Redact the authorization header in Show and exceptions [#1238](https://github.com/haskell-servant/servant/pull/1238)
0.16.0.1
--------

View file

@ -1,6 +1,6 @@
cabal-version: >=1.10
name: servant-http-streams
version: 0.16
version: 0.17
synopsis: Automatic derivation of querying functions for servant
category: Servant, Web
@ -59,8 +59,8 @@ library
-- Servant dependencies.
-- Strict dependency on `servant-client-core` as we re-export things.
build-depends:
servant == 0.16.*
, servant-client-core >= 0.16 && <0.16.1
servant == 0.17.*
, servant-client-core >= 0.17 && <0.17.1
-- Other dependencies: Lower bound around what is in the latest Stackage LTS.
-- Here can be exceptions if we really need features from the newer versions.
@ -121,8 +121,8 @@ test-suite spec
, HUnit >= 1.6.0.0 && < 1.7
, network >= 2.8.0.0 && < 3.2
, QuickCheck >= 2.12.6.1 && < 2.14
, servant == 0.16.*
, servant-server == 0.16.*
, servant == 0.17.*
, servant-server == 0.17.*
, tdigest >= 0.2 && < 0.3
build-tool-depends:

View file

@ -1,7 +1,7 @@
cabal-version: >=1.10
name: servant-machines
version: 0.15
x-revision: 1
x-revision: 4
synopsis: Servant Stream support for machines
category: Servant, Web, Enumerator
@ -38,7 +38,7 @@ library
, bytestring >=0.10.8.1 && <0.11
, machines >=0.6.4 && <0.8
, mtl >=2.2.2 && <2.3
, servant >=0.15 && <0.17
, servant >=0.15 && <0.18
hs-source-dirs: src
default-language: Haskell2010
ghc-options: -Wall
@ -57,8 +57,8 @@ test-suite example
, servant
, machines
, servant-machines
, servant-server >=0.15 && <0.17
, servant-client >=0.15 && <0.17
, servant-server >=0.15 && <0.18
, servant-client >=0.15 && <0.18
, wai >=3.2.1.2 && <3.3
, warp >=3.2.25 && <3.4
, http-client

View file

@ -1,6 +1,7 @@
cabal-version: >=1.10
name: servant-pipes
version: 0.15.1
x-revision: 1
synopsis: Servant Stream support for pipes
category: Servant, Web, Pipes
@ -39,7 +40,7 @@ library
, pipes-safe >=2.3.1 && <2.4
, mtl >=2.2.2 && <2.3
, monad-control >=1.0.2.3 && <1.1
, servant >=0.15 && <0.17
, servant >=0.15 && <0.18
hs-source-dirs: src
default-language: Haskell2010
ghc-options: -Wall
@ -60,8 +61,8 @@ test-suite example
, pipes-safe
, servant-pipes
, pipes-bytestring >=2.1.6 && <2.2
, servant-server >=0.15 && <0.17
, servant-client >=0.15 && <0.17
, servant-server >=0.15 && <0.18
, servant-client >=0.15 && <0.18
, wai >=3.2.1.2 && <3.3
, warp >=3.2.25 && <3.4
, http-client

View file

@ -1,6 +1,51 @@
[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-server/CHANGELOG.md)
[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
0.17
----
### Significant changes
- Add NoContentVerb [#1028](https://github.com/haskell-servant/servant/issues/1028) [#1219](https://github.com/haskell-servant/servant/pull/1219) [#1228](https://github.com/haskell-servant/servant/pull/1228)
The `NoContent` API endpoints should now use `NoContentVerb` combinator.
The API type changes are usually of the kind
```diff
- :<|> PostNoContent '[JSON] NoContent
+ :<|> PostNoContent
```
i.e. one doesn't need to specify the content-type anymore. There is no content.
- `Capture` can be `Lenient` [#1155](https://github.com/haskell-servant/servant/issues/1155) [#1156](https://github.com/haskell-servant/servant/pull/1156)
You can specify a lenient capture as
```haskell
:<|> "capture-lenient" :> Capture' '[Lenient] "foo" Int :> GET
```
which will make the capture always succeed. Handlers will be of the
type `Either String CapturedType`, where `Left err` represents
the possible parse failure.
- *servant-server* use queryString to parse QueryParam, QueryParams and QueryFlag [#1249](https://github.com/haskell-servant/servant/pull/1249) [#1262](https://github.com/haskell-servant/servant/pull/1262)
Some APIs need query parameters rewriting, e.g. in order to support
for multiple casing (camel, snake, etc) or something to that effect.
This could be easily achieved by using WAI Middleware and modyfing
request's `Query`. But QueryParam, QueryParams and QueryFlag use
`rawQueryString`. By using `queryString` rather then `rawQueryString`
we can enable such rewritings.
- *servant* *servant-server* Make packages `build-type: Simple` [#1263](https://github.com/haskell-servant/servant/pull/1263)
We used `build-type: Custom`, but it's problematic e.g.
for cross-compiling. The benefit is small, as the doctests
can be run other ways too (though not so conviniently).
0.16.2
------

View file

@ -1,6 +1,6 @@
cabal-version: >=1.10
name: servant-server
version: 0.16
version: 0.17
synopsis: A family of combinators for defining webservices APIs and serving them
category: Servant, Web

View file

@ -1,5 +1,107 @@
[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
0.17
----
### Significant changes
- Add NoContentVerb [#1028](https://github.com/haskell-servant/servant/issues/1028) [#1219](https://github.com/haskell-servant/servant/pull/1219) [#1228](https://github.com/haskell-servant/servant/pull/1228)
The `NoContent` API endpoints should now use `NoContentVerb` combinator.
The API type changes are usually of the kind
```diff
- :<|> PostNoContent '[JSON] NoContent
+ :<|> PostNoContent
```
i.e. one doesn't need to specify the content-type anymore. There is no content.
- `Capture` can be `Lenient` [#1155](https://github.com/haskell-servant/servant/issues/1155) [#1156](https://github.com/haskell-servant/servant/pull/1156)
You can specify a lenient capture as
```haskell
:<|> "capture-lenient" :> Capture' '[Lenient] "foo" Int :> GET
```
which will make the capture always succeed. Handlers will be of the
type `Either String CapturedType`, where `Left err` represents
the possible parse failure.
- *servant-client* Added a function to create Client.Request in ClientEnv [#1213](https://github.com/haskell-servant/servant/pull/1213) [#1255](https://github.com/haskell-servant/servant/pull/1255)
The new member `makeClientRequest` of `ClientEnv` is used to create
`http-client` `Request` from `servant-client-core` `Request`.
This functionality can be used for example to set
dynamic timeouts for each request.
- *servant-server* use queryString to parse QueryParam, QueryParams and QueryFlag [#1249](https://github.com/haskell-servant/servant/pull/1249) [#1262](https://github.com/haskell-servant/servant/pull/1262)
Some APIs need query parameters rewriting, e.g. in order to support
for multiple casing (camel, snake, etc) or something to that effect.
This could be easily achieved by using WAI Middleware and modyfing
request's `Query`. But QueryParam, QueryParams and QueryFlag use
`rawQueryString`. By using `queryString` rather then `rawQueryString`
we can enable such rewritings.
- *servant* *servant-server* Make packages `build-type: Simple` [#1263](https://github.com/haskell-servant/servant/pull/1263)
We used `build-type: Custom`, but it's problematic e.g.
for cross-compiling. The benefit is small, as the doctests
can be run other ways too (though not so conviniently).
- *servant* Remove deprecated modules [1268#](https://github.com/haskell-servant/servant/pull/1268)
- `Servant.Utils.Links` is `Servant.Links`
- `Servant.API.Internal.Test.ComprehensiveAPI` is `Servant.Test.ComprehensiveAPI`
### Other changes
- *servant-client* *servant-client-core* *servant-http-streams* Fix Verb with headers checking content type differently [#1200](https://github.com/haskell-servant/servant/issues/1200) [#1204](https://github.com/haskell-servant/servant/pull/1204)
For `Verb`s with response `Headers`, the implementation didn't check
for the content-type of the response. Now it does.
- *servant-docs* Merge documentation from duplicate routes [#1240](https://github.com/haskell-servant/servant/issues/1240) [#1241](https://github.com/haskell-servant/servant/pull/1241)
Servant supports defining the same route multiple times with different
content-types and result-types, but servant-docs was only documenting
the first of copy of such duplicated routes. It now combines the
documentation from all the copies.
Unfortunately, it is not yet possible for the documentation to specify
multiple status codes.
- Add sponsorship button [#1190](https://github.com/haskell-servant/servant/pull/1190)
[Well-Typed](https://www.well-typed.com/) is a consultancy which could help you with `servant` issues
(See consultancies section on https://www.servant.dev/).
- Try changelog-d for changelog management [#1230](https://github.com/haskell-servant/servant/pull/1230)
Check the [CONTRIBUTING.md](https://github.com/haskell-servant/servant/blob/master/CONTRIBUTING.md) for details
- CI and testing tweaks. [#1154](https://github.com/haskell-servant/servant/pull/1154) [#1157](https://github.com/haskell-servant/servant/pull/1157) [#1182](https://github.com/haskell-servant/servant/pull/1182) [#1214](https://github.com/haskell-servant/servant/pull/1214) [#1229](https://github.com/haskell-servant/servant/pull/1229) [#1233](https://github.com/haskell-servant/servant/pull/1233) [#1242](https://github.com/haskell-servant/servant/pull/1242) [#1247](https://github.com/haskell-servant/servant/pull/1247) [#1250](https://github.com/haskell-servant/servant/pull/1250) [#1258](https://github.com/haskell-servant/servant/pull/1258)
We are experiencing some bitrotting of cookbook recipe dependencies,
therefore some of them aren't build as part of our CI anymore.
- New cookbook recipes [#1088](https://github.com/haskell-servant/servant/pull/1088) [#1171](https://github.com/haskell-servant/servant/pull/1171) [#1198](https://github.com/haskell-servant/servant/pull/1198)
- [OIDC Recipe](#TODO)
- [MySQL Recipe](#TODO)
- *servant-jsaddle* Progress on servant-jsaddle [#1216](https://github.com/haskell-servant/servant/pull/1216)
- *servant-docs* Prevent race-conditions in testing [#1194](https://github.com/haskell-servant/servant/pull/1194)
- *servant-client* *servant-http-streams* `HasClient` instance for `Stream` with `Headers` [#1170](https://github.com/haskell-servant/servant/issues/1170) [#1197](https://github.com/haskell-servant/servant/pull/1197)
- *servant* Remove unused extensions from cabal file [#1201](https://github.com/haskell-servant/servant/pull/1201)
- *servant-client* Redact the authorization header in Show and exceptions [#1238](https://github.com/haskell-servant/servant/pull/1238)
- Dependency upgrades [#1173](https://github.com/haskell-servant/servant/pull/1173) [#1181](https://github.com/haskell-servant/servant/pull/1181) [#1183](https://github.com/haskell-servant/servant/pull/1183) [#1188](https://github.com/haskell-servant/servant/pull/1188) [#1224](https://github.com/haskell-servant/servant/pull/1224) [#1245](https://github.com/haskell-servant/servant/pull/1245) [#1257](https://github.com/haskell-servant/servant/pull/1257)
- Documentation updates [#1162](https://github.com/haskell-servant/servant/pull/1162) [#1174](https://github.com/haskell-servant/servant/pull/1174) [#1175](https://github.com/haskell-servant/servant/pull/1175) [#1234](https://github.com/haskell-servant/servant/pull/1234) [#1244](https://github.com/haskell-servant/servant/pull/1244) [#1247](https://github.com/haskell-servant/servant/pull/1247)
0.16.2
------

View file

@ -1,6 +1,6 @@
cabal-version: >=1.10
name: servant
version: 0.16
version: 0.17
synopsis: A family of combinators for defining webservices APIs
category: Servant, Web
@ -74,11 +74,6 @@ library
exposed-modules:
Servant.Links
-- Deprecated modules, to be removed in late 2019
exposed-modules:
Servant.Utils.Links
Servant.API.Internal.Test.ComprehensiveAPI
-- Bundled with GHC: Lower bound to not force re-installs
-- text and mtl are bundled starting with GHC-8.4
--

View file

@ -1,6 +0,0 @@
module Servant.API.Internal.Test.ComprehensiveAPI
{-# DEPRECATED "Use Servant.TestComprehensiveAPI" #-}
( module Servant.Test.ComprehensiveAPI )
where
import Servant.Test.ComprehensiveAPI

View file

@ -1,6 +0,0 @@
module Servant.Utils.Links
{-# DEPRECATED "Use Servant.Links." #-}
( module Servant.Links )
where
import Servant.Links