Merge pull request #1221 from haskell-servant/base-compat-0.11

base-compat-0.11
This commit is contained in:
Oleg Grenrus 2019-09-15 19:04:32 +03:00 committed by GitHub
commit 2c23e87119
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 177 additions and 197 deletions

51
.hlint.yaml Normal file
View file

@ -0,0 +1,51 @@
# Control which extensions/flags/modules/functions can be used
#
- extensions:
- default: false # all extension are banned by default
- name:
- CPP
- DataKinds
- DeriveDataTypeable
- DeriveFoldable
- DeriveFunctor
- DeriveGeneric
- DeriveTraversable
- FlexibleContexts
- FlexibleInstances
- FunctionalDependencies
- GADTs
- KindSignatures
- MultiParamTypeClasses
- OverloadedStrings
- PolyKinds
- RankNTypes
- ScopedTypeVariables
- TypeFamilies
- TypeOperators
- UndecidableInstances
- modules:
- {name: [Data.Set], as: Set}
- {name: Control.Arrow, within: []} # Certain modules are banned entirely
- functions:
- {name: unsafePerformIO, within: []} # unsafePerformIO can only appear in no modules
# Turn on hints that are off by default
#
# Ban "module X(module X) where", to require a real export list
- warn: {name: Use explicit module export list}
# Ignore some builtin hints
- ignore: {name: Redundant do}
- ignore: {name: Parse error}
- ignore: {name: Use fmap}
- ignore: {name: "Use <$>"}
- ignore: {name: Use list comprehension}
- ignore: {name: Use lambda-case}
- ignore: {name: Eta reduce}
# Add custom hints for this project
#
# Will suggest replacing "wibbleMany [myvar]" with "wibbleOne myvar"
# - error: {lhs: "wibbleMany [x]", rhs: wibbleOne x}

View file

