diff --git a/.travis.yml b/.travis.yml index 9f1c2b3..b28fa71 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,10 @@ # This Travis job script has been generated by a script via # -# haskell-ci '--branches' 'master' '-o' '.travis.yml' 'servant-quickcheck.cabal' +# haskell-ci '--config=cabal.haskell-ci' 'servant-quickcheck.cabal' # # For more information, see https://github.com/haskell-CI/haskell-ci # -# version: 0.3.20190413 +# version: 0.5.20190908 # language: c dist: xenial @@ -29,23 +29,27 @@ before_cache: - rm -rfv $CABALHOME/packages/head.hackage matrix: include: - - compiler: ghc-8.6.4 - addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.6.4","cabal-install-2.4"]}} + - compiler: ghc-8.8.1 + addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.8.1","cabal-install-3.0"]}} + - compiler: ghc-8.6.5 + addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.6.5","cabal-install-3.0"]}} - compiler: ghc-8.4.4 - addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.4.4","cabal-install-2.4"]}} + addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.4.4","cabal-install-3.0"]}} - compiler: ghc-8.2.2 - addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-2.4"]}} + addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-3.0"]}} - compiler: ghc-8.0.2 - addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-2.4"]}} + addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-3.0"]}} before_install: - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//') + - WITHCOMPILER="-w $HC" + - HADDOCK=$(echo "/opt/$CC/bin/haddock" | sed 's/-/\//') - HCPKG="$HC-pkg" - unset CC - CABAL=/opt/ghc/bin/cabal - CABALHOME=$HOME/.cabal - export PATH="$CABALHOME/bin:$PATH" - TOP=$(pwd) - - HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') )) + - "HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\\d+)\\.(\\d+)\\.(\\d+)(\\.(\\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')" - echo $HCNUMVER - CABAL="$CABAL -vnormal+nowrap+markoutput" - set -o pipefail @@ -72,22 +76,27 @@ install: - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]" - TEST=--enable-tests - BENCH=--enable-benchmarks - - GHCHEAD=${GHCHEAD-false} + - HEADHACKAGE=false - rm -f $CABALHOME/config - | echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config echo "remote-build-reporting: anonymous" >> $CABALHOME/config + echo "write-ghc-environment-files: always" >> $CABALHOME/config echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config echo "world-file: $CABALHOME/world" >> $CABALHOME/config echo "extra-prog-path: $CABALHOME/bin" >> $CABALHOME/config echo "symlink-bindir: $CABALHOME/bin" >> $CABALHOME/config + echo "installdir: $CABALHOME/bin" >> $CABALHOME/config echo "build-summary: $CABALHOME/logs/build.log" >> $CABALHOME/config echo "store-dir: $CABALHOME/store" >> $CABALHOME/config echo "install-dirs user" >> $CABALHOME/config echo " prefix: $CABALHOME" >> $CABALHOME/config echo "repository hackage.haskell.org" >> $CABALHOME/config echo " url: http://hackage.haskell.org/" >> $CABALHOME/config + - | + echo "program-default-options" >> $CABALHOME/config + echo " ghc-options: $GHCJOBS +RTS -M6G -RTS" >> $CABALHOME/config - cat $CABALHOME/config - rm -fv cabal.project cabal.project.local cabal.project.freeze - travis_retry ${CABAL} v2-update -v @@ -95,18 +104,17 @@ install: - rm -rf cabal.project cabal.project.local cabal.project.freeze - touch cabal.project - | - echo 'packages: "."' >> cabal.project + echo "packages: ." >> cabal.project - | - echo "write-ghc-environment-files: always" >> cabal.project - - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^(servant-quickcheck)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done" + - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(servant-quickcheck)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done" - cat cabal.project || true - cat cabal.project.local || true - if [ -f "./configure.ac" ]; then (cd "." && autoreconf -i); fi - - ${CABAL} v2-freeze -w ${HC} ${TEST} ${BENCH} | color_cabal_output + - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH} | color_cabal_output - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'" - rm cabal.project.freeze - - ${CABAL} v2-build -w ${HC} ${TEST} ${BENCH} --dep -j2 all | color_cabal_output - - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --dep -j2 all | color_cabal_output + - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all | color_cabal_output + - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --dep -j2 all | color_cabal_output script: - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX) # Packaging... @@ -114,32 +122,39 @@ script: # Unpacking... - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/ - cd ${DISTDIR} || false - - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \; + - find . -maxdepth 1 -type f -name '*.tar.gz' -exec tar -xvf '{}' \; + - find . -maxdepth 1 -type f -name '*.tar.gz' -exec rm '{}' \; + - PKGDIR_servant_quickcheck="$(find . -maxdepth 1 -type d -regex '.*/servant-quickcheck-[0-9.]*')" # Generate cabal.project - rm -rf cabal.project cabal.project.local cabal.project.freeze - touch cabal.project - | - echo 'packages: "servant-quickcheck-*/*.cabal"' >> cabal.project + echo "packages: ${PKGDIR_servant_quickcheck}" >> cabal.project - | - echo "write-ghc-environment-files: always" >> cabal.project - - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^(servant-quickcheck)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done" + - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(servant-quickcheck)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done" - cat cabal.project || true - cat cabal.project.local || true # Building... # this builds all libraries and executables (without tests/benchmarks) - - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks all | color_cabal_output + - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output # Building with tests and benchmarks... # build & run tests, build benchmarks - - ${CABAL} v2-build -w ${HC} ${TEST} ${BENCH} all | color_cabal_output + - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output # Testing... - - ${CABAL} v2-test -w ${HC} ${TEST} ${BENCH} all | color_cabal_output + - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output # cabal check... - - (cd servant-quickcheck-* && ${CABAL} -vnormal check) + - (cd ${PKGDIR_servant_quickcheck} && ${CABAL} -vnormal check) # haddock... - - ${CABAL} v2-haddock -w ${HC} ${TEST} ${BENCH} all | color_cabal_output + - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all | color_cabal_output # Building without installed constraints for packages in global-db... - rm -f cabal.project.local - - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks all | color_cabal_output + - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output + # Constraint sets + - rm -rf cabal.project.local + # Constraint set base-compat-0.10 + - ${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 ["--branches","master","-o",".travis.yml","servant-quickcheck.cabal"] +# REGENDATA ["--config=cabal.haskell-ci","servant-quickcheck.cabal"] # EOF diff --git a/CHANGELOG.yaml b/CHANGELOG.yaml index 786ca24..d3488ca 100644 --- a/CHANGELOG.yaml +++ b/CHANGELOG.yaml @@ -1,5 +1,11 @@ releases: + - version: "0.8" + changes: + - description: Support GHC-8.8. Allow newer versions of other dependencies. + authors: phadej + date: 2019-09-15 + - version: "0.0.7.3" changes: - description: Support for servant-0.14 diff --git a/cabal.haskell-ci b/cabal.haskell-ci new file mode 100644 index 0000000..f9157cc --- /dev/null +++ b/cabal.haskell-ci @@ -0,0 +1,7 @@ +branches: master + +constraint-set base-compat-0.10 + constraints: base-compat ==0.10.* + +constraint-set base-compat-0.11 + constraints: base-compat ==0.11.* diff --git a/cabal.project b/cabal.project new file mode 100644 index 0000000..b0a523c --- /dev/null +++ b/cabal.project @@ -0,0 +1,2 @@ +packages: . +tests: true diff --git a/servant-quickcheck.cabal b/servant-quickcheck.cabal index d415809..00151bd 100644 --- a/servant-quickcheck.cabal +++ b/servant-quickcheck.cabal @@ -1,5 +1,5 @@ name: servant-quickcheck -version: 0.0.7.4 +version: 0.0.8 synopsis: QuickCheck entire APIs description: This packages provides QuickCheck properties that are tested across an entire @@ -13,7 +13,7 @@ category: Web build-type: Simple cabal-version: >=1.10 extra-source-files: CHANGELOG.yaml -tested-with: GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.4 +tested-with: GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || == 8.8.1 source-repository head type: git @@ -35,11 +35,11 @@ library build-depends: aeson >=0.8 && <2 - , base >=4.9 && <4.13 - , base-compat-batteries >=0.10.1 && <0.11 + , base >=4.9 && <4.14 + , base-compat-batteries >=0.10.1 && <0.12 , bytestring >=0.10 && <0.11 , case-insensitive >=1.2 && <1.3 - , clock >=0.7 && <0.8 + , clock >=0.7 && <0.9 , data-default-class >=0.0 && <0.2 , hspec >=2.5.6 && <2.8 , http-client >=0.4.30 && <0.7 @@ -56,11 +56,11 @@ library , string-conversions >=0.3 && <0.5 , temporary >=1.2 && <1.4 , text >=1 && <2 - , time >=1.5 && <1.9 - , warp >=3.2.4 && <3.3 + , time >=1.5 && <1.10 + , warp >=3.2.4 && <3.4 if !impl(ghc >=8.0) - build-depends: semigroups >=0.18.3 && <0.19 + build-depends: semigroups >=0.18.3 && <0.20 hs-source-dirs: src default-extensions: