Commit graph

403 commits

Author SHA1 Message Date
Oleg Grenrus
45c1cbdfd5 Refactor Stream stuff
- Introduce SourceT, which is simple variant of "correct `ListT`".
  There are another variants possible (like in `streaming`),
  but I'm not sure there's much real difference.

- Introduce `Codensity`. There's a flag if people don't want to depend
  on `kan-extensions`.

- `StreamGenerator` and `ResultStream` are both `SourceT`.
  `Stream` combinator in `servant-client` uses `Codensity` for CPS.

- Add servant-machines, servant-conduit, servant-pipes
- Add streaming cookbook: just code, no explanations.
- Add a script to run streaming 'benchmarks'
2018-11-05 15:48:47 +02:00
Moritz Kiefer
95e66fa398 Add MonadMask instance for Handler 2018-11-03 21:41:23 +01:00
Kostiantyn Rybnikov
5620d2d781 Rename one function, run custom monad code from main 2018-10-26 13:05:46 +03:00
Kostiantyn Rybnikov
c1e15ef4c3 genericServeT and docs on using a custom monad with generics 2018-10-26 13:05:46 +03:00
Oleg Grenrus
a4151acf9e Enable testing recipe 2018-10-25 23:16:16 +03:00
Oleg Grenrus
788e0248f1 8.4.4 job 2018-10-15 18:15:52 +03:00
Colin Woodbury
ef573bab0e
Update tested-with fields 2018-10-07 10:44:41 -07:00
Colin Woodbury
dec0636611
Update bounds for GHC 8.6 2018-10-07 10:38:36 -07:00
Maximilian Huber
81f4db6c5c fix minor typo in deprecation warning 2018-08-04 17:16:02 +02:00
Oleg Grenrus
cfade67c2f Cleanup pre-GHC-8.0 stuff 2018-07-11 01:39:38 +03:00
Oleg Grenrus
5ba0e439dc Support only GHC-8.0+
Let's bump lower bounds to whatever is in LTS close to release date.
2018-07-10 17:17:56 +03:00
Oleg Grenrus
88f8d3b0d1 Merge servant-generic 2018-07-05 23:21:25 +03:00
Oleg Grenrus
374a7b88fb Deprecate S.Utils.StaticFiles in favor of S.Server.StaticFiles 2018-07-05 23:20:59 +03:00
Oleg Grenrus
f9bcc15d0b Apply stylish-haskell on all modules 2018-06-29 23:36:39 +03:00
Oleg Grenrus
2c02287b6b Move Servant.Utils.Links -> Servant.Links. Fixes #997. 2018-06-25 14:27:17 +03:00
Oleg Grenrus
e1850175f7 Add changelogs to other packages 2018-06-19 21:23:28 +03:00
Oleg Grenrus
f75583dbf1 Bump some lower bounds
Also drop unused dependencies
2018-06-19 21:23:17 +03:00
Oleg Grenrus
6a1fa67fc4 Bump up versions 2018-06-12 19:27:13 +03:00
Oleg Grenrus
cc273f2d8b Allow aeson-1.4 2018-06-12 14:04:45 +03:00
Jonathan Lange
972ed49dd4 Run captureAllSpec
This was missed due to an oversight.
2018-06-10 17:38:22 +01:00
Oleg Grenrus
1614ca59bf Add test for Stream status setting 2018-06-09 09:37:05 +03:00
Oleg Grenrus
f53370b361
Merge pull request #966 from jvanbruegge/stream-code
Allow to specify a status for streaming endpoints
2018-06-09 08:42:54 +03:00
Oleg Grenrus
0b084afe62 Update .travis.yml
- Disable file-upload recipe (changed MkLink breaks released
  servant-multipart)
