Commit graph

174 commits

Author SHA1 Message Date
Gaël Deest
575aa70eca Cleanup 2021-11-18 10:11:45 +01:00
Gaël Deest
b0b02f1948 Implement HasServer (NamedRoutes routes)
We define `ServerT (NamedRoutes api) m` as `api (AsServerT m)`, so that
the server of an record-defined API is a record of handlers.

The implementation piggy backs on the instance for “vanilla” servant
types with `(:<|>)`, using the `GServantProduct` for converting backd
and forth between the record / vanilla servers.

The main difficulty is that GHC needs to know that this operation is
legit, which can be expressed as the fact that:

```
GToServant (Rep (ServerT (NamedRoutes api))) m ~
ServerT (GToServant (Rep (api AsApi))) m
```

plus a few additional constraints.

This is easy enough for `route`, as we know that `m ~ Handler`. But in
the case of `hoistServerWithContext`, the two involved monads are
unknown ; in other words, this constraint needs to hold `forall m.`

Switching `-XQuantifiedConstraints` on is not sufficient, as our
constraints involve type families (`Rep` and `ServerT`). Our trick is to
use an intermediary typeclass, `GServer`, as a provider of evidence (in
the form of a `Dict`) that our constraints are indeed satisfied for a
particular monad.

The only instance of `GServer` is defined along with it, so it is
practically invisible to users.
2021-11-18 10:09:58 +01:00
Théophile Choutri
4e4ad495ef Change the license value to a valid SPDX identifier 2021-10-31 22:37:56 +01:00
akhesacaro
e56f0092d7 remove tested-with (GHC < 8.6.5) from cabal 2021-10-02 13:13:33 +02:00
Maxim Koltsov
e2b897d3c0
Prepare 0.18.3 release (#1430) 2021-06-24 00:38:46 +03:00
Maxim Koltsov
61111178f0
Support GHC-9.0.1 2021-06-23 23:06:07 +02:00
Paolo Capriotti
0f9cc7eeec
Add response header support to UVerb (#1420)
* Use type wrapped in Headers h to generate response

This avoids having to define MimeRender instances for Headers.
2021-06-10 17:10:50 +02:00
Maxim Koltsov
507f0a4671
Allow hspec < 2.9
https://github.com/commercialhaskell/stackage/issues/6010
2021-05-14 12:34:04 +03:00
Bodigrim
27173c9223
Allow bytestring-0.11 (#1386) 2020-12-16 11:04:49 +01:00
Philipp Balzarek
7675e725d2
Bump base64-bytestring limit to 1.3 (#1382) 2020-12-11 00:32:16 +01:00
Maxim Koltsov
0ad2bd221a
Prepare 0.18.2 release (#1364) 2020-11-22 17:51:32 +03:00
Felix Yan
1d0b34df50
Allow QuickCheck 2.14 (#1359)
Builds fine and all tests pass.
2020-11-22 11:07:54 +01:00
Maxim Koltsov
4c72c08830
Update inter-library version constraints 2020-11-05 10:48:38 +03:00
Maxim Koltsov
bd698cad3b
Bump version in preparation for new release 2020-11-04 17:06:51 +03:00
Maxim Koltsov
9e4a97eb78
Loosen upper bound on wai-extra 2020-11-04 15:11:15 +03:00
fisx
c1105899f4
union verbs (#1314) 2020-10-31 20:45:46 +01:00
fisx
64f3543034
bump "tested-with" ghc versions. (#1350) 2020-10-25 14:24:06 +01:00
Felix Yan
264846a61f
Allow hspec-wai 0.11 (#1343)
Builds fine and all tests pass.
2020-10-01 10:16:27 +02:00
Felix Yan
b4b649c8f4
Allow http-api-data 0.4.2
Builds fine and all tests pass here.
2020-08-30 15:26:48 +08:00
Matthias Fischmann
858fb6cce5
Fix: remove x-revision from servant-server.cabal. 2020-07-31 20:25:31 +02:00
Maxim Koltsov
43cf589e0e
Bump version to 0.18 2020-07-30 19:03:58 +03:00
Maxim Koltsov
cb0224d063
Add 8.10.1 to tested-with, haskell-ci regenerate 2020-07-17 17:17:45 +03:00
Maxim Koltsov
1a09b1d3a4
Update GHC 8.8.x versions to 8.8.3 2020-07-17 17:10:31 +03:00
Maxim Koltsov
57f0b0b390
Make error messages from combinators configurable
Currently there is no way for Servant users to customize formatting of
error messages that arise when combinators can't parse URL or request
body, apart from reimplementing those combinators for themselves or
using middlewares.

This commit adds a possibility to specify custom error formatters
through Context.

Fixes #685
2020-07-17 17:10:31 +03:00
Leif Warner
0530671ad6
Allow newer versions of base, template-haskell, lens, & unliftio-core 2020-07-03 06:57:52 +02:00
Felix Yan
4b225c23d7
Allow aeson 1.5 in all components (#1309) 2020-06-12 15:02:39 -04:00
Jan Hrcek
b9d8fbcdc1
Fix typos and grammar (#1304)
* Fix typos and grammar

* Remove redundant words, fix articles

* More language fixes

* More typo fixes and resolve TODO about missing links
2020-06-06 00:43:51 -04:00
Felix Yan
a221320f5a
Allow base64-bytestring 1.1
Builds fine and all tests pass here.
2020-04-26 11:35:01 +08:00
Oleg Grenrus
c15f550e1f Incorrect lower bound in servant-server 2020-01-23 22:26:02 +02:00
Oleg Grenrus
3bf4b100a8 Bump version to 0.17 2020-01-23 12:50:07 +02:00
Oleg Grenrus
d29b0cc8f1 Use GHC-8.8.2 on Travis 2020-01-21 16:52:20 +02:00
Oleg Grenrus
524b07224f Change build-type: Simple; run doctests on CI via haskell-ci
Don't use hspec-discover in tutorial,
so doctests work on CI
2020-01-10 01:07:31 +02:00
Oleg Grenrus
f7d5c0149f Allow warp-3.3 in master 2019-12-15 01:57:29 +02:00
Oleg Grenrus
f089f8d0b2 Relax bounds for ghc-8.8 2019-09-29 00:43:53 +03:00
Oleg Grenrus
ecbc04bbee Regenerate .travis.yml; GHC-8.6.5; add GHCJS 2019-09-07 14:03:46 +03:00
Oleg Grenrus
612038585a Allow newer network, semigroups, hashable, machines 2019-05-28 15:27:52 +03:00
Felix Yan
91520e20ef Allow http-api-data 0.4.1
Builds fine and all tests pass here.
2019-05-28 17:44:08 +08:00
Oleg Grenrus
ec5574b3b7 Allow http-media-0.8 and QuickCheck-2.13 2019-04-16 13:07:28 +03:00
Oleg Grenrus
e52e11a0ad Use ghc-8.6.4 on travis 2019-03-06 12:39:18 +02:00
Alp Mestanogullari
a386dd2095 point to www.servant.dev (website) and docs.servant.dev (self-explanatory) 2019-03-02 10:08:03 +01:00
Oleg Grenrus
b17c8bb8bd It's year 2019 2019-02-27 18:13:35 +02:00
Oleg Grenrus
48c5cc96a2 Split RouteApplication mega-module 2019-02-27 15:06:56 +02:00
Oleg Grenrus
58b401558d Bump versions to 0.16 2019-02-20 19:06:10 +02:00
Oleg Grenrus
a5655f8d5a Rename ServantError to ClientError, ServantErr to ServerError 2019-02-18 22:51:09 +02:00
Oleg Grenrus
525b74c6f4 Update travis once again
- Update GHC-8.6.2 to GHC-8.6.3
- Build cookbook only with GHC-8.4.4 and GHC-8.6.3, thus
  making 8.0 and 8.2 jobs a little faster
2019-02-12 01:33:30 +02:00
Oleg Grenrus
b685efecbe Allow network-3.0 2019-01-23 02:20:16 +02:00
Oleg Grenrus
3b8db040f3 http-api-data-0.4 2018-11-13 17:21:29 +02:00
Oleg Grenrus
a1a99552b5 Changelog and cabal file edits
- Add #1079, #1011 entry
- Stricter internal dependencies
- Unify .cabal files
- Correct -conduit, -machines, -pipes changelog
- Fix years in LICENSEs
- Remove tinc.yamls
- Tweaks to 0.15 changelog
- Add changelogs for all packages
- Add changelogs for new packages (extra-source-files)
2018-11-13 09:58:42 +02:00
Oleg Grenrus
5f947d1c43 Bump version numbers
- Almost everything 0.15; also servant-foreign jumped to 0.15, for
  consistency
- Bump lower bounds of dependencies to most recent versions atm
- Use hspec-2.6.0
- Update `stack.yaml` accordingly
- Use base-compat a bit more
- Drop aeson-compat dependency (in tests and tutorial)
2018-11-09 20:20:26 +02:00
Oleg Grenrus
4195fd04d4 tested-with: GHC==8.6.2 2018-11-09 17:41:00 +02:00