Skip to content

Commit 77ea599

Browse files
authored
Merge pull request #985 from phadej/forward-port
Forward port
2 parents 2edaa5d + d45870d commit 77ea599

File tree

14 files changed

+229
-124
lines changed

14 files changed

+229
-124
lines changed

.travis.yml

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,21 @@ install:
6464
- BENCH=${BENCH---enable-benchmarks}
6565
- TEST=${TEST---enable-tests}
6666
- HADDOCK=${HADDOCK-true}
67-
- INSTALLED=${INSTALLED-true}
67+
- UNCONSTRAINED=${UNCONSTRAINED-true}
68+
- NOINSTALLEDCONSTRAINTS=${NOINSTALLEDCONSTRAINTS-false}
6869
- GHCHEAD=${GHCHEAD-false}
6970
- travis_retry cabal update -v
7071
- "sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config"
7172
- rm -fv cabal.project cabal.project.local
7273
- "if [ $HCNUMVER -ge 70800 ]; then sed -i.bak 's/-- ghc-options:.*/ghc-options: -j2/' ${HOME}/.cabal/config; fi"
7374
- grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
74-
- "printf 'packages: \"servant\" \"servant-client\" \"servant-client-core\" \"servant-docs\" \"servant-foreign\" \"servant-server\" \"doc/tutorial\" \"doc/cookbook/basic-auth\" \"doc/cookbook/db-postgres-pool\" \"doc/cookbook/db-sqlite-simple\" \"doc/cookbook/https\" \"doc/cookbook/pagination\" \"doc/cookbook/structuring-apis\" \"doc/cookbook/using-custom-monad\"\\n' > cabal.project"
75+
- "printf 'packages: \"servant\" \"servant-client\" \"servant-client-core\" \"servant-docs\" \"servant-foreign\" \"servant-server\" \"doc/tutorial\" \"doc/cookbook/basic-auth\" \"doc/cookbook/db-postgres-pool\" \"doc/cookbook/db-sqlite-simple\" \"doc/cookbook/file-upload\" \"doc/cookbook/https\" \"doc/cookbook/jwt-and-basic-auth\" \"doc/cookbook/pagination\" \"doc/cookbook/structuring-apis\" \"doc/cookbook/using-custom-monad\"\\n' > cabal.project"
7576
- "echo 'constraints: foundation >=0.0.14,memory <0.14.12 || >0.14.12' >> cabal.project"
76-
- "echo 'allow-newer: servant-auth-server:http-types,servant-auth-server:servant-server, http-media:base, servant-js:servant,servant-pagination:servant,servant-pagination:servant-server' >> cabal.project"
77-
- cat cabal.project
77+
- "echo 'allow-newer: servant-auth-server:http-types,servant-auth-server:servant-server, servant-pagination:servant,servant-pagination:servant-server' >> cabal.project"
78+
- touch cabal.project.local
79+
- "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
80+
- cat cabal.project || true
81+
- cat cabal.project.local || true
7882
- if [ -f "servant/configure.ac" ]; then
7983
(cd "servant" && autoreconf -i);
8084
fi
@@ -105,9 +109,15 @@ install:
105109
- if [ -f "doc/cookbook/db-sqlite-simple/configure.ac" ]; then
106110
(cd "doc/cookbook/db-sqlite-simple" && autoreconf -i);
107111
fi
112+
- if [ -f "doc/cookbook/file-upload/configure.ac" ]; then
113+
(cd "doc/cookbook/file-upload" && autoreconf -i);
114+
fi
108115
- if [ -f "doc/cookbook/https/configure.ac" ]; then
109116
(cd "doc/cookbook/https" && autoreconf -i);
110117
fi
118+
- if [ -f "doc/cookbook/jwt-and-basic-auth/configure.ac" ]; then
119+
(cd "doc/cookbook/jwt-and-basic-auth" && autoreconf -i);
120+
fi
111121
- if [ -f "doc/cookbook/pagination/configure.ac" ]; then
112122
(cd "doc/cookbook/pagination" && autoreconf -i);
113123
fi
@@ -118,7 +128,7 @@ install:
118128
(cd "doc/cookbook/using-custom-monad" && autoreconf -i);
119129
fi
120130
- rm -f cabal.project.freeze
121-
- rm -rf .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/basic-auth"/dist "doc/cookbook/db-postgres-pool"/dist "doc/cookbook/db-sqlite-simple"/dist "doc/cookbook/https"/dist "doc/cookbook/pagination"/dist "doc/cookbook/structuring-apis"/dist "doc/cookbook/using-custom-monad"/dist
131+
- rm -rf .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/basic-auth"/dist "doc/cookbook/db-postgres-pool"/dist "doc/cookbook/db-sqlite-simple"/dist "doc/cookbook/file-upload"/dist "doc/cookbook/https"/dist "doc/cookbook/jwt-and-basic-auth"/dist "doc/cookbook/pagination"/dist "doc/cookbook/structuring-apis"/dist "doc/cookbook/using-custom-monad"/dist
122132
- DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
123133

