Skip to content

Commit 4360283

Browse files
committed
Support servant-0.14
1 parent 51da3d0 commit 4360283

File tree

5 files changed

+58
-22
lines changed

5 files changed

+58
-22
lines changed

.travis.yml

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,21 @@ before_cache:
3232

3333
matrix:
3434
include:
35-
- compiler: "ghc-7.8.4"
35+
- compiler: "ghc-8.4.3"
3636
# env: TEST=--disable-tests BENCH=--disable-benchmarks
37-
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-7.8.4], sources: [hvr-ghc]}}
38-
- compiler: "ghc-7.10.3"
37+
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.4.3], sources: [hvr-ghc]}}
38+
- compiler: "ghc-8.2.2"
3939
# env: TEST=--disable-tests BENCH=--disable-benchmarks
40-
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-7.10.3], sources: [hvr-ghc]}}
40+
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.2.2], sources: [hvr-ghc]}}
4141
- compiler: "ghc-8.0.2"
4242
# env: TEST=--disable-tests BENCH=--disable-benchmarks
43-
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.0.2], sources: [hvr-ghc]}}
44-
- compiler: "ghc-8.2.2"
43+
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.0.2], sources: [hvr-ghc]}}
44+
- compiler: "ghc-7.10.3"
45+
# env: TEST=--disable-tests BENCH=--disable-benchmarks
46+
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.10.3], sources: [hvr-ghc]}}
47+
- compiler: "ghc-7.8.4"
4548
# env: TEST=--disable-tests BENCH=--disable-benchmarks
46-
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.2.2], sources: [hvr-ghc]}}
49+
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.8.4], sources: [hvr-ghc]}}
4750

4851
before_install:
4952
- HC=${CC}
@@ -61,21 +64,25 @@ install:
6164
- BENCH=${BENCH---enable-benchmarks}
6265
- TEST=${TEST---enable-tests}
6366
- HADDOCK=${HADDOCK-true}
64-
- INSTALLED=${INSTALLED-true}
67+
- UNCONSTRAINED=${UNCONSTRAINED-true}
68+
- NOINSTALLEDCONSTRAINTS=${NOINSTALLEDCONSTRAINTS-false}
6569
- GHCHEAD=${GHCHEAD-false}
6670
- travis_retry cabal update -v
6771
- "sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config"
6872
- rm -fv cabal.project cabal.project.local
6973
- grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
7074
- "printf 'packages: \".\"\\n' > cabal.project"
71-
- cat cabal.project
75+
- touch cabal.project.local
76+
- "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
77+
- cat cabal.project || true
78+
- cat cabal.project.local || true
7279
- if [ -f "./configure.ac" ]; then
7380
(cd "." && autoreconf -i);
7481
fi
7582
- rm -f cabal.project.freeze
7683
- cabal new-build -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dep -j2 all
7784
- cabal new-build -w ${HC} --disable-tests --disable-benchmarks --project-file="cabal.project" --dep -j2 all
78-
- rm -rf "."/.ghc.environment.* "."/dist
85+
- rm -rf .ghc.environment.* "."/dist
7986
- DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
8087

8188
# Here starts the actual work to be performed for the package under test;
@@ -87,13 +94,13 @@ script:
8794
- cd ${DISTDIR} || false
8895
- find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
8996
- "printf 'packages: servant-multipart-*/*.cabal\\n' > cabal.project"
90-
- cat cabal.project
97+
- touch cabal.project.local
98+
- "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
99+
- cat cabal.project || true
100+
- cat cabal.project.local || true
91101
# this builds all libraries and executables (without tests/benchmarks)
92102
- cabal new-build -w ${HC} --disable-tests --disable-benchmarks all
93103

94-
# Build with installed constraints for packages in global-db
95-
- 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
96-
97104
# build & run tests, build benchmarks
98105
- cabal new-build -w ${HC} ${TEST} ${BENCH} all
99106

@@ -104,13 +111,27 @@ script:
104111
- rm -rf ./dist-newstyle
105112
- if $HADDOCK; then cabal new-haddock -w ${HC} ${TEST} ${BENCH} all; else echo "Skipping haddock generation";fi
106113