@ -40,8 +40,6 @@ matrix:
addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-3.0"]}} addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-3.0"]}}
- compiler: ghc-8.0.2 - compiler: ghc-8.0.2
addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-3.0"]}} addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-3.0"]}}
allow_failures:
- compiler: ghc-8.8.1
before_install: before_install:
- HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//') - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')
- WITHCOMPILER="-w $HC" - WITHCOMPILER="-w $HC"
@ -80,7 +78,6 @@ install:
- TEST=--enable-tests - TEST=--enable-tests
- BENCH=--enable-benchmarks - BENCH=--enable-benchmarks
- HEADHACKAGE=false - HEADHACKAGE=false
- if [ $HCNUMVER -ge 80800 ] ; then HEADHACKAGE=true ; fi
- rm -f $CABALHOME/config - rm -f $CABALHOME/config
- | - |
echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config
@ -98,17 +95,6 @@ install:
echo " prefix: $CABALHOME" >> $CABALHOME/config echo " prefix: $CABALHOME" >> $CABALHOME/config
echo "repository hackage.haskell.org" >> $CABALHOME/config echo "repository hackage.haskell.org" >> $CABALHOME/config
echo " url: http://hackage.haskell.org/" >> $CABALHOME/config echo " url: http://hackage.haskell.org/" >> $CABALHOME/config
- |
if $HEADHACKAGE; then
echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1/g')" >> $CABALHOME/config
echo "repository head.hackage.ghc.haskell.org" >> $CABALHOME/config
echo " url: https://ghc.gitlab.haskell.org/head.hackage/" >> $CABALHOME/config
echo " secure: True" >> $CABALHOME/config
echo " root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d" >> $CABALHOME/config
echo " 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329" >> $CABALHOME/config
echo " f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89" >> $CABALHOME/config
echo " key-threshold: 3" >> $CABALHOME/config
fi
- GHCJOBS=-j2 - GHCJOBS=-j2
- | - |
echo "program-default-options" >> $CABALHOME/config echo "program-default-options" >> $CABALHOME/config
@ -142,36 +128,34 @@ install:
if [ $HCNUMVER -ge 80400 ] ; then echo "packages: doc/cookbook/using-custom-monad" >> cabal.project ; fi if [ $HCNUMVER -ge 80400 ] ; then echo "packages: doc/cookbook/using-custom-monad" >> cabal.project ; fi
if [ $HCNUMVER -ge 80400 ] ; then echo "packages: doc/cookbook/using-free-client" >> cabal.project ; fi if [ $HCNUMVER -ge 80400 ] ; then echo "packages: doc/cookbook/using-free-client" >> cabal.project ; fi
- | - |
echo "constraints: foundation >=0.0.14" >> cabal.project echo "constraints: foundation >=0.0.14" >> cabal.project
echo "constraints: memory <0.14.12 || >0.14.12" >> cabal.project echo "constraints: memory <0.14.12 || >0.14.12" >> cabal.project
echo "constraints: sqlite-simple < 0" >> cabal.project echo "constraints: sqlite-simple < 0" >> cabal.project
echo "allow-newer: servant-multipart:http-media" >> cabal.project echo "allow-newer: servant-multipart-0.11.4:http-media" >> cabal.project
echo "allow-newer: servant-multipart:lens" >> cabal.project echo "allow-newer: servant-multipart-0.11.4:lens" >> cabal.project
echo "allow-newer: servant-js:base" >> cabal.project echo "allow-newer: servant-js-0.9.4:base" >> cabal.project
echo "allow-newer: servant-js:lens" >> cabal.project echo "allow-newer: servant-js-0.9.4:base-compat" >> cabal.project
echo "allow-newer: servant-quickcheck:base" >> cabal.project echo "allow-newer: servant-js-0.9.4:lens" >> cabal.project
echo "allow-newer: servant-quickcheck:hspec" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:base" >> cabal.project
echo "allow-newer: servant-quickcheck:http-client" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:base-compat-batteries" >> cabal.project
echo "allow-newer: servant-quickcheck:http-media" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:hspec" >> cabal.project
echo "allow-newer: servant-quickcheck:QuickCheck" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:http-client" >> cabal.project
echo "allow-newer: servant-quickcheck:servant" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:http-media" >> cabal.project
echo "allow-newer: servant-quickcheck:servant-client" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:QuickCheck" >> cabal.project
echo "allow-newer: servant-quickcheck:servant-server" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:servant" >> cabal.project
echo "allow-newer: servant-quickcheck:time" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:servant-client" >> cabal.project
echo "allow-newer: servant-quickcheck:warp" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:servant-server" >> cabal.project
echo "allow-newer: vault-0.3.1.2:hashable" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:time" >> cabal.project
echo "allow-newer: psqueues-0.2.7.1:hashable" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:warp" >> cabal.project
echo "allow-newer: sqlite-simple-0.4.16.0:semigroups" >> cabal.project echo "allow-newer: aeson-pretty-0.8.7:base-compat" >> cabal.project
echo "allow-newer: direct-sqlite-2.3.24:semigroups" >> cabal.project echo "allow-newer: vault-0.3.1.2:hashable" >> cabal.project
echo "allow-newer: io-streams-1.5.1.0:network" >> cabal.project echo "allow-newer: psqueues-0.2.7.1:hashable" >> cabal.project
echo "allow-newer: io-streams:primitive" >> cabal.project echo "allow-newer: sqlite-simple-0.4.16.0:semigroups" >> cabal.project
echo "allow-newer: openssl-streams-1.2.2.0:network" >> cabal.project echo "allow-newer: direct-sqlite-2.3.24:semigroups" >> cabal.project
echo "optimization: False" >> cabal.project echo "allow-newer: io-streams-1.5.1.0:network" >> cabal.project
echo "" >> cabal.project echo "allow-newer: io-streams-1.5.1.0:primitive" >> cabal.project
echo "source-repository-package" >> cabal.project echo "allow-newer: openssl-streams-1.2.2.0:network" >> cabal.project
echo " type: git" >> cabal.project echo "optimization: False" >> cabal.project
echo " location: https://github.com/luqui/control-monad-omega.git" >> cabal.project
echo " tag: 76c71e8917eec275ba423959f00a34583b5c7215" >> cabal.project
- "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(cookbook-basic-auth|cookbook-basic-streaming|cookbook-curl-mock|cookbook-db-postgres-pool|cookbook-file-upload|cookbook-generic|cookbook-structuring-apis|cookbook-testing|cookbook-using-custom-monad|cookbook-using-free-client|servant|servant-client|servant-client-core|servant-conduit|servant-docs|servant-foreign|servant-http-streams|servant-machines|servant-pipes|servant-server|tutorial)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done" - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(cookbook-basic-auth|cookbook-basic-streaming|cookbook-curl-mock|cookbook-db-postgres-pool|cookbook-file-upload|cookbook-generic|cookbook-structuring-apis|cookbook-testing|cookbook-using-custom-monad|cookbook-using-free-client|servant|servant-client|servant-client-core|servant-conduit|servant-docs|servant-foreign|servant-http-streams|servant-machines|servant-pipes|servant-server|tutorial)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
- cat cabal.project || true - cat cabal.project || true
- cat cabal.project.local || true - cat cabal.project.local || true
@ -202,11 +186,8 @@ install:
script: script:
- DISTDIR=$(mktemp -d /tmp/dist-test.XXXX) - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
# Packaging... # Packaging...
- echo 'Packaging...' && echo -en 'travis_fold:start:sdist\\r'
- ${CABAL} v2-sdist all | color_cabal_output - ${CABAL} v2-sdist all | color_cabal_output
- echo -en 'travis_fold:end:sdist\\r'
# Unpacking... # Unpacking...
- echo 'Unpacking...' && echo -en 'travis_fold:start:unpack\\r'
- mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/ - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
- cd ${DISTDIR} || false - cd ${DISTDIR} || false
- find . -maxdepth 1 -type f -name '*.tar.gz' -exec tar -xvf '{}' \; - find . -maxdepth 1 -type f -name '*.tar.gz' -exec tar -xvf '{}' \;
@ -258,61 +239,54 @@ script:
if [ $HCNUMVER -ge 80400 ] ; then echo "packages: ${PKGDIR_cookbook_using_custom_monad}" >> cabal.project ; fi if [ $HCNUMVER -ge 80400 ] ; then echo "packages: ${PKGDIR_cookbook_using_custom_monad}" >> cabal.project ; fi
if [ $HCNUMVER -ge 80400 ] ; then echo "packages: ${PKGDIR_cookbook_using_free_client}" >> cabal.project ; fi if [ $HCNUMVER -ge 80400 ] ; then echo "packages: ${PKGDIR_cookbook_using_free_client}" >> cabal.project ; fi
- | - |
echo "constraints: foundation >=0.0.14" >> cabal.project echo "constraints: foundation >=0.0.14" >> cabal.project
echo "constraints: memory <0.14.12 || >0.14.12" >> cabal.project echo "constraints: memory <0.14.12 || >0.14.12" >> cabal.project
echo "constraints: sqlite-simple < 0" >> cabal.project echo "constraints: sqlite-simple < 0" >> cabal.project
echo "allow-newer: servant-multipart:http-media" >> cabal.project echo "allow-newer: servant-multipart-0.11.4:http-media" >> cabal.project
echo "allow-newer: servant-multipart:lens" >> cabal.project echo "allow-newer: servant-multipart-0.11.4:lens" >> cabal.project
echo "allow-newer: servant-js:base" >> cabal.project echo "allow-newer: servant-js-0.9.4:base" >> cabal.project
echo "allow-newer: servant-js:lens" >> cabal.project echo "allow-newer: servant-js-0.9.4:base-compat" >> cabal.project
echo "allow-newer: servant-quickcheck:base" >> cabal.project echo "allow-newer: servant-js-0.9.4:lens" >> cabal.project
echo "allow-newer: servant-quickcheck:hspec" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:base" >> cabal.project
echo "allow-newer: servant-quickcheck:http-client" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:base-compat-batteries" >> cabal.project
echo "allow-newer: servant-quickcheck:http-media" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:hspec" >> cabal.project
echo "allow-newer: servant-quickcheck:QuickCheck" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:http-client" >> cabal.project
echo "allow-newer: servant-quickcheck:servant" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:http-media" >> cabal.project
echo "allow-newer: servant-quickcheck:servant-client" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:QuickCheck" >> cabal.project
echo "allow-newer: servant-quickcheck:servant-server" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:servant" >> cabal.project
echo "allow-newer: servant-quickcheck:time" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:servant-client" >> cabal.project
echo "allow-newer: servant-quickcheck:warp" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:servant-server" >> cabal.project
echo "allow-newer: vault-0.3.1.2:hashable" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:time" >> cabal.project
echo "allow-newer: psqueues-0.2.7.1:hashable" >> cabal.project echo "allow-newer: servant-quickcheck-0.0.7.4:warp" >> cabal.project
echo "allow-newer: sqlite-simple-0.4.16.0:semigroups" >> cabal.project echo "allow-newer: aeson-pretty-0.8.7:base-compat" >> cabal.project
echo "allow-newer: direct-sqlite-2.3.24:semigroups" >> cabal.project echo "allow-newer: vault-0.3.1.2:hashable" >> cabal.project
echo "allow-newer: io-streams-1.5.1.0:network" >> cabal.project echo "allow-newer: psqueues-0.2.7.1:hashable" >> cabal.project
echo "allow-newer: io-streams:primitive" >> cabal.project echo "allow-newer: sqlite-simple-0.4.16.0:semigroups" >> cabal.project
echo "allow-newer: openssl-streams-1.2.2.0:network" >> cabal.project echo "allow-newer: direct-sqlite-2.3.24:semigroups" >> cabal.project
echo "optimization: False" >> cabal.project echo "allow-newer: io-streams-1.5.1.0:network" >> cabal.project
echo "" >> cabal.project echo "allow-newer: io-streams-1.5.1.0:primitive" >> cabal.project
echo "source-repository-package" >> cabal.project echo "allow-newer: openssl-streams-1.2.2.0:network" >> cabal.project
echo " type: git" >> cabal.project echo "optimization: False" >> cabal.project
echo " location: https://github.com/luqui/control-monad-omega.git" >> cabal.project
echo " tag: 76c71e8917eec275ba423959f00a34583b5c7215" >> cabal.project
- "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(cookbook-basic-auth|cookbook-basic-streaming|cookbook-curl-mock|cookbook-db-postgres-pool|cookbook-file-upload|cookbook-generic|cookbook-structuring-apis|cookbook-testing|cookbook-using-custom-monad|cookbook-using-free-client|servant|servant-client|servant-client-core|servant-conduit|servant-docs|servant-foreign|servant-http-streams|servant-machines|servant-pipes|servant-server|tutorial)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done" - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(cookbook-basic-auth|cookbook-basic-streaming|cookbook-curl-mock|cookbook-db-postgres-pool|cookbook-file-upload|cookbook-generic|cookbook-structuring-apis|cookbook-testing|cookbook-using-custom-monad|cookbook-using-free-client|servant|servant-client|servant-client-core|servant-conduit|servant-docs|servant-foreign|servant-http-streams|servant-machines|servant-pipes|servant-server|tutorial)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
- cat cabal.project || true - cat cabal.project || true
- cat cabal.project.local || true - cat cabal.project.local || true
- echo -en 'travis_fold:end:unpack\\r'
# Building with tests and benchmarks... # Building with tests and benchmarks...
- echo 'Building with tests and benchmarks...' && echo -en 'travis_fold:start:build-everything\\r'
# build & run tests, build benchmarks # build & run tests, build benchmarks
- ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output
- echo -en 'travis_fold:end:build-everything\\r'
# Testing... # Testing...
- ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output
# haddock... # haddock...
- echo 'haddock...' && echo -en 'travis_fold:start:haddock\\r'
- ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all | color_cabal_output - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all | color_cabal_output
- echo -en 'travis_fold:end:haddock\\r'
# Constraint sets # Constraint sets
- rm -rf cabal.project.local - rm -rf cabal.project.local
# Constraint set http-media-0.8 # Constraint set http-media-0.8
- echo 'Constraint set http-media-0.8' && echo -en 'travis_fold:start:constraint-sets-http-media-0.8\\r'
- ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='http-media ==0.8.*' all | color_cabal_output - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='http-media ==0.8.*' all | color_cabal_output
- echo -en 'travis_fold:end:constraint-sets-http-media-0.8\\r'
# Constraint set http-media-0.7 # Constraint set http-media-0.7
- echo 'Constraint set http-media-0.7' && echo -en 'travis_fold:start:constraint-sets-http-media-0.7\\r' - if [ $HCNUMVER -lt 80800 ] ; then ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='http-media ==0.7.*' all | color_cabal_output ; fi
- ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='http-media ==0.7.*' all | color_cabal_output # Constraint set base-compat-0.10
- echo -en 'travis_fold:end:constraint-sets-http-media-0.7\\r' - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='base-compat ==0.10.*' all | color_cabal_output
# Constraint set base-compat-0.11
- ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='base-compat ==0.11.*' all | color_cabal_output
# REGENDATA ["--config=cabal.haskell-ci","--output=.travis.yml","cabal.project"] # REGENDATA ["--config=cabal.haskell-ci","--output=.travis.yml","cabal.project"]
# EOF # EOF

