Skip to content

Commit 129ad91

Browse files
authored
Merge pull request #56 from haskell-servant/ghc-8.6
Support GHC-8.6. Drop support for servant <0.14
2 parents b245b4c + ae9d28e commit 129ad91

File tree

24 files changed

+206
-285
lines changed

24 files changed

+206
-285
lines changed

.travis.yml

Lines changed: 14 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#
33
# runghc make_travis_yml_2.hs '--branch' 'master' '--output' '.travis.yml' '--config' 'cabal.project'
44
#
5-
# For more information, see https://github.com/hvr/multi-ghc-travis
5+
# For more information, see https://github.com/haskell-CI/haskell-ci
66
#
77
language: c
88
sudo: false
@@ -32,21 +32,24 @@ before_cache:
3232

3333
matrix:
3434
include:
35-
- compiler: "ghc-8.4.3"
35+
- compiler: "ghc-8.6.1"
3636
# env: TEST=--disable-tests BENCH=--disable-benchmarks
37-
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.4.3], sources: [hvr-ghc]}}
37+
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.6.1], sources: [hvr-ghc]}}
38+
- compiler: "ghc-8.4.4"
39+
# env: TEST=--disable-tests BENCH=--disable-benchmarks
40+
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.4.4], sources: [hvr-ghc]}}
3841
- compiler: "ghc-8.2.2"
3942
# env: TEST=--disable-tests BENCH=--disable-benchmarks
40-
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.2.2], sources: [hvr-ghc]}}
43+
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.2.2], sources: [hvr-ghc]}}
4144
- compiler: "ghc-8.0.2"
4245
# env: TEST=--disable-tests BENCH=--disable-benchmarks
43-
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.0.2], sources: [hvr-ghc]}}
46+
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.0.2], sources: [hvr-ghc]}}
4447
- compiler: "ghc-7.10.3"
4548
# 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]}}
49+
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.10.3], sources: [hvr-ghc]}}
4750
- compiler: "ghc-7.8.4"
4851
# env: TEST=--disable-tests BENCH=--disable-benchmarks
49-
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.8.4], sources: [hvr-ghc]}}
52+
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.8.4], sources: [hvr-ghc]}}
5053

5154
before_install:
5255
- HC=${CC}
@@ -73,7 +76,7 @@ install:
7376
- grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
7477
- "printf 'packages: \"servant-swagger-ui\" \"servant-swagger-ui-core\" \"servant-swagger-ui-example\" \"servant-swagger-ui-jensoleg\" \"servant-swagger-ui-redoc\"\\n' > cabal.project"
7578
- 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"
79+
- "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | grep -vw -- servant-swagger-ui | grep -vw -- servant-swagger-ui-core | grep -vw -- servant-swagger-ui-example | grep -vw -- servant-swagger-ui-jensoleg | grep -vw -- servant-swagger-ui-redoc | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
7780
- cat cabal.project || true
7881
- cat cabal.project.local || true
7982
- if [ -f "servant-swagger-ui/configure.ac" ]; then
@@ -101,17 +104,13 @@ install:
101104
# any command which exits with a non-zero exit code causes the build to fail.
102105
script:
103106
# test that source-distributions can be generated
104-
- (cd "servant-swagger-ui" && cabal sdist)
105-
- (cd "servant-swagger-ui-core" && cabal sdist)
106-
- (cd "servant-swagger-ui-example" && cabal sdist)
107-
- (cd "servant-swagger-ui-jensoleg" && cabal sdist)
108-
- (cd "servant-swagger-ui-redoc" && cabal sdist)
109-
- mv "servant-swagger-ui"/dist/servant-swagger-ui-*.tar.gz "servant-swagger-ui-core"/dist/servant-swagger-ui-core-*.tar.gz "servant-swagger-ui-example"/dist/servant-swagger-ui-example-*.tar.gz "servant-swagger-ui-jensoleg"/dist/servant-swagger-ui-jensoleg-*.tar.gz "servant-swagger-ui-redoc"/dist/servant-swagger-ui-redoc-*.tar.gz ${DISTDIR}/
107+
- cabal new-sdist all
108+
- mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
110109
- cd ${DISTDIR} || false
111110
- find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
112111
- "printf 'packages: servant-swagger-ui-*/*.cabal servant-swagger-ui-core-*/*.cabal servant-swagger-ui-example-*/*.cabal servant-swagger-ui-jensoleg-*/*.cabal servant-swagger-ui-redoc-*/*.cabal\\n' > cabal.project"
113112
- touch cabal.project.local
114-
- "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
113+
- "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | grep -vw -- servant-swagger-ui | grep -vw -- servant-swagger-ui-core | grep -vw -- servant-swagger-ui-example | grep -vw -- servant-swagger-ui-jensoleg | grep -vw -- servant-swagger-ui-redoc | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
115114
- cat cabal.project || true
116115
- cat cabal.project.local || true
117116
# this builds all libraries and executables (without tests/benchmarks)
@@ -128,7 +127,6 @@ script:
128127
- (cd servant-swagger-ui-redoc-* && cabal check)
129128