124134
# Here starts the actual work to be performed for the package under test;
@@ -136,22 +146,26 @@ script:
136146
- (cd "doc/cookbook/basic-auth" && cabal sdist)
137147
- (cd "doc/cookbook/db-postgres-pool" && cabal sdist)
138148
- (cd "doc/cookbook/db-sqlite-simple" && cabal sdist)
149+
- (cd "doc/cookbook/file-upload" && cabal sdist)
139150
- (cd "doc/cookbook/https" && cabal sdist)
151+
- (cd "doc/cookbook/jwt-and-basic-auth" && cabal sdist)
140152
- (cd "doc/cookbook/pagination" && cabal sdist)
141153
- (cd "doc/cookbook/structuring-apis" && cabal sdist)
142154
- (cd "doc/cookbook/using-custom-monad" && cabal sdist)
143155
- echo -en 'travis_fold:end:sdist\\r'
144156
- echo Unpacking... && echo -en 'travis_fold:start:unpack\\r'
145-
- 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/basic-auth"/dist/cookbook-basic-auth-*.tar.gz "doc/cookbook/db-postgres-pool"/dist/cookbook-db-postgres-pool-*.tar.gz "doc/cookbook/db-sqlite-simple"/dist/cookbook-db-sqlite-simple-*.tar.gz "doc/cookbook/https"/dist/cookbook-https-*.tar.gz "doc/cookbook/pagination"/dist/cookbook-pagination-*.tar.gz "doc/cookbook/structuring-apis"/dist/cookbook-structuring-apis-*.tar.gz "doc/cookbook/using-custom-monad"/dist/cookbook-using-custom-monad-*.tar.gz ${DISTDIR}/
157+
- 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/basic-auth"/dist/cookbook-basic-auth-*.tar.gz "doc/cookbook/db-postgres-pool"/dist/cookbook-db-postgres-pool-*.tar.gz "doc/cookbook/db-sqlite-simple"/dist/cookbook-db-sqlite-simple-*.tar.gz "doc/cookbook/file-upload"/dist/cookbook-file-upload-*.tar.gz "doc/cookbook/https"/dist/cookbook-https-*.tar.gz "doc/cookbook/jwt-and-basic-auth"/dist/cookbook-jwt-and-basic-auth-*.tar.gz "doc/cookbook/pagination"/dist/cookbook-pagination-*.tar.gz "doc/cookbook/structuring-apis"/dist/cookbook-structuring-apis-*.tar.gz "doc/cookbook/using-custom-monad"/dist/cookbook-using-custom-monad-*.tar.gz ${DISTDIR}/
146158
- cd ${DISTDIR} || false
147159
- find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
148-
- "printf 'packages: servant-*/*.cabal servant-client-*/*.cabal servant-client-core-*/*.cabal servant-docs-*/*.cabal servant-foreign-*/*.cabal servant-server-*/*.cabal tutorial-*/*.cabal cookbook-basic-auth-*/*.cabal cookbook-db-postgres-pool-*/*.cabal cookbook-db-sqlite-simple-*/*.cabal cookbook-https-*/*.cabal cookbook-pagination-*/*.cabal cookbook-structuring-apis-*/*.cabal cookbook-using-custom-monad-*/*.cabal\\n' > cabal.project"
160+
- "printf 'packages: servant-*/*.cabal servant-client-*/*.cabal servant-client-core-*/*.cabal servant-docs-*/*.cabal servant-foreign-*/*.cabal servant-server-*/*.cabal tutorial-*/*.cabal cookbook-basic-auth-*/*.cabal cookbook-db-postgres-pool-*/*.cabal cookbook-db-sqlite-simple-*/*.cabal cookbook-file-upload-*/*.cabal cookbook-https-*/*.cabal cookbook-jwt-and-basic-auth-*/*.cabal cookbook-pagination-*/*.cabal cookbook-structuring-apis-*/*.cabal cookbook-using-custom-monad-*/*.cabal\\n' > cabal.project"
149161
- "echo 'constraints: foundation >=0.0.14,memory <0.14.12 || >0.14.12' >> cabal.project"
150-
- "echo 'allow-newer: servant-auth-server:http-types,servant-auth-server:servant-server, http-media:base, servant-js:servant,servant-pagination:servant,servant-pagination:servant-server' >> cabal.project"
151-
- cat cabal.project
162+
- "echo 'allow-newer: servant-auth-server:http-types,servant-auth-server:servant-server, servant-pagination:servant,servant-pagination:servant-server' >> cabal.project"
163+
- touch cabal.project.local
164+
- "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
165+
- cat cabal.project || true
166+
- cat cabal.project.local || true
152167
- echo -en 'travis_fold:end:unpack\\r'
153168