View file

@ -1,4 +1,3 @@
folds: all-but-test
branches: master release-0.16 branches: master release-0.16
jobs-selection: any jobs-selection: any
@ -19,6 +18,11 @@ constraint-set http-media-0.8
constraints: http-media ==0.8.* constraints: http-media ==0.8.*
constraint-set http-media-0.7 constraint-set http-media-0.7
ghc: <8.8
constraints: http-media ==0.7.* constraints: http-media ==0.7.*
head-hackage: >= 8.8 constraint-set base-compat-0.10
constraints: base-compat ==0.10.*
constraint-set base-compat-0.11
constraints: base-compat ==0.11.*

View file

@ -41,12 +41,13 @@ constraints:
memory <0.14.12 || >0.14.12 memory <0.14.12 || >0.14.12
allow-newer: allow-newer:
servant-multipart:http-media, servant-multipart-0.11.4:http-media,
servant-multipart:lens servant-multipart-0.11.4:lens
allow-newer: allow-newer:
servant-js:base, servant-js-0.9.4:base,
servant-js:lens servant-js-0.9.4:base-compat,
servant-js-0.9.4:lens
allow-newer: allow-newer:
-- servant-pagination:servant, servant-pagination:servant-server, -- servant-pagination:servant, servant-pagination:servant-server,
@ -56,36 +57,28 @@ allow-newer:
-- servant-quickcheck -- servant-quickcheck
allow-newer: allow-newer:
servant-quickcheck:base, servant-quickcheck-0.0.7.4:base,
servant-quickcheck:hspec, servant-quickcheck-0.0.7.4:base-compat-batteries,
servant-quickcheck:http-client, servant-quickcheck-0.0.7.4:hspec,
servant-quickcheck:http-media, servant-quickcheck-0.0.7.4:http-client,
servant-quickcheck:QuickCheck, servant-quickcheck-0.0.7.4:http-media,
servant-quickcheck:servant, servant-quickcheck-0.0.7.4:QuickCheck,
servant-quickcheck:servant-client, servant-quickcheck-0.0.7.4:servant,
servant-quickcheck:servant-server, servant-quickcheck-0.0.7.4:servant-client,
servant-quickcheck:time, servant-quickcheck-0.0.7.4:servant-server,
servant-quickcheck:warp servant-quickcheck-0.0.7.4:time,
servant-quickcheck-0.0.7.4:warp
-- constraints: semigroups ^>=0.19 allow-newer: aeson-pretty-0.8.7:base-compat
-- constraints: hashable ^>=1.3
-- constraints: network ^>=3.1
-- constraints: machines ^>=0.7
-- constraints: http-media ^>=0.8
allow-newer: vault-0.3.1.2:hashable allow-newer: vault-0.3.1.2:hashable
allow-newer: psqueues-0.2.7.1:hashable allow-newer: psqueues-0.2.7.1:hashable
allow-newer: sqlite-simple-0.4.16.0:semigroups allow-newer: sqlite-simple-0.4.16.0:semigroups
allow-newer: direct-sqlite-2.3.24:semigroups allow-newer: direct-sqlite-2.3.24:semigroups
allow-newer: io-streams-1.5.1.0:network allow-newer: io-streams-1.5.1.0:network
allow-newer: io-streams:primitive allow-newer: io-streams-1.5.1.0:primitive
allow-newer: openssl-streams-1.2.2.0:network allow-newer: openssl-streams-1.2.2.0:network
source-repository-package
type: git
location: https://github.com/luqui/control-monad-omega.git
tag: 76c71e8917eec275ba423959f00a34583b5c7215
-- MonadFail -- MonadFail
-- https://github.com/nurpax/sqlite-simple/issues/74 -- https://github.com/nurpax/sqlite-simple/issues/74
constraints: sqlite-simple < 0 constraints: sqlite-simple < 0