130129
# haddock
131-
- rm -rf ./dist-newstyle
132130
- if $HADDOCK; then cabal new-haddock -w ${HC} ${TEST} ${BENCH} all; else echo "Skipping haddock generation";fi
133131

134132
# Build without installed constraints for packages in global-db
@@ -137,27 +135,6 @@ script:
137135
# Constraint sets
138136
- rm -rf cabal.project.local
139137

140-
# Constraint set servant-0.7
141-
- if [ $HCNUMVER -ge 70800 ] && [ $HCNUMVER -lt 80000 ]; then cabal new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.7.*' all; else echo skipping...; fi
142-
143-
# Constraint set servant-0.8
144-
- if [ $HCNUMVER -ge 70800 ] && [ $HCNUMVER -lt 80200 ]; then cabal new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.8.*' all; else echo skipping...; fi
145-
146-
# Constraint set servant-0.9
147-
- if [ $HCNUMVER -ge 70800 ] && [ $HCNUMVER -lt 80200 ]; then cabal new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.9.*' all; else echo skipping...; fi
148-
149-
# Constraint set servant-0.10
150-
- 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
151-
152-
# Constraint set servant-0.11
153-
- 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
154-
155-
# Constraint set servant-0.12
156-
- 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
157-
158-
# Constraint set servant-0.13
159-
- 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
160-
161138
# Constraint set servant-0.14
162139
- 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
163140

cabal.make-travis-yml

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,3 @@
1-
constraint-set servant-0.7
2-
ghc: >= 7.8 && <8.0
3-
constraints: servant ==0.7.*
4-
5-
constraint-set servant-0.8
6-
ghc: >= 7.8 && <8.2
7-
constraints: servant ==0.8.*
8-
9-
constraint-set servant-0.9
10-
ghc: >= 7.8 && <8.2
11-
constraints: servant ==0.9.*
12-
13-
constraint-set servant-0.10
14-
ghc: >= 7.8 && <8.2
15-
constraints: servant ==0.10.*
16-
17-
constraint-set servant-0.11
18-
ghc: >= 7.8 && <8.4
19-
constraints: servant ==0.11.*
20-
21-
constraint-set servant-0.12
22-
ghc: >= 7.8 && <8.4
23-
constraints: servant ==0.12.*
24-
25-
constraint-set servant-0.13
26-
ghc: >= 7.8 && <8.6
27-
constraints: servant ==0.13.*
28-
291
constraint-set servant-0.14
302
ghc: >= 7.8 && <8.6
313
constraints: servant ==0.14.*
Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
cabal-version: 1.12
22
name: servant-swagger-ui-core
3-
version: 0.3.1
4-
x-revision: 1
3+
version: 0.3.2
54

65
synopsis: Servant swagger ui core components
76
category: Web, Servant, Swagger
@@ -18,44 +17,32 @@ maintainer: [email protected]
1817
license: BSD3
1918
license-file: LICENSE
2019
build-type: Simple
21-
tested-with: GHC ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.3
20+
tested-with: GHC ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.1
2221
extra-source-files:
2322
Changelog.md
2423

2524
source-repository head
2625
type: git
2726
location: https://github.com/haskell-servant/servant-swagger-ui
2827

29-
flag servant-0-5
30-
description: Whether use servant >= 0.5
31-
manual: False
32-
default: True
33-
3428
library
3529
hs-source-dirs:
3630
src
3731
ghc-options: -Wall
3832

