2015-09-20 13:28:06 +02:00
|
|
|
# servant - A Type-Level Web DSL
|
2014-12-08 10:56:02 +01:00
|
|
|
|
|
|
|
![servant](https://raw.githubusercontent.com/haskell-servant/servant/master/servant.png)
|
|
|
|
|
2015-09-20 14:01:59 +02:00
|
|
|
## Getting Started
|
2014-12-08 10:56:02 +01:00
|
|
|
|
2016-04-21 12:22:54 +02:00
|
|
|
We have a [tutorial](http://haskell-servant.readthedocs.org/en/stable/tutorial/index.html) that
|
2015-09-20 14:01:59 +02:00
|
|
|
introduces the core features of servant. After this article, you should be able
|
|
|
|
to write your first servant webservices, learning the rest from the haddocks'
|
|
|
|
examples.
|
2014-12-08 10:56:02 +01:00
|
|
|
|
2016-04-21 12:22:54 +02:00
|
|
|
The central documentation can be found [here](http://haskell-servant.readthedocs.org/).
|
2015-09-20 14:01:59 +02:00
|
|
|
Other blog posts, videos and slides can be found on the
|
|
|
|
[website](http://haskell-servant.github.io/).
|
2015-08-17 23:50:42 +02:00
|
|
|
|
2015-09-20 14:01:59 +02:00
|
|
|
If you need help, drop by the IRC channel (#servant on freenode) or [mailing
|
|
|
|
list](https://groups.google.com/forum/#!forum/haskell-servant).
|
2015-09-20 13:28:06 +02:00
|
|
|
|
2017-01-30 18:12:39 +01:00
|
|
|
## Version history
|
|
|
|
|
|
|
|
This table lists the versions of some `servant-` libraries at the point of
|
|
|
|
release of `servant` package.
|
|
|
|
|
2017-11-06 09:40:39 +01:00
|
|
|
| | **0.10** | **0.11** | **0.12** |
|
2017-11-11 20:17:34 +01:00
|
|
|
| ------------------- | -------- |----------|----------|
|
2017-11-06 09:40:39 +01:00
|
|
|
| servant | 0.10 | 0.11 | 0.12 |
|
|
|
|
| servant-blaze | 0.7.1 | ? | ? |
|
|
|
|
| servant-cassava | 0.7 | ? | ? |
|
|
|
|
| servant-client | 0.10 | 0.11 | 0.12 |
|
|
|
|
| servant-docs | 0.10 | 0.11 | 0.11.1 |
|
|
|
|
| servant-foreign | 0.10 | 0.10.0.1 | 0.10.2 |
|
|
|
|
| servant-js | 0.9.1 | ? | ? |
|
|
|
|
| servant-lucid | 0.7.1 | ? | ? |
|
|
|
|
| servant-mock | 0.8.1.1 | ? | ? |
|
|
|
|
| servant-server | 0.10 | 0.11 | 0.12 |
|
|
|
|
| servant-swagger | 1.1.2.1 | ? | ? |
|
2017-01-30 18:12:39 +01:00
|
|
|
|
2015-08-17 23:50:42 +02:00
|
|
|
## Contributing
|
|
|
|
|
2016-01-07 00:53:17 +01:00
|
|
|
See `CONTRIBUTING.md`
|
2017-11-07 15:10:46 +01:00
|
|
|
|
|
|
|
## Release process outline (by phadej)
|
|
|
|
|
|
|
|
- Update changelog and bump versions in `master`
|
|
|
|
- `git log --oneline v0.12.. | grep 'Merge pull request'` is a good starting point (use correct previous release tag)
|
|
|
|
- Create a release branch, e.g. `release-0.13`, and *protect it* from accidental force pushes.
|
|
|
|
- Release branch is useful for backporting fixes from `master`
|
|
|
|
- Smoke test in [`servant-universe`](https://github.com/phadej/servant-universe)
|
|
|
|
- `git submodule foreach git checkout master` and `git submodule foreach git pull` to get newest of everything.
|
|
|
|
- `cabal new-build --enable-tests all` to verify that everything builds, and `cabal new-test all` to run tests
|
|
|
|
- It's a good idea to separate these steps, as tests often pass, if they compile :)
|
|
|
|
- See `cabal.project` to selectively `allow-newer`
|
|
|
|
- If some packages are broken, on your discretisation there are two options:
|
|
|
|
- Fix them and make PRs: it's good idea to test against older `servant` version too.
|
|
|
|
- Temporarily comment out broken package
|
|
|
|
- If you make a commit for `servant-universe`, you can use it as submodule in private projects to test even more
|
|
|
|
- When ripples are cleared out:
|
|
|
|
- `git tag -s` the release
|
|
|
|
- `git push --tags`
|
|
|
|
- `cabal sdist` and `cabal upload`
|