View file

@ -1,65 +0,0 @@
# HLint configuration file
# https://github.com/ndmitchell/hlint
##########################
# This file contains a template configuration file, which is typically
# placed as .hlint.yaml in the root of your project
# Specify additional command line arguments
#
# - arguments: [--color, --cpp-simple, -XQuasiQuotes]
# Control which extensions/flags/modules/functions can be used
#
# - extensions:
# - default: false # all extension are banned by default
# - name: [PatternGuards, ViewPatterns] # only these listed extensions can be used
# - {name: CPP, within: CrossPlatform} # CPP can only be used in a given module
#
# - flags:
# - {name: -w, within: []} # -w is allowed nowhere
#
# - modules:
# - {name: [Data.Set, Data.HashSet], as: Set} # if you import Data.Set qualified, it must be as 'Set'
# - {name: Control.Arrow, within: []} # Certain modules are banned entirely
#
# - functions:
# - {name: unsafePerformIO, within: []} # unsafePerformIO can only appear in no modules
# Add custom hints for this project
#
# Will suggest replacing "wibbleMany [myvar]" with "wibbleOne myvar"
# - error: {lhs: "wibbleMany [x]", rhs: wibbleOne x}
# Turn on hints that are off by default
#
# Ban "module X(module X) where", to require a real export list
# - warn: {name: Use explicit module export list}
#
# Replace a $ b $ c with a . b $ c
# - group: {name: dollar, enabled: true}
#
# Generalise map to fmap, ++ to <>
# - group: {name: generalise, enabled: true}
# Ignore some builtin hints
- ignore: {name: Redundant do}
- ignore: {name: Parse error}
- ignore: {name: Use fmap}
- ignore: {name: Use list comprehension}
- ignore: {name: Use lambda-case}
- ignore: {name: Eta reduce}
# - ignore: {name: Use const, within: SpecialModule} # Only within certain modules
# Define some custom infix operators
# - fixity: infixr 3 ~^#^~
# To generate a suitable file for HLint do:
# $ hlint --default > .hlint.yaml