3933
build-depends:
40-
base >=4.7 && <4.12
41-
, blaze-markup >=0.7.0.2 && <0.9
42-
, bytestring >=0.10.4.0 && <0.11
43-
, http-media >=0.6.2 && <0.8
44-
, servant >=0.4.4.5 && <0.15
45-
, servant-blaze >=0.4.4.5 && <0.9
46-
, servant-server >=0.4.4.5 && <0.15
47-
, swagger2 >=2.0.1 && <2.4
48-
, text >=1.2.0.6 && <1.3
49-
, wai-app-static >=3.0.1.1 && <3.2
50-
if flag(servant-0-5)
51-
build-depends:
52-
servant >=0.5
53-
, transformers >=0.3 && <0.6
54-
, transformers-compat >=0.3 && <0.7
55-
else
56-
build-depends:
57-
servant <0.5
58-
, either
34+
base >=4.7 && <4.13
35+
, blaze-markup >=0.7.0.2 && <0.9
36+
, bytestring >=0.10.4.0 && <0.11
37+
, http-media >=0.7.1.3 && <0.8
38+
, servant >=0.14 && <0.15
39+
, servant-blaze >=0.8 && <0.9
40+
, servant-server >=0.14 && <0.15
41+
, swagger2 >=2.3.0.1 && <2.4
42+
, text >=1.2.3.0 && <1.3
43+
, transformers >=0.3 && <0.6
44+
, transformers-compat >=0.3 && <0.7
45+
, wai-app-static >=3.0.1.1 && <3.2
5946
exposed-modules:
6047
Servant.Swagger.UI.Core
6148
default-language: Haskell2010