114+
# Build without installed constraints for packages in global-db
115+
- if $UNCONSTRAINED; then rm -f cabal.project.local; echo cabal new-build -w ${HC} --disable-tests --disable-benchmarks all; else echo "Not building without installed constraints"; fi
116+
117+
# Constraint sets
118+
- rm -rf cabal.project.local
119+
120+
# Constraint set servant-0.10
107121
- if [ $HCNUMVER -ge 70800 ] && [ $HCNUMVER -lt 80200 ]; then cabal new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.10.*' all; else echo skipping...; fi
108122

123+
# Constraint set servant-0.11
109124
- if [ $HCNUMVER -ge 70800 ] && [ $HCNUMVER -lt 80400 ]; then cabal new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.11.*' all; else echo skipping...; fi
110125

126+
# Constraint set servant-0.12
111127
- if [ $HCNUMVER -ge 70800 ] && [ $HCNUMVER -lt 80400 ]; then cabal new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.12.*' all; else echo skipping...; fi
112128

113-
- if [ $HCNUMVER -ge 70800 ] && [ $HCNUMVER -lt 80400 ]; then cabal new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.13.*' all; else echo skipping...; fi
129+
# Constraint set servant-0.13
130+
- if [ $HCNUMVER -ge 70800 ] && [ $HCNUMVER -lt 80600 ]; then cabal new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.13.*' all; else echo skipping...; fi
131+
132+
# Constraint set servant-0.14
133+
- if [ $HCNUMVER -ge 70800 ] && [ $HCNUMVER -lt 80600 ]; then cabal new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.14.*' all; else echo skipping...; fi
134+
114135

115136
# REGENDATA ["--branch","master","--output",".travis.yml","--config","servant-multipart.cabal"]
116137
# EOF

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1+
0.11.2
2+
------
3+
4+
- Support `servant-0.14`
5+
16
0.11.1
2-
-----
7+
------
38

49
- Support `servant-0.13`
510
- Export MultipartBackend and TmpBackendOptions

cabal.make-travis-yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,9 @@ constraint-set servant-0.12
1111
constraints: servant ==0.12.*
1212

1313
constraint-set servant-0.13
14-
ghc: >= 7.8 && <8.4
14+
ghc: >= 7.8 && <8.6
1515
constraints: servant ==0.13.*
16+
17+
constraint-set servant-0.14
18+
ghc: >= 7.8 && <8.6
19+
constraints: servant ==0.14.*

servant-multipart.cabal

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: servant-multipart
2-
version: 0.11.1
2+
version: 0.11.2
33
synopsis: multipart/form-data (e.g file upload) support for servant
44
description:
55
This package adds support for file upload to the servant ecosystem. It draws
@@ -20,7 +20,8 @@ tested-with:
2020
GHC==7.8.4,
2121
GHC==7.10.3,
2222
GHC==8.0.2,
23-
GHC==8.2.2
23+
GHC==8.2.2,
24+
GHC==8.4.3
2425

2526
library
2627
hs-source-dirs: src
@@ -32,9 +33,9 @@ library
3233
http-media >= 0.6 && <0.8,
3334
lens >= 4.0 && < 4.17,
3435
resourcet >=1.1 && <1.3,
35-
servant >=0.10 && <0.14,
36-
servant-docs >=0.10 && <0.14,
37-
servant-server >=0.10 && <0.14,
36+
servant >=0.10 && <0.15,
37+
servant-docs >=0.10 && <0.15,
38+
servant-server >=0.10 && <0.15,
3839
text >=1.2 && <1.3,
3940
transformers >=0.3 && <0.6,
4041
wai >= 3.2 && <3.3,

src/Servant/Multipart.hs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,8 +425,13 @@ instance {-# OVERLAPPING #-}
425425
lookupContext _ (c :. _) = Just c
426426

427427
instance HasLink sub => HasLink (MultipartForm tag a :> sub) where
428+
#if MIN_VERSION_servant(0,14,0)
429+
type MkLink (MultipartForm tag a :> sub) r = MkLink sub r
430+
toLink toA _ = toLink toA (Proxy :: Proxy sub)
431+
#else
428432
type MkLink (MultipartForm tag a :> sub) = MkLink sub
429433
toLink _ = toLink (Proxy :: Proxy sub)
434+
#endif
430435

431436
-- | The 'ToMultipartSample' class allows you to create sample 'MultipartData'
432437
-- inputs for your type for use with "Servant.Docs". This is used by the

0 commit comments

Comments
 (0)