154-
155169
- echo Building with tests and benchmarks... && echo -en 'travis_fold:start:build-everything\\r'
156170
# build & run tests, build benchmarks
157171
- cabal new-build -w ${HC} ${TEST} ${BENCH} all
@@ -164,5 +178,10 @@ script:
164178
- if $HADDOCK; then cabal new-haddock -w ${HC} ${TEST} ${BENCH} all; else echo "Skipping haddock generation";fi
165179

166180
- echo -en 'travis_fold:end:haddock\\r'
181+
- echo Building without installed constraints for packages in global-db... && echo -en 'travis_fold:start:build-installed\\r'
182+
# Build without installed constraints for packages in global-db
183+
- 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
184+
185+
- echo -en 'travis_fold:end:build-installed\\r'
167186
# REGENDATA ["--config=cabal.make-travis-yml","--output=.travis.yml","cabal.project"]
168187
# EOF

cabal.make-travis-yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ install-dependencies-step: False
66

77
-- this speed-ups the build a little, but we have to check these for release
88
no-tests-no-benchmarks: False
9-
build-with-installed-step: False
109

1110
-- Don't run cabal check, as cookbook examples won't pass it
1211
cabal-check: False

cabal.project

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,9 @@ packages: servant/
1111
doc/cookbook/basic-auth
1212
doc/cookbook/db-postgres-pool
1313
doc/cookbook/db-sqlite-simple
14-
-- MkLink changed
15-
-- doc/cookbook/file-upload
14+
doc/cookbook/file-upload
1615
doc/cookbook/https
17-
-- servant-auth-* doesn't support GHC-8.4
18-
-- doc/cookbook/jwt-and-basic-auth
16+
doc/cookbook/jwt-and-basic-auth
1917
doc/cookbook/pagination
2018
doc/cookbook/structuring-apis
2119
doc/cookbook/using-custom-monad
@@ -30,9 +28,5 @@ constraints:
3028
memory <0.14.12 || >0.14.12
3129

3230
allow-newer:
33-
http-media:base
34-
35-
allow-newer:
36-
servant-js:servant,
3731
servant-pagination:servant,
3832
servant-pagination:servant-server

servant-client-core/CHANGELOG.md

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,50 @@
44
0.14
55
----
66