servant-swagger-ui-core/src/Servant/Swagger/UI/Core.hs

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
{-# LANGUAGE CPP #-}
21
{-# LANGUAGE ConstraintKinds #-}
32
{-# LANGUAGE DataKinds #-}
43
{-# LANGUAGE DeriveGeneric #-}
@@ -56,18 +55,6 @@ import Text.Blaze (ToMarkup (..))
5655

5756
import qualified Data.Text as T
5857

59-
#if MIN_VERSION_servant(0,7,0)
60-
-- do nothing
61-
#else
62-
#if MIN_VERSION_servant(0,5,0)
63-
import Control.Monad.Trans.Except (ExceptT)
64-
type Handler = ExceptT ServantErr IO
65-
#else
66-
import Control.Monad.Trans.Either (EitherT)
67-
type Handler = EitherT ServantErr IO
68-
#endif
69-
#endif
70-
7158
-- | Swagger schema + ui api.
7259
--
7360
-- @SwaggerSchemaUI "swagger-ui" "swagger.json"@ will result into following hierarchy:
@@ -100,26 +87,15 @@ type SwaggerSchemaUI' (dir :: Symbol) (api :: *) =
10087
-- to find schema file automatically.
10188
data SwaggerUiHtml (dir :: Symbol) (api :: *) = SwaggerUiHtml T.Text
10289

103-
#if MIN_VERSION_servant(0,14,0)
104-
#define LINK Link ~ MkLink api Link
105-
#define LINKPATH uriPath . linkURI
106-
#elif MIN_VERSION_servant(0,10,0)
107-
#define LINK Link ~ MkLink api
108-
#define LINKPATH uriPath . linkURI
109-
#else
110-
#define LINK URI ~ MkLink api
111-
#define LINKPATH uriPath
112-
#endif
113-
114-
instance (KnownSymbol dir, HasLink api, LINK, IsElem api api)
90+
instance (KnownSymbol dir, HasLink api, Link ~ MkLink api Link, IsElem api api)
11591
=> ToMarkup (SwaggerUiHtml dir api)
11692
where
11793
toMarkup (SwaggerUiHtml template) = preEscapedToMarkup
11894
$ T.replace "SERVANT_SWAGGER_UI_SCHEMA" schema
11995
$ T.replace "SERVANT_SWAGGER_UI_DIR" dir
12096
$ template
12197
where
122-
schema = T.pack $ LINKPATH $ safeLink proxyApi proxyApi
98+
schema = T.pack $ uriPath . linkURI $ safeLink proxyApi proxyApi
12399
dir = T.pack $ symbolVal (Proxy :: Proxy dir)
124100
proxyApi = Proxy :: Proxy api
125101

@@ -132,8 +108,4 @@ swaggerSchemaUIServerImpl indexTemplate files swagger = return swagger
132108
:<|> return (SwaggerUiHtml indexTemplate)
133109
:<|> rest
134110
where
135-
rest =
136-
#if MIN_VERSION_servant_server(0,11,0)
137-
Tagged $
138-
#endif
139-
staticApp $ embeddedSettings files
111+
rest = Tagged $ staticApp $ embeddedSettings files

servant-swagger-ui-example/servant-swagger-ui-example.cabal

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ maintainer: [email protected]
1414
license: BSD3
1515
license-file: LICENSE
1616
build-type: Simple
17-
tested-with: GHC ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.3
17+
tested-with: GHC ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.1
1818

1919
source-repository head
2020
type: git
@@ -23,7 +23,7 @@ source-repository head
2323
executable servant-swagger-ui-example
2424
main-is: Main.hs
2525
build-depends:
26-
base >=4.7 && <4.12
26+
base >=4.7 && <4.13
2727
, servant
2828
, servant-server
2929
, servant-swagger

servant-swagger-ui-jensoleg/servant-swagger-ui-jensoleg.cabal

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
cabal-version: 1.12
22
name: servant-swagger-ui-jensoleg
3-
version: 0.3
4-
x-revision: 2
3+
version: 0.3.2
54

65
synopsis: Servant swagger ui: Jens-Ole Graulund theme
76
category: Web, Servant, Swagger
@@ -17,7 +16,7 @@ maintainer: [email protected]
1716
license: BSD3
1817
license-file: LICENSE
1918
build-type: Simple
20-
tested-with: GHC ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.3
19+
tested-with: GHC ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.1
2120

2221
extra-source-files:
2322
jensoleg.index.html.tmpl
@@ -80,16 +79,16 @@ library
8079
ghc-options: -Wall
8180

8281
build-depends:
83-
servant-swagger-ui-core >=0.3 && <0.4
82+
servant-swagger-ui-core >=0.3.2 && <0.4
8483

8584
build-depends:
86-
base >=4.7 && <4.12
85+
base >=4.7 && <4.13
8786
, bytestring >=0.10.4.0 && <0.11
8887
, file-embed-lzma >=0 && <0.1
89-
, servant >=0.4.4.5 && <0.15
90-
, servant-server >=0.4.4.5 && <0.15
91-
, swagger2 >=2.0.1 && <2.4
92-
, text >=1.2.0.6 && <1.3
88+
, servant >=0.14 && <0.15
89+
, servant-server >=0.14 && <0.15
90+
, swagger2 >=2.3.0.1 && <2.4
91+
, text >=1.2.3.0 && <1.3
9392
exposed-modules:
9493
Servant.Swagger.UI.JensOleG
9594
default-language: Haskell2010

servant-swagger-ui-redoc/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- 0.3.2.1.22.2
2+
- Update to ReDoc-1.22.2
3+
- Add GHC-8.6 support
4+
- Drop `servant<0.14` support

servant-swagger-ui-redoc/redoc-dist-1.21.2/redoc.min.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

servant-swagger-ui-redoc/redoc-dist-1.22.2/redoc.min.js

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

servant-swagger-ui-redoc/servant-swagger-ui-redoc.cabal

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
cabal-version: 1.12
22
name: servant-swagger-ui-redoc
3-
version: 0.3.0.1.21.2
4-
x-revision: 2
3+
version: 0.3.2.1.22.2
54

65
synopsis: Servant swagger ui: ReDoc theme
76
category: Web, Servant, Swagger
@@ -17,11 +16,12 @@ maintainer: [email protected]
1716
license: BSD3
1817
license-file: LICENSE
1918
build-type: Simple
20-
tested-with: GHC ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.3
19+
tested-with: GHC ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.1
2120

2221
extra-source-files:
23-
redoc-dist-1.21.2/redoc.min.js
22+
redoc-dist-1.22.2/redoc.min.js
2423
redoc.index.html.tmpl
24+
CHANGELOG.md
2525

2626
source-repository head
2727
type: git
@@ -33,16 +33,16 @@ library
3333
ghc-options: -Wall
3434

3535
build-depends:
36-
servant-swagger-ui-core >=0.3 && <0.4
36+
servant-swagger-ui-core >=0.3.2 && <0.4
3737

3838
build-depends:
39-
base >=4.7 && <4.12
39+
base >=4.7 && <4.13
4040
, bytestring >=0.10.4.0 && <0.11
4141
, file-embed-lzma >=0 && <0.1
42-
, servant >=0.4.4.5 && <0.15
43-
, servant-server >=0.4.4.5 && <0.15
44-
, swagger2 >=2.0.1 && <2.4
45-
, text >=1.2.0.6 && <1.3
42+
, servant >=0.14 && <0.15
43+
, servant-server >=0.14 && <0.15
44+
, swagger2 >=2.3.0.1 && <2.4
45+
, text >=1.2.3.0 && <1.3
4646
exposed-modules:
4747
Servant.Swagger.UI.ReDoc
4848
default-language: Haskell2010

0 commit comments

Comments
 (0)