git.iko.soy/typeable/servant-swagger-ui
on master help sign in
Merge pull request #5 from phadej/ghc-8.0

Support GHC-8.0

commit265b92eab09dd230057d9a695b19fd22e22d16a1 authorOleg Grenrus <oleg.grenrus@iki.fi> dateTue 31 May 2016, 16:59 (10 years ago) parent314deddd7028b5
12 files changed+120−58
.travis.meta.yml+10−4 .travis.yml+76−37 README.md+2 example/Main.hs+3−1 package.yaml+5−5 screenshot.png servant-0.6-cabal.config+1 servant-0.7-cabal.config+1 servant-swagger-ui.cabal+10−10 stack.yaml+10−1 swagger2-2.0-cabal.config+1 swagger2-2.1-cabal.config+1
.travis.meta.yml+10−4
@@ -1,15 +1,21 @@
11language: haskell-multi-ghc
22
33env:
4− - GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.4-cabal.config
4+ - GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=swagger2-2.1-cabal.config PEDANTIC=YES
5+ - GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=servant-0.7-cabal.config PEDANTIC=YES
6+
7+ - GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=swagger2-2.1-cabal.config PEDANTIC=YES
8+ - GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=swagger2-2.0-cabal.config PEDANTIC=YES
59 - GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.4-cabal.config PEDANTIC=YES
6− - GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.5-cabal.config
710 - GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.5-cabal.config PEDANTIC=YES
8− - GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.6-cabal.config
911 - GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.6-cabal.config PEDANTIC=YES
10− - GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.7-cabal.config
1112 - GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.7-cabal.config PEDANTIC=YES
1213
14+ - GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.4-cabal.config
15+ - GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.5-cabal.config
16+ - GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.6-cabal.config
17+ - GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.7-cabal.config
18+
1319matrix:
1420 fast_finish: true
1521
.travis.yml+76−37
@@ -10,10 +10,8 @@ before_install:
1010- cabal --version
1111- ghc --version
1212- if [ "$NOTESTS" = "YES" ]; then export CABALCONFOPTS="$CABALFLAGS"; export CABALTEST="true";
13− else export CABALCONFOPTS="$CABALFLAGS --enable-tests"; export CABALTEST="cabal
14− test"; fi
15−- if [ ! "$NOBENCHMARKS" = "YES"]; then export CABALCONFOPTS="$CABALCONFOPTS --enable-benchmarks";
16− fi
13+ else export CABALCONFOPTS="$CABALFLAGS --enable-tests --enable-benchmarks"; export
14+ CABALTEST="cabal test"; fi
1715- if [ "$PEDANTIC" = "YES" ]; then export CABALBUILDOPTS="--ghc-options=-Werror --ghc-options=-Wall";
1816 fi
1917install:
@@ -23,16 +21,17 @@ install:
2321 ]; then cp $CABALCONFIG cabal.config; fi; if [ -n "$STACKAGESNAPSHOT" ]; then curl
2422 --silent https://www.stackage.org/$STACKAGESNAPSHOT/cabal.config | grep -v "$(cabal
2523 info . -v0 | head -n 1 | awk '{ print $2 }' | sed -E 's/-[0-9]+(\.[0-9]+)+//') =="
26− > cabal.config; fi; cabal install --only-dependencies $CABALCONFOPTS --dry -v >
27− installplan.txt; sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt;
28− if diff -u $HOME/.cabsnap/installplan.txt installplan.txt; then echo "cabal build-cache
29− HIT"; rm -rfv .ghc; cp -av $HOME/.cabsnap/ghc $HOME/.ghc; cp -av $HOME/.cabsnap/lib
30− $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/; else echo "cabal build-cache
31− MISS"; rm -rf $HOME/.cabsnap; mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share
32− $HOME/.cabal/bin; cabal install --only-dependencies $CABALCONFOPTS; fi; if [ ! -d
33− $HOME/.cabsnap ]; then echo "snapshotting package-db to build-cache"; mkdir $HOME/.cabsnap;
34− cp -av $HOME/.ghc $HOME/.cabsnap/ghc; cp -av $HOME/.cabal/lib $HOME/.cabal/share
35− $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/; fi;
24+ > cabal.config; fi; cabal install --constraint='integer-simple installed' --only-dependencies
25+ $CABALCONFOPTS --dry -v > installplan.txt; sed -i -e '1,/^Resolving /d' installplan.txt;
26+ cat installplan.txt; if diff -u $HOME/.cabsnap/installplan.txt installplan.txt;
27+ then echo "cabal build-cache HIT"; rm -rfv .ghc; cp -av $HOME/.cabsnap/ghc $HOME/.ghc;
28+ cp -av $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;
29+ else echo "cabal build-cache MISS"; rm -rf $HOME/.cabsnap; mkdir -p $HOME/.ghc $HOME/.cabal/lib
30+ $HOME/.cabal/share $HOME/.cabal/bin; cabal install --constraint='integer-simple
31+ installed' --only-dependencies $CABALCONFOPTS; fi; if [ ! -d $HOME/.cabsnap ]; then
32+ echo "snapshotting package-db to build-cache"; mkdir $HOME/.cabsnap; cp -av $HOME/.ghc
33+ $HOME/.cabsnap/ghc; cp -av $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin
34+ installplan.txt $HOME/.cabsnap/; fi;
3635script:
3736- if [ -f configure.ac ]; then autoreconf -i; fi
3837- cabal configure $CABALCONFOPTS -v2
@@ -41,21 +40,31 @@ script:
4140- if [ "$CABALVER" = "1.22" ]; then cabal check; fi
4241- cabal sdist
4342- SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz && (cd dist && cabal install
44− --force-reinstalls $CABALFLAGS "$SRC_TGZ")
43+ --constraint='integer-simple installed' --force-reinstalls $CABALFLAGS "$SRC_TGZ")
4544matrix:
4645 fast_finish: true
4746 include:
48− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.4-cabal.config
47+ - env: GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=swagger2-2.1-cabal.config PEDANTIC=YES
4948 addons:
5049 apt:
5150 sources:
5251 - hvr-ghc
5352 packages:
54− - cabal-install-1.18
55− - ghc-7.8.4
53+ - cabal-install-1.24
54+ - ghc-8.0.1
5655 - libgmp-dev
57− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.4-cabal.config'
58− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.4-cabal.config PEDANTIC=YES
56+ compiler: ! ': # ghc-8.0.1 cabal-1.24 swagger2-2.1-cabal.config'
57+ - env: GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=servant-0.7-cabal.config PEDANTIC=YES
58+ addons:
59+ apt:
60+ sources:
61+ - hvr-ghc
62+ packages:
63+ - cabal-install-1.24
64+ - ghc-8.0.1
65+ - libgmp-dev
66+ compiler: ! ': # ghc-8.0.1 cabal-1.24 servant-0.7-cabal.config'
67+ - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=swagger2-2.1-cabal.config PEDANTIC=YES
5968 addons:
6069 apt:
6170 sources:
@@ -64,18 +73,18 @@ matrix:
6473 - cabal-install-1.22
6574 - ghc-7.10.3
6675 - libgmp-dev
67− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.4-cabal.config'
68− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.5-cabal.config
76+ compiler: ! ': # ghc-7.10.3 cabal-1.22 swagger2-2.1-cabal.config'
77+ - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=swagger2-2.0-cabal.config PEDANTIC=YES
6978 addons:
7079 apt:
7180 sources:
7281 - hvr-ghc
7382 packages:
74− - cabal-install-1.18
75− - ghc-7.8.4
83+ - cabal-install-1.22
84+ - ghc-7.10.3
7685 - libgmp-dev
77− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.5-cabal.config'
78− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.5-cabal.config PEDANTIC=YES
86+ compiler: ! ': # ghc-7.10.3 cabal-1.22 swagger2-2.0-cabal.config'
87+ - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.4-cabal.config PEDANTIC=YES
7988 addons:
8089 apt:
8190 sources:
@@ -84,17 +93,17 @@ matrix:
8493 - cabal-install-1.22
8594 - ghc-7.10.3
8695 - libgmp-dev
87− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.5-cabal.config'
88− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.6-cabal.config
96+ compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.4-cabal.config'
97+ - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.5-cabal.config PEDANTIC=YES
8998 addons:
9099 apt:
91100 sources:
92101 - hvr-ghc
93102 packages:
94− - cabal-install-1.18
95− - ghc-7.8.4
103+ - cabal-install-1.22
104+ - ghc-7.10.3
96105 - libgmp-dev
97− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.6-cabal.config'
106+ compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.5-cabal.config'
98107 - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.6-cabal.config PEDANTIC=YES
99108 addons:
100109 apt:
@@ -105,7 +114,17 @@ matrix:
105114 - ghc-7.10.3
106115 - libgmp-dev
107116 compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.6-cabal.config'
108− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.7-cabal.config
117+ - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.7-cabal.config PEDANTIC=YES
118+ addons:
119+ apt:
120+ sources:
121+ - hvr-ghc
122+ packages:
123+ - cabal-install-1.22
124+ - ghc-7.10.3
125+ - libgmp-dev
126+ compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.7-cabal.config'
127+ - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.4-cabal.config
109128 addons:
110129 apt:
111130 sources:
@@ -114,17 +133,37 @@ matrix:
114133 - cabal-install-1.18
115134 - ghc-7.8.4
116135 - libgmp-dev
117− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.7-cabal.config'
118− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.7-cabal.config PEDANTIC=YES
136+ compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.4-cabal.config'
137+ - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.5-cabal.config
119138 addons:
120139 apt:
121140 sources:
122141 - hvr-ghc
123142 packages:
124− - cabal-install-1.22
125− - ghc-7.10.3
143+ - cabal-install-1.18
144+ - ghc-7.8.4
126145 - libgmp-dev
127− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.7-cabal.config'
146+ compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.5-cabal.config'
147+ - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.6-cabal.config
148+ addons:
149+ apt:
150+ sources:
151+ - hvr-ghc
152+ packages:
153+ - cabal-install-1.18
154+ - ghc-7.8.4
155+ - libgmp-dev
156+ compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.6-cabal.config'
157+ - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.7-cabal.config
158+ addons:
159+ apt:
160+ sources:
161+ - hvr-ghc
162+ packages:
163+ - cabal-install-1.18
164+ - ghc-7.8.4
165+ - libgmp-dev
166+ compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.7-cabal.config'
128167branches:
129168 only:
130169 - master
README.md+2
@@ -9,4 +9,6 @@
99
1010## Example
1111
12+![example screenshot](https://raw.githubusercontent.com/phadej/servant-swagger-ui/master/screenshot.png)
13+
1214Check [`example/Main.hs`](https://github.com/phadej/servant-swagger-ui/blob/master/example/Main.hs) for an example.
example/Main.hs+3−1
@@ -61,6 +61,8 @@ instance ToSchema CatName
6161
6262type BasicAPI = Get '[PlainText, JSON] Text
6363 :<|> "cat" :> Capture ":name" CatName :> Get '[JSON] Cat
64+ :<|> "cat2" :> Capture ":name" CatName :> Get '[JSON] Cat
65+ :<|> "cat3" :> Capture ":name" CatName :> Get '[JSON] Cat
6466
6567type SwaggerSchemaEndpoint = "swagger.js" :> Get '[JSON] Swagger
6668
@@ -82,7 +84,7 @@ type instance IsElem' e API = IsElem e API'
8284-- Implementation
8385server :: Server API
8486server =
85− (return "Hello World" :<|> catEndpoint)
87+ (return "Hello World" :<|> catEndpoint :<|> catEndpoint :<|> catEndpoint)
8688 :<|> return swaggerDoc
8789 :<|> swaggerUIServer
8890 where
package.yaml+5−5
@@ -16,7 +16,7 @@ extra-source-files:
1616ghc-options: -Wall
1717
1818dependencies:
19− - base >=4.7 && <4.9
19+ - base >=4.7 && <4.10
2020 - blaze-markup >=0.7.0.2 && <0.8
2121 - bytestring >=0.10.4.0 && <0.11
2222 - directory >=1.2.1.0 && <1.3
@@ -26,11 +26,11 @@ dependencies:
2626 - servant >=0.4.4.5 && <0.8
2727 - servant-blaze >=0.4.4.5 && <0.8
2828 - servant-server >=0.4.4.5 && <0.8
29− - servant-swagger >=1.0.3 && <1.1
30− - swagger2 >=2.0.1 && <2.1
31− - template-haskell >=2.9 && <2.11
29+ - servant-swagger >=1.0.3 && <1.2
30+ - swagger2 >=2.0.1 && <2.2
31+ - template-haskell >=2.9 && <2.12
3232 - text >=1.2.0.6 && <1.3
33− - wai-app-static >=3.0.1.1 && <3.2
33+ - wai-app-static >=3.0.1.1 && <3.2
3434
3535library:
3636 source-dirs: src
screenshot.pngnew file

Binary file not shown.

servant-0.6-cabal.confignew file+1
@@ -0,0 +1 @@
1+constraints: servant ==0.6.*
servant-0.7-cabal.confignew file+1
@@ -0,0 +1 @@
1+constraints: servant ==0.7.*
servant-swagger-ui.cabal+10−10
@@ -74,7 +74,7 @@ library
7474 src
7575 ghc-options: -Wall
7676 build-depends:
77− base >=4.7 && <4.9
77+ base >=4.7 && <4.10
7878 , blaze-markup >=0.7.0.2 && <0.8
7979 , bytestring >=0.10.4.0 && <0.11
8080 , directory >=1.2.1.0 && <1.3
@@ -84,11 +84,11 @@ library
8484 , servant >=0.4.4.5 && <0.8
8585 , servant-blaze >=0.4.4.5 && <0.8
8686 , servant-server >=0.4.4.5 && <0.8
87− , servant-swagger >=1.0.3 && <1.1
88− , swagger2 >=2.0.1 && <2.1
89− , template-haskell >=2.9 && <2.11
87+ , servant-swagger >=1.0.3 && <1.2
88+ , swagger2 >=2.0.1 && <2.2
89+ , template-haskell >=2.9 && <2.12
9090 , text >=1.2.0.6 && <1.3
91− , wai-app-static >=3.0.1.1 && <3.2
91+ , wai-app-static >=3.0.1.1 && <3.2
9292 exposed-modules:
9393 Servant.Swagger.UI
9494 Servant.Swagger.UI.Internal
@@ -101,7 +101,7 @@ test-suite example
101101 example
102102 ghc-options: -Wall
103103 build-depends:
104− base >=4.7 && <4.9
104+ base >=4.7 && <4.10
105105 , blaze-markup >=0.7.0.2 && <0.8
106106 , bytestring >=0.10.4.0 && <0.11
107107 , directory >=1.2.1.0 && <1.3
@@ -111,11 +111,11 @@ test-suite example
111111 , servant >=0.4.4.5 && <0.8
112112 , servant-blaze >=0.4.4.5 && <0.8
113113 , servant-server >=0.4.4.5 && <0.8
114− , servant-swagger >=1.0.3 && <1.1
115− , swagger2 >=2.0.1 && <2.1
116− , template-haskell >=2.9 && <2.11
114+ , servant-swagger >=1.0.3 && <1.2
115+ , swagger2 >=2.0.1 && <2.2
116+ , template-haskell >=2.9 && <2.12
117117 , text >=1.2.0.6 && <1.3
118− , wai-app-static >=3.0.1.1 && <3.2
118+ , wai-app-static >=3.0.1.1 && <3.2
119119 , servant-swagger-ui
120120 , servant-server >=0.4.4.5 && <0.8
121121 , aeson >=0.8.0.2 && <0.12
stack.yamlmode 120000 → 100644+10−1
@@ -1 +0,0 @@
1−stack-lts-5.yaml
@@ -0,0 +1,10 @@
1+resolver: nightly-2016-05-29
2+packages:
3+- '.'
4+- location:
5+ git: https://github.com/phadej/servant-swagger.git
6+ commit: 16d428ee320b1afba5146da3e30276d2da760d09
7+ extra-dep: true
8+extra-deps:
9+- swagger2-2.1
10+flags: {}
swagger2-2.0-cabal.confignew file+1
@@ -0,0 +1 @@
1+constraints: swagger2 == 2.0.*
swagger2-2.1-cabal.confignew file+1
@@ -0,0 +1 @@
1+constraints: swagger2 == 2.1.*