- GHC-8.4.2 -> GHC-8.4.3
2018-06-01 13:42:34 +03:00
Jan van Brügge
dbbe9b7321 Allow to specify the status of streaming endpoints 2018-05-28 12:00:29 +02:00
Oleg Grenrus
a66aa8a981
Merge pull request #959 from jvanbruegge/fix-stream
Change definition of StreamGenerator
2018-05-28 09:26:53 +03:00
Oleg Grenrus
c56fda3869 Support GHC-8.4.1 and newer deps 2018-05-26 01:06:36 +03:00
Jan van Brügge
0ba09c999b Change definition of StreamGenerator 2018-05-24 05:08:48 +02:00
Alp Mestanogullari
fd21e92cf2 servant-server: make file-serving functions polymorphic in the monad 2018-04-25 15:12:32 +02:00
Oleg Grenrus
7d4293fb56 Bump hspec, doctest and transformers-compat 2018-04-11 11:34:16 +03:00
Oleg Grenrus
fc12109514 Allow temporary-1.3 2018-04-11 11:28:08 +03:00
Oleg Grenrus
dd7ec1dfd7 Allow base-compat-0.10.0 2018-04-11 11:26:14 +03:00
Giovanni Cappellotto
92f8d2314e Update request content-type handling
In case that a sub-server doesn't support the content-type specified
in the request invoke `delayedFail` instead of `delayedFailFatal` in
order to give the chance to other sub-servers to handle the request.
2018-04-04 18:53:40 -04:00
Julian K. Arni
4824fbd961 Bump exceptions upper bound. 2018-03-13 11:07:44 +01:00
Emmanuel Touzery
7423ca3924 relax the aeson constraint, allow 1.3.0.0, fixes https://github.com/fpco/stackage/issues/3337 2018-03-09 20:26:03 +01:00
Oleg Grenrus
3e1748c965 Add description modifier helpers and parametrise Capture 2018-02-15 12:28:42 +02:00
Oleg Grenrus
56a72d7d48 Add changelog and bump versions 2018-02-08 15:17:48 +02:00
Oleg Grenrus
77600e661b Support resourcet-1.2 2018-02-08 11:27:38 +02:00
Oleg Grenrus
c55b778d8e Bump lower bound of http-types >= 0.12
- WIP: pending http-api-data release
- TODO: remove MIN_VERSION_http_types
- There have been 3 major releases of http-types:
  - 0.10 change name of variable
  - 0.11 lowercase escaped URIs
  - 0.12 uppercase escaped URIs
- It's easier for us to support only latest, migration from 0.9/0.10 to 0.12
  is trivial for the downstream. 0.11 may cause semantic (non-type-error) breakage somewhere.

Also allow lens-4.16, remove MIN_VERSION_http_types conditionals, and
update `stack.yaml`
2018-01-30 11:29:25 +02:00
Oleg Grenrus
22ec980f6e Update hlint.yaml and fix some hints in servant and servant-server 2018-01-26 17:38:57 +02:00
Oleg Grenrus
f9963d32ff Bump lower bounds in rest of packages 2018-01-25 17:17:35 +02:00
Oleg Grenrus
bc3f61d615 Add Servant.API.Modifiers to servant
Changes Header, ReqBody and QueryParam to take a modifier list.

Resolves https://github.com/haskell-servant/servant/issues/856

ResponseHeader story turns to be somewhat ugly, but it can be made
elegant when https://github.com/haskell-servant/servant/issues/841 is
implemnted, then we can omit HList aka Header Heterogenous List
implementation.

- servant-server changes:

  Writing server side intepretations is quite simple using
  `unfoldRequestArgument`, which makes Header and QueryParam look quite
  the same.

  `ReqBody` cannot be easily made optional with current design (what that
  would mean: No Content-Type Header?), so that dimensions isn't used
  there.

- Add HasLink for all the rest ComprehensiveAPI combinators
- Add 'tricky' Header', QueryParam' endpoints to ComprehensiveAPI
- servant-docs: Quick'n'dirty implementation. Don't use modifiers information (yet).
2018-01-25 09:10:11 +02:00
Oleg Grenrus
6533d4bee5 Void -> TypeError
This doesn't work on GHC-8.0. I have trouble finding a ticket though.
See
https://ghc.haskell.org/trac/ghc/wiki/Proposal/CustomTypeErrors#DesignquestionsRAE
2018-01-22 18:40:23 +02:00
Oleg Grenrus
43895c83f9 Add two HasServer instances which won't ever exist
Resolves https://github.com/haskell-servant/servant/issues/887
2018-01-20 18:35:57 +02:00
Oleg Grenrus
3c7e7775fe Fix travis, disallow memory-0.14.12
Also remove duplicate bug-reports field
2018-01-17 20:33:49 +02:00
Oleg Grenrus
ccf0056f64 Regenerate .travis.yml 2017-12-10 14:27:40 +02:00
Oleg Grenrus
8f62f81ed9 Allow http-types-0.11 and hspec-wai-0.9 2017-12-10 13:27:45 +02:00
Oleg Grenrus
cbd3862f24
Merge pull request #836 from gbaz/gb-streaming
Stream endpoint support for servant
2017-12-03 17:19:47 +02:00
Oleg Grenrus
a4b69d432b Add HoistSpec to other-modules of spec 2017-11-07 14:12:19 +02:00
Oleg Grenrus
018f0e082e Bump versions and update changelogs.
The changelog for `servant` contains changes across core packages,
as we release them as a suite.