7-
- Add a `hoistClientMonad` method to the `HasClient` typeclass, for
8-
changing the monad in which client functions run.
7+
- `Stream` takes a status code argument
8+
9+
```diff
10+
-Stream method framing ctype a
11+
+Stream method status framing ctype a
12+
```
13+
14+
([#966](https://github.com/haskell-servant/servant/pull/966)
15+
[#972](https://github.com/haskell-servant/servant/pull/972))
16+
17+
- `ToStreamGenerator` definition changed, so it's possible to write an instance
18+
for conduits.
19+
20+
```diff
21+
-class ToStreamGenerator f a where
22+
- toStreamGenerator :: f a -> StreamGenerator a
23+
+class ToStreamGenerator a b | a -> b where
24+
+ toStreamGenerator :: a -> StreamGenerator b
25+
```
26+
27+
([#959](https://github.com/haskell-servant/servant/pull/959))
28+
29+
- Added `NoFraming` streaming strategy
30+
([#959](https://github.com/haskell-servant/servant/pull/959))
31+
32+
- *servant-client-core* Free `Client` implementation.
33+
Useful for testing `HasClient` instances.
34+
([#920](https://github.com/haskell-servant/servant/pull/920))
35+
36+
- *servant-client-core* Add `hoistClient` to `HasClient`.
37+
Just like `hoistServer` allows us to change the monad in which request handlers
38+
of a web application live in, we also have `hoistClient` for changing the monad
39+
in which *client functions* live.
40+
Read [tutorial section for more information](https://haskell-servant.readthedocs.io/en/release-0.14/tutorial/Client.html#changing-the-monad-the-client-functions-live-in).
941
([#936](https://github.com/haskell-servant/servant/pull/936))
1042

43+
iF you have own combinators, you'll need to define a new method of
44+
`HasClient` class, for example:
45+
46+
```haskell
47+
type Client m (MyCombinator :> api) = MyValue :> Client m api
48+
hoistClientMonad pm _ nt cl = hoistClientMonad pm (Proxy :: Proxy api) nt . cl
49+
```
50+
1151
0.13.0.1
1252
--------
1353

servant-client-core/servant-client-core.cabal

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,11 @@ library
5151
base >= 4.7 && < 4.12
5252
, bytestring >= 0.10.4.0 && < 0.11
5353
, containers >= 0.5.5.1 && < 0.6
54-
, mtl >= 2.1 && < 2.3
5554
, text >= 1.2.3.0 && < 1.3
5655

5756
if !impl(ghc >= 8.0)
5857
build-depends:
59-
semigroups >=0.18.3 && <0.19
58+
semigroups >=0.18.4 && <0.19
6059

6160
-- Servant dependencies
6261
build-depends:
@@ -65,16 +64,16 @@ library
6564
-- Other dependencies: Lower bound around what is in the latest Stackage LTS.
6665
-- Here can be exceptions if we really need features from the newer versions.
6766
build-depends:
68-
base-compat >= 0.9.3 && < 0.11
67+
base-compat >= 0.10.1 && < 0.11
6968
, base64-bytestring >= 1.0.0.1 && < 1.1
70-
, exceptions >= 0.8.3 && < 0.11
71-
, free >= 5.0.1 && < 5.1
72-
, generics-sop >= 0.3.1.0 && < 0.4
73-
, http-api-data >= 0.3.7.1 && < 0.4
74-
, http-media >= 0.7.1.1 && < 0.8
75-
, http-types >= 0.12 && < 0.13
69+
, exceptions >= 0.10.0 && < 0.11
70+
, free >= 5.0.2 && < 5.1
71+
, generics-sop >= 0.3.2.0 && < 0.4
72+
, http-api-data >= 0.3.8.1 && < 0.4
73+
, http-media >= 0.7.1.2 && < 0.8
74+
, http-types >= 0.12.1 && < 0.13
7675
, network-uri >= 2.6.1.0 && < 2.7
77-
, safe >= 0.3.15 && < 0.4
76+
, safe >= 0.3.17 && < 0.4
7877

7978
hs-source-dirs: src
8079
default-language: Haskell2010
@@ -99,8 +98,8 @@ test-suite spec
9998
-- Additonal dependencies
10099
build-depends:
101100
deepseq >= 1.3.0.2 && <1.5
102-
, hspec >= 2.4.4 && <2.6
103-
, QuickCheck >= 2.10.1 && < 2.12
101+
, hspec >= 2.4.1 && <2.6
102+
, QuickCheck >= 2.11.3 && < 2.12
104103

105104
build-tool-depends:
106-
hspec-discover:hspec-discover >= 2.4.4 && <2.6
105+
hspec-discover:hspec-discover >= 2.5.1 && <2.6

servant-client/CHANGELOG.md

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,45 @@
44
0.14
55
----
66

7-
- Add `hoistClient` for changing the monad in which
8-
client functions run.
7+
- `Stream` takes a status code argument
8+
9+
```diff
10+
-Stream method framing ctype a
11+
+Stream method status framing ctype a
12+
```
13+
14+
([#966](https://github.com/haskell-servant/servant/pull/966)
15+
[#972](https://github.com/haskell-servant/servant/pull/972))
16+
17+
- `ToStreamGenerator` definition changed, so it's possible to write an instance
18+
for conduits.
19+
20+
```diff
21+
-class ToStreamGenerator f a where
22+
- toStreamGenerator :: f a -> StreamGenerator a
23+
+class ToStreamGenerator a b | a -> b where
24+
+ toStreamGenerator :: a -> StreamGenerator b
25+
```
26+
27+
([#959](https://github.com/haskell-servant/servant/pull/959))
28+
29+
- Added `NoFraming` streaming strategy
30+
([#959](https://github.com/haskell-servant/servant/pull/959))
31+
32+
- *servant-client-core* Add `hoistClient` to `HasClient`.
33+
Just like `hoistServer` allows us to change the monad in which request handlers
34+
of a web application live in, we also have `hoistClient` for changing the monad
35+
in which *client functions* live.
36+
Read [tutorial section for more information](https://haskell-servant.readthedocs.io/en/release-0.14/tutorial/Client.html#changing-the-monad-the-client-functions-live-in).
937
([#936](https://github.com/haskell-servant/servant/pull/936))
1038

39+
- *servant-client* Add more constructors to `RequestBody`, including
40+
`RequestBodyStream`.
41+
*Note:* we are looking for http-library agnostic API,
42+
so the might change again soon.
43+
Tell us which constructors are useful for you!
44+
([#913](https://github.com/haskell-servant/servant/pull/913))
45+
1146
0.13.0.1
1247
--------
1348

servant-client/servant-client.cabal

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ library
5151
, transformers >= 0.3.0.0 && < 0.6
5252

5353
if !impl(ghc >= 8.0)
54-
build-depends: semigroups >=0.18.3 && <0.19
54+
build-depends: semigroups >=0.18.4 && <0.19
5555

5656
-- Servant dependencies
5757
build-depends:
@@ -60,19 +60,16 @@ library
6060
-- Other dependencies: Lower bound around what is in the latest Stackage LTS.
6161
-- Here can be exceptions if we really need features from the newer versions.
6262
build-depends:
63-
aeson >= 1.2.3.0 && < 1.5
64-
, base-compat >= 0.9.3 && < 0.11
65-
, attoparsec >= 0.13.2.0 && < 0.14
66-
, http-client >= 0.5.7.1 && < 0.6
67-
, http-client-tls >= 0.3.5.1 && < 0.4
68-
, http-media >= 0.7.1.1 && < 0.8
69-
, http-types >= 0.12 && < 0.13
70-
, exceptions >= 0.8.3 && < 0.11
71-
, monad-control >= 1.0.0.4 && < 1.1
72-
, semigroupoids >= 5.2.1 && < 5.3
73-
, stm >= 2.4.4.1 && < 2.5
74-
, transformers-base >= 0.4.4 && < 0.5
75-
, transformers-compat >= 0.5.1 && < 0.7
63+
base-compat >= 0.10.1 && < 0.11
64+
, http-client >= 0.5.12 && < 0.6
65+
, http-media >= 0.7.1.2 && < 0.8
66+
, http-types >= 0.12.1 && < 0.13
67+
, exceptions >= 0.10.0 && < 0.11
68+
, monad-control >= 1.0.2.3 && < 1.1
69+
, semigroupoids >= 5.2.2 && < 5.3
70+
, stm >= 2.4.5.0 && < 2.5
71+
, transformers-base >= 0.4.5.2 && < 0.5
72+
, transformers-compat >= 0.6.2 && < 0.7
7673

7774
hs-source-dirs: src
7875
default-language: Haskell2010
@@ -97,10 +94,8 @@ test-suite spec
9794
, aeson
9895
, base-compat
9996
, bytestring
100-
, containers
10197
, http-api-data
10298
, http-client
103-
, http-media
10499
, http-types
105100
, mtl
106101
, servant-client
@@ -117,22 +112,21 @@ test-suite spec
117112

118113
-- Additonal dependencies
119114
build-depends:
120-
deepseq >= 1.3.0.2 && < 1.5
121-
, generics-sop >= 0.3.1.0 && < 0.4
122-
, hspec >= 2.4.4 && < 2.6
115+
generics-sop >= 0.3.2.0 && < 0.4
116+
, hspec >= 2.5.1 && < 2.6
123117
, HUnit >= 1.6 && < 1.7
124-
, random-bytestring >= 0.1 && < 0.2
125118
, network >= 2.6.3.2 && < 2.8
126119
, QuickCheck >= 2.10.1 && < 2.12
127120
, servant == 0.14.*
128121
, servant-server == 0.14.*
129122

130123
build-tool-depends:
131-
hspec-discover:hspec-discover >= 2.4.4 && < 2.6
124+
hspec-discover:hspec-discover >= 2.5.1 && < 2.6
132125

133126
test-suite readme
134127
type: exitcode-stdio-1.0
135128
main-is: README.lhs
136129
build-depends: base, servant, http-client, text, servant-client, markdown-unlit
137130
build-tool-depends: markdown-unlit:markdown-unlit
138131
ghc-options: -pgmL markdown-unlit
132+
default-language: Haskell2010

servant-docs/servant-docs.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ library
6464
, case-insensitive >= 1.2.0.10 && < 1.3
6565
, control-monad-omega >= 0.3.1 && < 0.4
6666
, hashable >= 1.2.6.1 && < 1.3
67-
, http-media >= 0.7.1.1 && < 0.8
67+
, http-media >= 0.7.0 && < 0.8
6868
, http-types >= 0.12 && < 0.13
6969
, lens >= 4.15.4 && < 4.17
7070
, string-conversions >= 0.4.0.1 && < 0.5

servant-foreign/servant-foreign.cabal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
name: servant-foreign
22
version: 0.11.1
3+
x-revision: 2
34
synopsis: Helpers for generating clients for servant APIs in any programming language
45
description:
56
Helper types and functions for generating client functions for servant APIs in any programming language

0 commit comments

Comments
 (0)