on master help sign in
Reinstate cookbook testing to CI
98a12c3Oleg Grenrus
.travis.yml+37−24
@@ -69,7 +69,7 @@ install:
69 - rm -fv cabal.project cabal.project.local
69 - rm -fv cabal.project cabal.project.local
70 - "if [ $HCNUMVER -ge 70800 ]; then sed -i.bak 's/-- ghc-options:.*/ghc-options: -j2/' ${HOME}/.cabal/config; fi"
70 - "if [ $HCNUMVER -ge 70800 ]; then sed -i.bak 's/-- ghc-options:.*/ghc-options: -j2/' ${HOME}/.cabal/config; fi"
71 - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
71 - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
72− - "printf 'packages: \"servant\" \"servant-client\" \"servant-client-core\" \"servant-docs\" \"servant-foreign\" \"servant-server\" \"doc/tutorial\"\\n' > cabal.project"
72+ - "printf 'packages: \"servant\" \"servant-client\" \"servant-client-core\" \"servant-docs\" \"servant-foreign\" \"servant-server\" \"doc/tutorial\" \"doc/cookbook/db-postgres-pool\" \"doc/cookbook/jwt-and-basic-auth\" \"doc/cookbook/db-sqlite-simple\" \"doc/cookbook/basic-auth\" \"doc/cookbook/https\" \"doc/cookbook/structuring-apis\" \"doc/cookbook/using-custom-monad\" \"doc/cookbook/file-upload\"\\n' > cabal.project"
73 - "echo 'constraints: foundation >=0.0.14,memory <0.14.12 || >0.14.12' >> cabal.project"
73 - "echo 'constraints: foundation >=0.0.14,memory <0.14.12 || >0.14.12' >> cabal.project"
74 - "echo 'allow-newer: servant-js:servant-foreign' >> cabal.project"
74 - "echo 'allow-newer: servant-js:servant-foreign' >> cabal.project"
75 - cat cabal.project
75 - cat cabal.project
@@ -94,8 +94,32 @@ install:
94 - if [ -f "doc/tutorial/configure.ac" ]; then
94 - if [ -f "doc/tutorial/configure.ac" ]; then
95 (cd "doc/tutorial" && autoreconf -i);
95 (cd "doc/tutorial" && autoreconf -i);
96 fi
96 fi
97+ - if [ -f "doc/cookbook/db-postgres-pool/configure.ac" ]; then
98+ (cd "doc/cookbook/db-postgres-pool" && autoreconf -i);
99+ fi
100+ - if [ -f "doc/cookbook/jwt-and-basic-auth/configure.ac" ]; then
101+ (cd "doc/cookbook/jwt-and-basic-auth" && autoreconf -i);
102+ fi
103+ - if [ -f "doc/cookbook/db-sqlite-simple/configure.ac" ]; then
104+ (cd "doc/cookbook/db-sqlite-simple" && autoreconf -i);
105+ fi
106+ - if [ -f "doc/cookbook/basic-auth/configure.ac" ]; then
107+ (cd "doc/cookbook/basic-auth" && autoreconf -i);
108+ fi
109+ - if [ -f "doc/cookbook/https/configure.ac" ]; then
110+ (cd "doc/cookbook/https" && autoreconf -i);
111+ fi
112+ - if [ -f "doc/cookbook/structuring-apis/configure.ac" ]; then
113+ (cd "doc/cookbook/structuring-apis" && autoreconf -i);
114+ fi
115+ - if [ -f "doc/cookbook/using-custom-monad/configure.ac" ]; then
116+ (cd "doc/cookbook/using-custom-monad" && autoreconf -i);
117+ fi
118+ - if [ -f "doc/cookbook/file-upload/configure.ac" ]; then
119+ (cd "doc/cookbook/file-upload" && autoreconf -i);
120+ fi
97 - rm -f cabal.project.freeze
121 - rm -f cabal.project.freeze
98− - rm -rf "servant"/.ghc.environment.* "servant-client"/.ghc.environment.* "servant-client-core"/.ghc.environment.* "servant-docs"/.ghc.environment.* "servant-foreign"/.ghc.environment.* "servant-server"/.ghc.environment.* "doc/tutorial"/.ghc.environment.* "servant"/dist "servant-client"/dist "servant-client-core"/dist "servant-docs"/dist "servant-foreign"/dist "servant-server"/dist "doc/tutorial"/dist
122+ - rm -rf "servant"/.ghc.environment.* "servant-client"/.ghc.environment.* "servant-client-core"/.ghc.environment.* "servant-docs"/.ghc.environment.* "servant-foreign"/.ghc.environment.* "servant-server"/.ghc.environment.* "doc/tutorial"/.ghc.environment.* "doc/cookbook/db-postgres-pool"/.ghc.environment.* "doc/cookbook/jwt-and-basic-auth"/.ghc.environment.* "doc/cookbook/db-sqlite-simple"/.ghc.environment.* "doc/cookbook/basic-auth"/.ghc.environment.* "doc/cookbook/https"/.ghc.environment.* "doc/cookbook/structuring-apis"/.ghc.environment.* "doc/cookbook/using-custom-monad"/.ghc.environment.* "doc/cookbook/file-upload"/.ghc.environment.* "servant"/dist "servant-client"/dist "servant-client-core"/dist "servant-docs"/dist "servant-foreign"/dist "servant-server"/dist "doc/tutorial"/dist "doc/cookbook/db-postgres-pool"/dist "doc/cookbook/jwt-and-basic-auth"/dist "doc/cookbook/db-sqlite-simple"/dist "doc/cookbook/basic-auth"/dist "doc/cookbook/https"/dist "doc/cookbook/structuring-apis"/dist "doc/cookbook/using-custom-monad"/dist "doc/cookbook/file-upload"/dist
99 - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
123 - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
100
124
101# Here starts the actual work to be performed for the package under test;
125# Here starts the actual work to be performed for the package under test;
@@ -110,43 +134,32 @@ script:
110 - (cd "servant-foreign" && cabal sdist)
134 - (cd "servant-foreign" && cabal sdist)
111 - (cd "servant-server" && cabal sdist)
135 - (cd "servant-server" && cabal sdist)
112 - (cd "doc/tutorial" && cabal sdist)
136 - (cd "doc/tutorial" && cabal sdist)
137+ - (cd "doc/cookbook/db-postgres-pool" && cabal sdist)
138+ - (cd "doc/cookbook/jwt-and-basic-auth" && cabal sdist)
139+ - (cd "doc/cookbook/db-sqlite-simple" && cabal sdist)
140+ - (cd "doc/cookbook/basic-auth" && cabal sdist)
141+ - (cd "doc/cookbook/https" && cabal sdist)
142+ - (cd "doc/cookbook/structuring-apis" && cabal sdist)
143+ - (cd "doc/cookbook/using-custom-monad" && cabal sdist)
144+ - (cd "doc/cookbook/file-upload" && cabal sdist)
113 - echo -en 'travis_fold:end:sdist\\r'
145 - echo -en 'travis_fold:end:sdist\\r'
114 - echo Unpacking... && echo -en 'travis_fold:start:unpack\\r'
146 - echo Unpacking... && echo -en 'travis_fold:start:unpack\\r'
115− - mv "servant"/dist/servant-*.tar.gz "servant-client"/dist/servant-client-*.tar.gz "servant-client-core"/dist/servant-client-core-*.tar.gz "servant-docs"/dist/servant-docs-*.tar.gz "servant-foreign"/dist/servant-foreign-*.tar.gz "servant-server"/dist/servant-server-*.tar.gz "doc/tutorial"/dist/tutorial-*.tar.gz ${DISTDIR}/
147+ - mv "servant"/dist/servant-*.tar.gz "servant-client"/dist/servant-client-*.tar.gz "servant-client-core"/dist/servant-client-core-*.tar.gz "servant-docs"/dist/servant-docs-*.tar.gz "servant-foreign"/dist/servant-foreign-*.tar.gz "servant-server"/dist/servant-server-*.tar.gz "doc/tutorial"/dist/tutorial-*.tar.gz "doc/cookbook/db-postgres-pool"/dist/cookbook-db-postgres-pool-*.tar.gz "doc/cookbook/jwt-and-basic-auth"/dist/cookbook-jwt-and-basic-auth-*.tar.gz "doc/cookbook/db-sqlite-simple"/dist/cookbook-db-sqlite-simple-*.tar.gz "doc/cookbook/basic-auth"/dist/cookbook-basic-auth-*.tar.gz "doc/cookbook/https"/dist/cookbook-https-*.tar.gz "doc/cookbook/structuring-apis"/dist/cookbook-structuring-apis-*.tar.gz "doc/cookbook/using-custom-monad"/dist/cookbook-using-custom-monad-*.tar.gz "doc/cookbook/file-upload"/dist/cookbook-file-upload-*.tar.gz ${DISTDIR}/
116 - cd ${DISTDIR} || false
148 - cd ${DISTDIR} || false
117 - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
149 - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
118− - "printf 'packages: servant-*/*.cabal servant-client-*/*.cabal servant-client-core-*/*.cabal servant-docs-*/*.cabal servant-foreign-*/*.cabal servant-server-*/*.cabal tutorial-*/*.cabal\\n' > cabal.project"
150+ - "printf 'packages: servant-*/*.cabal servant-client-*/*.cabal servant-client-core-*/*.cabal servant-docs-*/*.cabal servant-foreign-*/*.cabal servant-server-*/*.cabal tutorial-*/*.cabal cookbook-db-postgres-pool-*/*.cabal cookbook-jwt-and-basic-auth-*/*.cabal cookbook-db-sqlite-simple-*/*.cabal cookbook-basic-auth-*/*.cabal cookbook-https-*/*.cabal cookbook-structuring-apis-*/*.cabal cookbook-using-custom-monad-*/*.cabal cookbook-file-upload-*/*.cabal\\n' > cabal.project"
119 - "echo 'constraints: foundation >=0.0.14,memory <0.14.12 || >0.14.12' >> cabal.project"
151 - "echo 'constraints: foundation >=0.0.14,memory <0.14.12 || >0.14.12' >> cabal.project"
120 - "echo 'allow-newer: servant-js:servant-foreign' >> cabal.project"
152 - "echo 'allow-newer: servant-js:servant-foreign' >> cabal.project"
121 - cat cabal.project
153 - cat cabal.project
122 - echo -en 'travis_fold:end:unpack\\r'
154 - echo -en 'travis_fold:end:unpack\\r'
123− - echo Building... && echo -en 'travis_fold:start:build\\r'
124− # this builds all libraries and executables (without tests/benchmarks)
125− - cabal new-build -w ${HC} --disable-tests --disable-benchmarks all
126− - echo -en 'travis_fold:end:build\\r'
127
155
128− - echo Building with installed constraints for package in global-db... && echo -en 'travis_fold:start:build-installed\\r'
129− # Build with installed constraints for packages in global-db
130− - if $INSTALLED; then echo cabal new-build -w ${HC} --disable-tests --disable-benchmarks $(${HCPKG} list --global --simple-output --names-only | sed 's/\([a-zA-Z0-9-]\{1,\}\) */--constraint="\1 installed" /g') all | sh; else echo "Not building with installed constraints"; fi
131− - echo -en 'travis_fold:end:build-installed\\r'
132
156
133 - echo Building with tests and benchmarks... && echo -en 'travis_fold:start:build-everything\\r'
157 - echo Building with tests and benchmarks... && echo -en 'travis_fold:start:build-everything\\r'
134 # build & run tests, build benchmarks
158 # build & run tests, build benchmarks
135− - cabal new-build -w ${HC} ${TEST} ${BENCH} all
159+ - cabal new-build -w ${HC} ${TEST} ${BENCH} all --max-backjumps=20000
136 - echo -en 'travis_fold:end:build-everything\\r'
160 - echo -en 'travis_fold:end:build-everything\\r'
137 - if [ "x$TEST" = "x--enable-tests" ]; then cabal new-test -w ${HC} ${TEST} ${BENCH} all; fi
161 - if [ "x$TEST" = "x--enable-tests" ]; then cabal new-test -w ${HC} ${TEST} ${BENCH} all; fi
138
162
139− - echo cabal check... && echo -en 'travis_fold:start:check\\r'
140− # cabal check
141− - (cd servant-* && cabal check)
142− - (cd servant-client-* && cabal check)
143− - (cd servant-client-core-* && cabal check)
144− - (cd servant-docs-* && cabal check)
145− - (cd servant-foreign-* && cabal check)
146− - (cd servant-server-* && cabal check)
147− - (cd tutorial-* && cabal check)
148−
149− - echo -en 'travis_fold:end:check\\r'
150 - echo Haddock... && echo -en 'travis_fold:start:haddock\\r'
163 - echo Haddock... && echo -en 'travis_fold:start:haddock\\r'
151 # haddock
164 # haddock
152 - rm -rf ./dist-newstyle
165 - rm -rf ./dist-newstyle
cabal.make-travis-yml+7
@@ -4,5 +4,12 @@ branches: master release-0.12
4-- We have inplace packages (servant-js) so we skip installing dependencies in a separate step
4-- We have inplace packages (servant-js) so we skip installing dependencies in a separate step
5install-dependencies-step: False
5install-dependencies-step: False
6
6
7+-- this speed-ups the build a little, but we have to check these for release
8+no-tests-no-benchmarks: False
9+build-with-installed-step: False
10+
11+-- Don't run cabal check, as cookbook examples won't pass it
12+cabal-check: False
13+
7-- ghc-options: -j2
14-- ghc-options: -j2
8jobs: :2
15jobs: :2
cabal.project+2−9
@@ -5,18 +5,11 @@ packages: servant/
5 servant-foreign/
5 servant-foreign/
6 servant-server/
6 servant-server/
7 doc/tutorial/
7 doc/tutorial/
8− doc/cookbook/basic-auth/
8+ doc/cookbook/*/*.cabal
9− doc/cookbook/db-postgres-pool/
10− doc/cookbook/using-custom-monad/
11− doc/cookbook/db-sqlite-simple/
12− doc/cookbook/jwt-and-basic-auth/
13− doc/cookbook/file-upload/
14− doc/cookbook/structuring-apis/
15− doc/cookbook/https/
16
9
17allow-newer: servant-js:servant-foreign
10allow-newer: servant-js:servant-foreign
18
11
19constraints:
12constraints:
20 -- see https://github.com/haskell-infra/hackage-trustees/issues/119
13 -- see https://github.com/haskell-infra/hackage-trustees/issues/119
21 foundation >=0.0.14,
14 foundation >=0.0.14,
22− memory <0.14.2 && >0.14.2
15+ memory <0.14.12 || >0.14.12
doc/cookbook/basic-auth/basic-auth.cabal+1−2
@@ -8,10 +8,9 @@ author: Servant Contributors
8maintainer: haskell-servant-maintainers@googlegroups.com
8maintainer: haskell-servant-maintainers@googlegroups.com
9build-type: Simple
9build-type: Simple
10cabal-version: >=1.10
10cabal-version: >=1.10
11+tested-with: GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2
11
12
12executable cookbook-basic-auth
13executable cookbook-basic-auth
13− if impl(ghc < 7.10.1)
14− buildable: False
15 main-is: BasicAuth.lhs
14 main-is: BasicAuth.lhs
16 build-depends: base == 4.*
15 build-depends: base == 4.*
17 , text >= 1.2
16 , text >= 1.2
doc/cookbook/db-postgres-pool/db-postgres-pool.cabal+2−2
@@ -8,10 +8,9 @@ author: Servant Contributors
8maintainer: haskell-servant-maintainers@googlegroups.com
8maintainer: haskell-servant-maintainers@googlegroups.com
9build-type: Simple
9build-type: Simple
10cabal-version: >=1.10
10cabal-version: >=1.10
11+tested-with: GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2
11
12
12executable cookbook-db-postgres-pool
13executable cookbook-db-postgres-pool
13− if impl(ghc < 7.10.1)
14− buildable: False
15 main-is: PostgresPool.lhs
14 main-is: PostgresPool.lhs
16 build-depends: base == 4.*
15 build-depends: base == 4.*
17 , bytestring >= 0.10
16 , bytestring >= 0.10
@@ -27,6 +26,7 @@ executable cookbook-db-postgres-pool
27 , http-client >= 0.5
26 , http-client >= 0.5
28 , postgresql-simple >= 0.5
27 , postgresql-simple >= 0.5
29 , resource-pool >= 0.2
28 , resource-pool >= 0.2
29+ , transformers
30 default-language: Haskell2010
30 default-language: Haskell2010
31 ghc-options: -Wall -pgmL markdown-unlit
31 ghc-options: -Wall -pgmL markdown-unlit
32 build-tool-depends: markdown-unlit:markdown-unlit
32 build-tool-depends: markdown-unlit:markdown-unlit
doc/cookbook/db-sqlite-simple/db-sqlite-simple.cabal+2−2
@@ -8,10 +8,9 @@ author: Servant Contributors
8maintainer: haskell-servant-maintainers@googlegroups.com
8maintainer: haskell-servant-maintainers@googlegroups.com
9build-type: Simple
9build-type: Simple
10cabal-version: >=1.10
10cabal-version: >=1.10
11+tested-with: GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2
11
12
12executable cookbook-db-sqlite-simple
13executable cookbook-db-sqlite-simple
13− if impl(ghc < 7.10.1)
14− buildable: False
15 main-is: DBConnection.lhs
14 main-is: DBConnection.lhs
16 build-depends: base == 4.*
15 build-depends: base == 4.*
17 , text >= 1.2
16 , text >= 1.2
@@ -25,6 +24,7 @@ executable cookbook-db-sqlite-simple
25 , markdown-unlit >= 0.4
24 , markdown-unlit >= 0.4
26 , http-client >= 0.5
25 , http-client >= 0.5
27 , sqlite-simple >= 0.4
26 , sqlite-simple >= 0.4
27+ , transformers
28 default-language: Haskell2010
28 default-language: Haskell2010
29 ghc-options: -Wall -pgmL markdown-unlit
29 ghc-options: -Wall -pgmL markdown-unlit
30 build-tool-depends: markdown-unlit:markdown-unlit
30 build-tool-depends: markdown-unlit:markdown-unlit
doc/cookbook/file-upload/file-upload.cabal+3−3
@@ -8,19 +8,19 @@ author: Servant Contributors
8maintainer: haskell-servant-maintainers@googlegroups.com
8maintainer: haskell-servant-maintainers@googlegroups.com
9build-type: Simple
9build-type: Simple
10cabal-version: >=1.10
10cabal-version: >=1.10
11+tested-with: GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2
11
12
12executable cookbook-file-upload
13executable cookbook-file-upload
13− if impl(ghc < 7.10.1)
14− buildable: False
15 main-is: FileUpload.lhs
14 main-is: FileUpload.lhs
16 build-depends: base == 4.*
15 build-depends: base == 4.*
17 , text >= 1.2
16 , text >= 1.2
18− , mtl >= 2.2
17+ , mtl >= 2.1
19 , network >= 2.6
18 , network >= 2.6
20 , bytestring >= 0.10
19 , bytestring >= 0.10
21 , servant
20 , servant
22 , servant-server
21 , servant-server
23 , servant-multipart
22 , servant-multipart
23+ , transformers
24 , warp >= 3.2
24 , warp >= 3.2
25 , wai >= 3.2
25 , wai >= 3.2
26 , markdown-unlit >= 0.4
26 , markdown-unlit >= 0.4
doc/cookbook/https/https.cabal+1−2
@@ -8,10 +8,9 @@ author: Servant Contributors
8maintainer: haskell-servant-maintainers@googlegroups.com
8maintainer: haskell-servant-maintainers@googlegroups.com
9build-type: Simple
9build-type: Simple
10cabal-version: >=1.10
10cabal-version: >=1.10
11+tested-with: GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2
11
12
12executable cookbook-https
13executable cookbook-https
13− if impl(ghc < 7.10.1)
14− buildable: False
15 main-is: Https.lhs
14 main-is: Https.lhs
16 build-depends: base == 4.*
15 build-depends: base == 4.*
17 , servant
16 , servant
doc/cookbook/jwt-and-basic-auth/jwt-and-basic-auth.cabal+8−5
@@ -11,10 +11,12 @@ maintainer: haskell-servant-maintainers@googlegroups.com
11category: Servant
11category: Servant
12build-type: Simple
12build-type: Simple
13cabal-version: >=1.10
13cabal-version: >=1.10
14+tested-with: GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2
14
15
15executable cookbook-jwt-and-basic-auth
16executable cookbook-jwt-and-basic-auth
16− if impl(ghc < 7.10.1)
17+ if !impl(ghc >= 7.10)
17− buildable: False
18+ buildable: False
19+
18 main-is: JWTAndBasicAuth.lhs
20 main-is: JWTAndBasicAuth.lhs
19 build-depends: base == 4.*
21 build-depends: base == 4.*
20 , text >= 1.2
22 , text >= 1.2
@@ -23,14 +25,15 @@ executable cookbook-jwt-and-basic-auth
23 , servant
25 , servant
24 , servant-client
26 , servant-client
25 , servant-server
27 , servant-server
26− , servant-auth
28+ , servant-auth ==0.3.*
27− , servant-auth-server
29+ , servant-auth-server >= 0.3.1.0
28 , warp >= 3.2
30 , warp >= 3.2
29 , wai >= 3.2
31 , wai >= 3.2
30 , http-types >= 0.10
32 , http-types >= 0.10
31 , markdown-unlit >= 0.4
33 , markdown-unlit >= 0.4
32 , http-client >= 0.5
34 , http-client >= 0.5
33− , bytestring >= 0.10
35+ , bytestring >= 0.10.4
36+ , transformers
34 default-language: Haskell2010
37 default-language: Haskell2010
35 ghc-options: -Wall -pgmL markdown-unlit
38 ghc-options: -Wall -pgmL markdown-unlit
36 build-tool-depends: markdown-unlit:markdown-unlit
39 build-tool-depends: markdown-unlit:markdown-unlit
doc/cookbook/structuring-apis/structuring-apis.cabal+1−2
@@ -8,10 +8,9 @@ author: Servant Contributors
8maintainer: haskell-servant-maintainers@googlegroups.com
8maintainer: haskell-servant-maintainers@googlegroups.com
9build-type: Simple
9build-type: Simple
10cabal-version: >=1.10
10cabal-version: >=1.10
11+tested-with: GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2
11
12
12executable cookbook-structuring-apis
13executable cookbook-structuring-apis
13− if impl(ghc < 7.10.1)
14− buildable: False
15 main-is: StructuringApis.lhs
14 main-is: StructuringApis.lhs
16 build-depends: base == 4.*
15 build-depends: base == 4.*
17 , aeson >= 1.2
16 , aeson >= 1.2
doc/cookbook/using-custom-monad/using-custom-monad.cabal+2−3
@@ -8,10 +8,9 @@ author: Servant Contributors
8maintainer: haskell-servant-maintainers@googlegroups.com
8maintainer: haskell-servant-maintainers@googlegroups.com
9build-type: Simple
9build-type: Simple
10cabal-version: >=1.10
10cabal-version: >=1.10
11+tested-with: GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2
11
12
12executable cookbook-using-custom-monad
13executable cookbook-using-custom-monad
13− if impl(ghc < 7.10.1)
14− buildable: False
15 main-is: UsingCustomMonad.lhs
14 main-is: UsingCustomMonad.lhs
16 build-depends: base == 4.*
15 build-depends: base == 4.*
17 , aeson >= 1.2
16 , aeson >= 1.2
@@ -23,7 +22,7 @@ executable cookbook-using-custom-monad
23 , http-client >= 0.5
22 , http-client >= 0.5
24 , markdown-unlit >= 0.4
23 , markdown-unlit >= 0.4
25 , stm >= 2.4
24 , stm >= 2.4
26− , transformers >= 0.4
25+ , transformers >= 0.3
27 default-language: Haskell2010
26 default-language: Haskell2010
28 ghc-options: -Wall -pgmL markdown-unlit
27 ghc-options: -Wall -pgmL markdown-unlit
29 build-tool-depends: markdown-unlit:markdown-unlit
28 build-tool-depends: markdown-unlit:markdown-unlit