Also added links to the GitHub master as we might update entries
for old versions, as changelogs are written by humans.
2017-11-06 11:24:48 +02:00
Gershom
b704d3c067 fixup cabal from bad merge 2017-11-04 00:20:50 -04:00
Gershom
85cf8d1c60 Merge branch 'master' into gb-streaming 2017-11-04 00:15:35 -04:00
gbaz
da98c94e2f refactor servant.server.internal to consolidate functions (#837)
refactor servant.server.internal to consolidate functions
2017-10-28 20:17:24 +02:00
Oleg Grenrus
b45e94de19 cabal new-build based .travis.yml 2017-10-25 18:15:02 +03:00
Oleg Grenrus
76616de601 Allow http-types-0.10 2017-10-25 12:56:12 +03:00
Oleg Grenrus
09485871f5 Adopt http-types-0.10 2017-10-23 08:59:36 +03:00
Oleg Grenrus
2d6bf5055b Improve .cabal files
- Add build-tool-depends, so new-build can use hspec-discover
- Add mtl bounds in tutorial (and dependency on mtl-compact)
- Add extra-source-files to tutorial, so it's buildable from sdist
2017-10-23 08:58:39 +03:00
Gershom
9a2ac6f4dd HasClient instance for Stream 2017-10-20 15:09:11 -04:00
Gershom
d4168aa3ae first round of changes 2017-10-19 17:41:49 -04:00
Gershom
c5e04514f9 initial checkin 2017-10-18 18:43:43 -04:00
Oleg Grenrus
15cc4f55dd Update docs related to hoistServer 2017-10-01 20:24:22 +03:00
Vaibhav Sagar
1a10972904 Update servant-server/src/Servant/Server/Internal.hs
s/taylor/tailor
2017-09-17 11:40:12 +08:00
Oleg Grenrus
24af338dea Add hoistServer to HasServer 2017-09-14 12:04:34 +03:00
Oleg Grenrus
50be3a263b Merge pull request #767 from fierce-katie/docs-combinators
Description and Summary combinators
2017-08-16 15:31:12 +03:00
Oleg Grenrus
213620e56a Fix cabal category 2017-07-25 10:46:57 +03:00
Catherine Galkina
be0878cdd8 Fix tests for different GHC versions 2017-06-19 18:58:25 +03:00
Catherine Galkina
272e47c3d3 Increase stack size for GHC-7.8.4 tests 2017-06-19 14:59:26 +03:00
Catherine Galkina
ec0431d930 Add instances for new combinators 2017-06-08 18:27:36 +03:00
Oleg Grenrus
8959d61173 GHC-8.2.1 stack.yaml 2017-06-07 17:29:15 +03:00
Oleg Grenrus
705285209a Remove parentheses in ContextSpec 2017-06-03 21:44:40 +03:00
Catherine Galkina
1c6927d3f5 Fix tests for servant-server 2017-06-02 18:47:28 +03:00
Oleg Grenrus
cc13d62c8c Use #warning in Setup.lhs 2017-05-24 10:22:01 +03:00
Oleg Grenrus
b6cfd64b5a GHC-8.2 readyness 2017-05-24 08:02:57 +03:00
Oleg Grenrus
ec930ac9a8 Release 0.11 2017-05-24 08:02:56 +03:00
David Turner
a3c5f17749 Generalise type of emptyServer so it can be Entered 2017-05-17 05:17:08 +00:00
David Turner
f3ac10a1c4 Add missing DeriveDataTypeable 2017-05-16 16:26:47 +00:00
David Turner
f5d9983381 Rename emptyAPIServer to emptyServer 2017-05-16 15:59:41 +00:00
David Turner
6feb27e7b2 Rename EmptyAPIServer to EmptyServer and add deriving clause 2017-05-16 15:53:19 +00:00
David Turner
62560079b1 Add docs for serving an EmptyAPI 2017-05-16 11:09:54 +00:00
David Turner
937a5c98fd Add test for emptyAPIServer 2017-05-16 10:18:57 +00:00
David Turner
94483d586c Add instance HasServer EmptyAPI 2017-05-16 10:06:25 +00:00
Alexander Vieth
6389134423 Change to ServerT Raw m = Tagged m Application
For uniformity of Enter.

Previously, `ServerT Raw m ~ Application`. Seems reasonable, but has the
unfortunate consequence of making `Enter` useless for `Raw` routes.
With this change `Tagged m Application` is retagged by `Enter`.
2017-05-15 19:54:43 +03:00
Jack Kelly
f52bd11d6b Servant.Server: Re-export missing error codes 2017-05-05 18:39:01 +10:00
Oleg Grenrus
d0048057cd Merge pull request #736 from phadej/entered
Redo Enter
2017-05-05 10:17:34 +03:00
Oleg Grenrus
f26a2d10c5 Merge pull request #724 from Philonous/header-parsing
Throw 400 on header parse failure
2017-05-05 10:17:18 +03:00
Oleg Grenrus
e2665391f9 Redo Enter 2017-04-28 14:31:57 +03:00
Oleg Grenrus
e49d491164 Allow aeson-1.2 2017-04-17 21:35:20 +03:00
Philipp Balzarek
b3c1f95636 update CHANGELOG.md 2017-04-06 14:53:01 +02:00
Philipp Balzarek
08786aadbe Check for parse errors in HasServer Header instance 2017-04-06 14:52:55 +02:00
Oleg Grenrus
8a3ecb2ebc Classify changelog into breaking and other changes 2017-02-01 09:06:30 +02:00
Oleg Grenrus
736918a694 Tweaks for 0.10 (#694)
* Add Servant category to in-repo packages

* Add version table
2017-01-30 19:12:39 +02:00
Oleg Grenrus
2fd97570f0 Update changelog for 0.10 (#691) 2017-01-30 08:45:58 +02:00
Oleg Grenrus
93df8d22df Bump version to 0.10 2017-01-26 20:10:01 +02:00
Oleg Grenrus
7ac095f19a Add test illustating that query params don't affect router grouping 2017-01-19 23:07:11 +02:00
Oleg Grenrus
58e931f48a Resolve todos 2017-01-19 11:26:50 +02:00
Philipp Balzarek
a61551b87f update servant-server CHANGELOG.md 2017-01-19 11:09:30 +02:00
Philipp Balzarek
3a0cbdd0f6 throw 400 on query parameter parse failure 2017-01-19 11:09:30 +02:00
Oleg Grenrus
6527937e27 More robust testing, via resource state machine 2017-01-19 00:57:31 +02:00
Oleg Grenrus
d4fe0e582a Fix stylistic issues 2017-01-19 00:57:31 +02:00
Oleg Grenrus
2caabad61a Expose ResourceT, fix the test 2017-01-19 00:57:31 +02:00
Oleg Grenrus
091f6f4412 Add failing test 2017-01-19 00:57:31 +02:00
Oleg Grenrus
bc6ff20f4d Use resourcet for resource managment 2017-01-19 00:57:31 +02:00
Oleg Grenrus
7793b52d23 Change JSON content type to add the charset 2017-01-18 13:40:18 +02:00
Oleg Grenrus
60ee1ab570 Rewrite delayed cleanup tests using IORefs 2017-01-18 10:26:23 +02:00
Alp Mestanogullari
bc13d5cd3e warning free 2017-01-17 23:10:29 +02:00
Alp Mestanogullari
92786feead add some basic tests for the cleanup machinery in Delayed 2017-01-17 22:29:37 +02:00
Alp Mestanogullari
5d1f03ba1a use an ioref to store clean up actions instead of a field in Delayed, allowing early clean up registration 2017-01-17 22:29:37 +02:00
Alp Mestanogullari
7fb11dae3c make cleanup in Delayed more resistant to exceptions 2017-01-17 22:29:37 +02:00
Alp Mestanogullari
6ab0296d62 fix a warning 2017-01-17 22:29:37 +02:00
Alp Mestanogullari
124c6de1eb add a field in Delayed that lets us specify a clean up action that can use the result of bodyD to perform some IO clean up operation 2017-01-17 22:29:36 +02:00
Alp Mestanogullari
57445ac1c9 changelog entry 2017-01-17 14:15:32 +02:00
Alp Mestanogullari
6d35f3d88f reintroduce serveDirectory (to give some time to users to change their code), but deprecate it 2017-01-17 14:14:46 +02:00
Alp Mestanogullari
0a3b2272de fix static file serving test 2017-01-17 14:14:46 +02:00
Alp Mestanogullari
8efabed5c6 Revamp static file serving module.
Instead of only exposing 'serveDirectory', which picks a specific static file
serving strategy (file server settings), we now expose 4 different variants each
corresponding to an variant of StaticSettings in wai-app-static.

In addition to these, we expose a more flexible 'serveDirectoryWith' function
which allows the user to specify some arbitrary StaticSettings, if the 4
existing variants do not cover a user's needs.
2017-01-17 14:14:46 +02:00
Oleg Grenrus
5168157757 Make Handler a newtype 2017-01-16 12:18:49 +02:00
Oleg Grenrus
d5e73bf577 Make servant buildable with cabal new-build 2017-01-16 11:03:06 +02:00
Oleg Grenrus
e6206cc51e Add more changelog entries 2017-01-16 10:11:38 +02:00
Oleg Grenrus
85feb31cbb Fix hspec-wai issue 2017-01-01 20:52:18 +02:00
Oleg Grenrus
1f00a68937 Support aeson-1.1 2017-01-01 20:02:56 +02:00
Yusuke Sangenya
d2a51396cc add HTTP status code 422 2016-12-03 16:44:34 +09:00
Julian K. Arni
4fd31a60fb Bump version.
To 0.9.1.1
2016-10-27 13:25:27 +02:00
Julian K. Arni
9e809a0756 Bump version.
To 0.9.1.
2016-10-26 17:35:57 +02:00
Sönke Hahn
3f6ecbb77b add err418 2016-10-24 10:42:48 -04:00
Julian K. Arni
3ddf225cec Bump version.
To 0.9.0.1.
2016-10-09 22:52:49 +02:00
Sönke Hahn
bc1a3e7faa bump version 2016-09-17 11:47:57 -04:00
Julian K. Arni
501212e6b9 Review fixes 2016-09-12 20:40:03 -03:00
Oleg Grenrus
f44b336bf1 Support http-api-data-0.3 2016-09-12 18:34:00 -03:00
Julian Arni
29af0bbdf9 Merge pull request #585 from axman6/axman6/get-headers-581
Replace use of ToByteString with HttpApiData for GetHeaders
2016-09-06 20:59:46 -03:00
Julian K. Arni
bf824a3889 Bump version to 0.8.1 2016-09-02 13:09:47 -03:00
Alex Mason
5bef76ed03 Remove all use of bytestring-conversion 2016-09-02 23:27:37 +10:00
Sönke Hahn
d0a28e46b0 add missing test file to servant-server.cabal 2016-08-14 22:59:12 +02:00
Oleg Grenrus
6999b00297 Support aeson-1 2016-08-07 20:12:09 +03:00
Jonathan Lange
c79a254b36 servant-server support for CaptureAll 2016-07-11 14:46:31 +01:00
Sönke Hahn
8eb412ff23 bump version 2016-07-10 17:21:36 +02:00
Arian van Putten
05379ed7e3 Replace all occurances of () with NoContent
We use NoContent to signify an empty response nowadays. This commit
replaces all occurences of () with NoContent so that all packages use
the new semantics.
2016-07-10 16:58:59 +02:00
Oleg Grenrus
a7a3294752 Add bounds to servant, servant-server and servant-clients
(cherry picked from commit a0d5ed9aea)
2016-07-09 18:33:19 +02:00
Sönke Hahn
5effdfdbbb Rename type variables 'layout' and 'sublayout' to 'api' 2016-07-03 22:46:46 +08:00
Sönke Hahn
3c27ff5a32 added test script for stack files (and fixed stack for ghc-7.8) 2016-05-29 00:03:46 +08:00
Julian Arni
ea36656dcd Merge pull request #505 from haskell-servant/jkarni/reexport-application
Re-export Application.
2016-05-12 10:38:46 +02:00
Julian Arni
ff40b327bc Merge pull request #504 from haskell-servant/jkarni/doc-fixes
Doc fixes
2016-05-12 09:53:35 +02:00
Julian K. Arni
211254512e Re-export Application. 2016-05-11 12:17:36 +02:00
Sönke Hahn
d8a4cce691 version bump 2016-05-11 12:09:25 +08:00
Julian K. Arni
7174f5185d Changelog updates for GHC 8.0 support. 2016-05-10 22:45:29 +02:00
Oleg Grenrus
a5cf899eb8 Add RouterSpec and StreamingSpec to servant-server.cabal 2016-05-10 19:14:04 +03:00
Oleg Grenrus
008f2434ee Add -Wno-redundant-constraints 2016-05-10 19:09:59 +03:00
Oleg Grenrus
fd19694ed5 Make doctests accept GHC-8.0 formatted type errors 2016-05-10 19:09:59 +03:00
Amar
e9cbb85ce1 Add changelog entries 2016-05-10 22:19:27 +08:00
Julian K. Arni
d4c5edea25 Change throwErr to throwError. 2016-05-10 13:30:57 +02:00
Amar
845a06ccbd Correct the description of arbitrary monad server spec 2016-04-28 22:27:50 +08:00
Amar
61a99c9567 Replace Servant.Server.Internal.Enter with Servant.Utils.Enter in a comment 2016-04-28 22:26:27 +08:00
Amar
3f4bcf7752 Remove mmorph dependency from servant-server 2016-04-28 22:13:09 +08:00