View file

@ -1,6 +1,11 @@
[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-client/CHANGELOG.md) [The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-client/CHANGELOG.md)
[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md) [Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
0.16.0.1
--------
- Allow `base-compat-0.11`
0.16 0.16
---- ----

View file

@ -1,7 +1,6 @@
cabal-version: >=1.10 cabal-version: >=1.10
name: servant-client name: servant-client
version: 0.16 version: 0.16.0.1
x-revision: 3
synopsis: Automatic derivation of querying functions for servant synopsis: Automatic derivation of querying functions for servant
category: Servant, Web category: Servant, Web

View file

@ -16,10 +16,11 @@ import Prelude.Compat
import Control.Concurrent.MVar import Control.Concurrent.MVar
(modifyMVar, newMVar) (modifyMVar, newMVar)
import qualified Data.ByteString as BS
import Control.Concurrent.STM.TVar import Control.Concurrent.STM.TVar
import Control.Exception import Control.Exception
(SomeException (..), catch)
import Control.Monad import Control.Monad
(unless)
import Control.Monad.Base import Control.Monad.Base
(MonadBase (..)) (MonadBase (..))
import Control.Monad.Catch import Control.Monad.Catch
@ -27,15 +28,18 @@ import Control.Monad.Catch
import Control.Monad.Error.Class import Control.Monad.Error.Class
(MonadError (..)) (MonadError (..))
import Control.Monad.IO.Class import Control.Monad.IO.Class
(liftIO) (MonadIO (..))
import Control.Monad.Reader import Control.Monad.Reader
(MonadReader, ReaderT, ask, runReaderT)
import Control.Monad.STM import Control.Monad.STM
(STM, atomically) (STM, atomically)
import Control.Monad.Trans.Control import Control.Monad.Trans.Control
(MonadBaseControl (..)) (MonadBaseControl (..))
import Control.Monad.Trans.Except import Control.Monad.Trans.Except
(ExceptT, runExceptT)
import Data.Bifunctor import Data.Bifunctor
(bimap) (bimap)
import qualified Data.ByteString as BS
import Data.ByteString.Builder import Data.ByteString.Builder
(toLazyByteString) (toLazyByteString)
import qualified Data.ByteString.Lazy as BSL import qualified Data.ByteString.Lazy as BSL
@ -64,8 +68,8 @@ import Network.HTTP.Types
(hContentType, renderQuery, statusCode) (hContentType, renderQuery, statusCode)
import Servant.Client.Core import Servant.Client.Core
import qualified Servant.Types.SourceT as S
import qualified Network.HTTP.Client as Client import qualified Network.HTTP.Client as Client
import qualified Servant.Types.SourceT as S
-- | The environment in which a request is run. -- | The environment in which a request is run.
data ClientEnv data ClientEnv

View file

@ -1,6 +1,11 @@
[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-docs/CHANGELOG.md) [The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-docs/CHANGELOG.md)
[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md) [Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
0.11.4
------
- Drop dependency on `control-monad-omega` in favor of `Data.Universe.Helpers` from `universe-base`.
0.11.3 0.11.3
------ ------

View file

@ -1,7 +1,6 @@
cabal-version: >=1.10 cabal-version: >=1.10
name: servant-docs name: servant-docs
version: 0.11.3 version: 0.11.4
x-revision: 3
synopsis: generate API docs for your servant webservice synopsis: generate API docs for your servant webservice
category: Servant, Web category: Servant, Web
@ -62,12 +61,12 @@ library
, aeson-pretty >= 0.8.5 && < 0.9 , aeson-pretty >= 0.8.5 && < 0.9
, base-compat >= 0.10.5 && < 0.12 , base-compat >= 0.10.5 && < 0.12
, case-insensitive >= 1.2.0.11 && < 1.3 , case-insensitive >= 1.2.0.11 && < 1.3
, control-monad-omega >= 0.3.1 && < 0.4
, hashable >= 1.2.7.0 && < 1.4 , hashable >= 1.2.7.0 && < 1.4
, http-media >= 0.7.1.3 && < 0.9 , http-media >= 0.7.1.3 && < 0.9
, http-types >= 0.12.2 && < 0.13 , http-types >= 0.12.2 && < 0.13
, lens >= 4.17 && < 4.19 , lens >= 4.17 && < 4.19
, string-conversions >= 0.4.0.1 && < 0.5 , string-conversions >= 0.4.0.1 && < 0.5
, universe-base >= 1.1.1 && < 1.2
, unordered-containers >= 0.2.9.0 && < 0.3 , unordered-containers >= 0.2.9.0 && < 0.3
hs-source-dirs: src hs-source-dirs: src

View file

@ -27,7 +27,6 @@ import Control.Arrow
import Control.Lens import Control.Lens
(makeLenses, mapped, over, traversed, view, (%~), (&), (.~), (makeLenses, mapped, over, traversed, view, (%~), (&), (.~),
(<>~), (^.), (|>)) (<>~), (^.), (|>))
import qualified Control.Monad.Omega as Omega
import qualified Data.ByteString.Char8 as BSC import qualified Data.ByteString.Char8 as BSC
import Data.ByteString.Lazy.Char8 import Data.ByteString.Lazy.Char8
(ByteString) (ByteString)
@ -65,6 +64,8 @@ import Servant.API
import Servant.API.ContentTypes import Servant.API.ContentTypes
import Servant.API.TypeLevel import Servant.API.TypeLevel
import qualified Data.Universe.Helpers as U
import qualified Data.HashMap.Strict as HM import qualified Data.HashMap.Strict as HM
import qualified Data.Text as T import qualified Data.Text as T
import qualified Network.HTTP.Media as M import qualified Network.HTTP.Media as M
@ -479,22 +480,22 @@ samples = map ("",)
-- | Default sample Generic-based inputs/outputs. -- | Default sample Generic-based inputs/outputs.
defaultSamples :: forall a. (Generic a, GToSample (Rep a)) => Proxy a -> [(Text, a)] defaultSamples :: forall a. (Generic a, GToSample (Rep a)) => Proxy a -> [(Text, a)]
defaultSamples _ = Omega.runOmega $ second to <$> gtoSamples (Proxy :: Proxy (Rep a)) defaultSamples _ = second to <$> gtoSamples (Proxy :: Proxy (Rep a))
-- | @'ToSample'@ for Generics. -- | @'ToSample'@ for Generics.
-- --
-- The use of @'Omega'@ allows for more productive sample generation. -- Note: we use combinators from "Universe.Data.Helpers" for more productive sample generation.
class GToSample t where class GToSample t where
gtoSamples :: proxy t -> Omega.Omega (Text, t x) gtoSamples :: proxy t -> [(Text, t x)]
instance GToSample U1 where instance GToSample U1 where
gtoSamples _ = Omega.each (singleSample U1) gtoSamples _ = singleSample U1
instance GToSample V1 where instance GToSample V1 where
gtoSamples _ = empty gtoSamples _ = empty
instance (GToSample p, GToSample q) => GToSample (p :*: q) where instance (GToSample p, GToSample q) => GToSample (p :*: q) where
gtoSamples _ = render <$> ps <*> qs gtoSamples _ = U.cartesianProduct render ps qs
where where
ps = gtoSamples (Proxy :: Proxy p) ps = gtoSamples (Proxy :: Proxy p)
qs = gtoSamples (Proxy :: Proxy q) qs = gtoSamples (Proxy :: Proxy q)
@ -503,13 +504,13 @@ instance (GToSample p, GToSample q) => GToSample (p :*: q) where
| otherwise = (ta <> ", " <> tb, a :*: b) | otherwise = (ta <> ", " <> tb, a :*: b)
instance (GToSample p, GToSample q) => GToSample (p :+: q) where instance (GToSample p, GToSample q) => GToSample (p :+: q) where
gtoSamples _ = lefts <|> rights gtoSamples _ = lefts U.+++ rights
where where
lefts = second L1 <$> gtoSamples (Proxy :: Proxy p) lefts = second L1 <$> gtoSamples (Proxy :: Proxy p)
rights = second R1 <$> gtoSamples (Proxy :: Proxy q) rights = second R1 <$> gtoSamples (Proxy :: Proxy q)
instance ToSample a => GToSample (K1 i a) where instance ToSample a => GToSample (K1 i a) where
gtoSamples _ = second K1 <$> Omega.each (toSamples (Proxy :: Proxy a)) gtoSamples _ = second K1 <$> toSamples (Proxy :: Proxy a)
instance (GToSample f) => GToSample (M1 i a f) where instance (GToSample f) => GToSample (M1 i a f) where
gtoSamples _ = second M1 <$> gtoSamples (Proxy :: Proxy f) gtoSamples _ = second M1 <$> gtoSamples (Proxy :: Proxy f)

View file

@ -1,6 +1,11 @@
[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-http-streams/CHANGELOG.md) [The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-http-streams/CHANGELOG.md)
[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md) [Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
0.16.0.1
--------
- Allow `base-compat-0.11`
0.16 0.16
---- ----

View file

@ -18,6 +18,8 @@ import Control.DeepSeq
(NFData, force) (NFData, force)
import Control.Exception import Control.Exception
(IOException, SomeException (..), catch, evaluate, throwIO) (IOException, SomeException (..), catch, evaluate, throwIO)
import Control.Monad
(unless)
import Control.Monad.Base import Control.Monad.Base
(MonadBase (..)) (MonadBase (..))
import Control.Monad.Codensity import Control.Monad.Codensity
@ -25,9 +27,13 @@ import Control.Monad.Codensity
import Control.Monad.Error.Class import Control.Monad.Error.Class
(MonadError (..)) (MonadError (..))
import Control.Monad.IO.Class import Control.Monad.IO.Class
(liftIO) (MonadIO (..))
import Control.Monad.Reader import Control.Monad.Reader
(MonadReader, ReaderT, ask, runReaderT)
import Control.Monad.Trans.Class
(lift)
import Control.Monad.Trans.Except import Control.Monad.Trans.Except
(ExceptT, runExceptT)
import Data.Bifunctor import Data.Bifunctor
(bimap, first) (bimap, first)
import Data.ByteString.Builder import Data.ByteString.Builder

View file

@ -1,6 +1,5 @@
{-# LANGUAGE DataKinds #-} {-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE PolyKinds #-} {-# LANGUAGE PolyKinds #-}
module Servant.API.Experimental.Auth where module Servant.API.Experimental.Auth where