From f5c541b9cc09c97a24b3e851592599df01028aec Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Mon, 30 Dec 2019 21:55:55 +0100 Subject: [PATCH 1/4] Move doctests to shell script This fixes various problems with doctest: * https://github.com/sol/doctest/issues/245 * https://github.com/composewell/streamly/issues/83 Also clean up travis.yml for cabal-3. --- .travis.yml | 40 ++++++++++++++-------------------------- doctests-hpath.hs | 13 ------------- doctests-posix.hs | 25 ------------------------- hpath.cabal | 34 ---------------------------------- run-doctests.sh | 22 ++++++++++++++++++++++ 5 files changed, 36 insertions(+), 98 deletions(-) delete mode 100644 doctests-hpath.hs delete mode 100644 doctests-posix.hs create mode 100755 run-doctests.sh diff --git a/.travis.yml b/.travis.yml index d1d9ad5..6b57250 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,18 +7,18 @@ dist: trusty matrix: include: - - env: CABALVER=2.2 GHCVER=7.6.3 - addons: {apt: {packages: [cabal-install-2.2,ghc-7.6.3], sources: [hvr-ghc]}} - - env: CABALVER=2.2 GHCVER=7.8.4 - addons: {apt: {packages: [cabal-install-2.2,ghc-7.8.4], sources: [hvr-ghc]}} - - env: CABALVER=2.2 GHCVER=7.10.2 - addons: {apt: {packages: [cabal-install-2.2,ghc-7.10.2], sources: [hvr-ghc]}} - - env: CABALVER=2.2 GHCVER=8.0.1 - addons: {apt: {packages: [cabal-install-2.2,ghc-8.0.1], sources: [hvr-ghc]}} - - env: CABALVER=2.2 GHCVER=8.2.2 - addons: {apt: {packages: [cabal-install-2.2,ghc-8.2.2], sources: [hvr-ghc]}} - - env: CABALVER=2.2 GHCVER=8.4.1 - addons: {apt: {packages: [cabal-install-2.2,ghc-8.4.1], sources: [hvr-ghc]}} + - env: CABALVER=3.0 GHCVER=7.6.3 SKIP_DOCTESTS=yes + addons: {apt: {packages: [cabal-install-3.0,ghc-7.6.3], sources: [hvr-ghc]}} + - env: CABALVER=3.0 GHCVER=7.8.4 SKIP_DOCTESTS=yes + addons: {apt: {packages: [cabal-install-3.0,ghc-7.8.4], sources: [hvr-ghc]}} + - env: CABALVER=3.0 GHCVER=7.10.2 SKIP_DOCTESTS=yes + addons: {apt: {packages: [cabal-install-3.0,ghc-7.10.2], sources: [hvr-ghc]}} + - env: CABALVER=3.0 GHCVER=8.0.1 SKIP_DOCTESTS=yes + addons: {apt: {packages: [cabal-install-3.0,ghc-8.0.1], sources: [hvr-ghc]}} + - env: CABALVER=3.0 GHCVER=8.2.2 + addons: {apt: {packages: [cabal-install-3.0,ghc-8.2.2], sources: [hvr-ghc]}} + - env: CABALVER=3.0 GHCVER=8.4.1 + addons: {apt: {packages: [cabal-install-3.0,ghc-8.4.1], sources: [hvr-ghc]}} - env: CABALVER=head GHCVER=head addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}} @@ -36,27 +36,15 @@ before_install: install: - cabal --version - travis_retry cabal update - - cabal sandbox init - - cabal install --only-dependencies --enable-tests -j script: - - cabal configure --enable-tests -v2 - cabal build - cabal test + - ./run-doctests.sh - cabal check - cabal sdist - cabal haddock --hyperlink-source --html-location=https://hackage.haskell.org/package/\$pkg-\$version/docs/ -# check that the generated source-distribution can be built & installed - - export SRC_TGZ=$(cabal info . | awk '{print $2 ".tar.gz";exit}') ; - cd dist/; - cabal sandbox init; - if [ -f "$SRC_TGZ" ]; then - cabal install "$SRC_TGZ" --enable-tests; - else - echo "expected '$SRC_TGZ' not found"; - exit 1; - fi; - cd .. + - cabal install --enable-tests --lib after_script: - ./update-gh-pages.sh diff --git a/doctests-hpath.hs b/doctests-hpath.hs deleted file mode 100644 index 75bda1e..0000000 --- a/doctests-hpath.hs +++ /dev/null @@ -1,13 +0,0 @@ -module Main where - - -import Test.DocTest -import Test.HUnit - -main = - doctest - ["-isrc" - , "-XOverloadedStrings" - , "src/HPath.hs" - ] - diff --git a/doctests-posix.hs b/doctests-posix.hs deleted file mode 100644 index 56efe28..0000000 --- a/doctests-posix.hs +++ /dev/null @@ -1,25 +0,0 @@ -{-# LANGUAGE OverloadedStrings #-} - -module Main where - -import Control.Applicative -import System.Posix.Directory.Traversals - -import Test.DocTest -import Test.HUnit - -main = do - doctest - [ "-isrc" - , "-XOverloadedStrings" - , "System.Posix.FilePath" - ] - runTestTT unitTests - - -unitTests :: Test -unitTests = test - [ TestCase $ do - r <- (==) <$> allDirectoryContents "." <*> allDirectoryContents' "." - assertBool "allDirectoryContents == allDirectoryContents'" r - ] diff --git a/hpath.cabal b/hpath.cabal index bd28f79..429a36f 100644 --- a/hpath.cabal +++ b/hpath.cabal @@ -13,8 +13,6 @@ cabal-version: 1.14 extra-source-files: README.md CHANGELOG cbits/dirutils.h - doctests-hpath.hs - doctests-posix.hs library if os(windows) @@ -41,7 +39,6 @@ library , deepseq , exceptions , hspec - , simple-sendfile >= 0.2.24 , streamly >= 0.7 , unix >= 2.5 , unix-bytestring @@ -49,37 +46,6 @@ library , word8 -test-suite doctests-hpath - if os(windows) - build-depends: unbuildable<0 - buildable: False - default-language: Haskell2010 - type: exitcode-stdio-1.0 - ghc-options: -threaded - main-is: doctests-hpath.hs - build-depends: base - , HUnit - , QuickCheck - , doctest >= 0.8 - , hpath - -test-suite doctests-posix - if os(windows) - build-depends: unbuildable<0 - buildable: False - default-language: Haskell2010 - type: exitcode-stdio-1.0 - ghc-options: -threaded - main-is: doctests-posix.hs - build-depends: base, - bytestring >= 0.10.0.0, - unix, - hpath, - doctest >= 0.8, - HUnit, - QuickCheck, - word8 - test-suite spec if os(windows) build-depends: unbuildable<0 diff --git a/run-doctests.sh b/run-doctests.sh new file mode 100755 index 0000000..b0a1332 --- /dev/null +++ b/run-doctests.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e + +if [ -n "${SKIP_DOCTESTS}" ] ; then + echo "Skipping doctests" + exit 0 +fi + +if ! command -v doctest >/dev/null ; then + tempdir="$(mktemp -d)" + ( + cd "${tempdir}" + cabal install --installdir="${tempdir}" doctest + ) + export PATH="${tempdir}:$PATH" +fi + +set -x + +cabal exec doctest -- -isrc -XOverloadedStrings System.Posix.FilePath +cabal exec doctest -- -isrc -XOverloadedStrings HPath From 1d03ec78b399412fabc5b6febba53d820b534e20 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Mon, 30 Dec 2019 21:57:38 +0100 Subject: [PATCH 2/4] Clean up ghc matrix --- .travis.yml | 10 ++++------ hpath.cabal | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6b57250..0309084 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,18 +7,16 @@ dist: trusty matrix: include: - - env: CABALVER=3.0 GHCVER=7.6.3 SKIP_DOCTESTS=yes - addons: {apt: {packages: [cabal-install-3.0,ghc-7.6.3], sources: [hvr-ghc]}} - - env: CABALVER=3.0 GHCVER=7.8.4 SKIP_DOCTESTS=yes - addons: {apt: {packages: [cabal-install-3.0,ghc-7.8.4], sources: [hvr-ghc]}} - env: CABALVER=3.0 GHCVER=7.10.2 SKIP_DOCTESTS=yes addons: {apt: {packages: [cabal-install-3.0,ghc-7.10.2], sources: [hvr-ghc]}} - env: CABALVER=3.0 GHCVER=8.0.1 SKIP_DOCTESTS=yes addons: {apt: {packages: [cabal-install-3.0,ghc-8.0.1], sources: [hvr-ghc]}} - env: CABALVER=3.0 GHCVER=8.2.2 addons: {apt: {packages: [cabal-install-3.0,ghc-8.2.2], sources: [hvr-ghc]}} - - env: CABALVER=3.0 GHCVER=8.4.1 - addons: {apt: {packages: [cabal-install-3.0,ghc-8.4.1], sources: [hvr-ghc]}} + - env: CABALVER=3.0 GHCVER=8.4.4 + addons: {apt: {packages: [cabal-install-3.0,ghc-8.4.4], sources: [hvr-ghc]}} + - env: CABALVER=3.0 GHCVER=8.6.5 + addons: {apt: {packages: [cabal-install-3.0,ghc-8.6.5], sources: [hvr-ghc]}} - env: CABALVER=head GHCVER=head addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}} diff --git a/hpath.cabal b/hpath.cabal index 429a36f..ab9d7d2 100644 --- a/hpath.cabal +++ b/hpath.cabal @@ -33,7 +33,7 @@ library System.Posix.FD, System.Posix.FilePath other-modules: HPath.Internal - build-depends: base >= 4.6 && <5 + build-depends: base >= 4.8 && <5 , IfElse , bytestring >= 0.10.0.0 , deepseq From c9013e5a2a18796d8d54b4778adb742c9a186bed Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Mon, 30 Dec 2019 22:34:10 +0100 Subject: [PATCH 3/4] Various travis fixes --- .travis.yml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0309084..cafa964 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,16 +7,18 @@ dist: trusty matrix: include: - - env: CABALVER=3.0 GHCVER=7.10.2 SKIP_DOCTESTS=yes - addons: {apt: {packages: [cabal-install-3.0,ghc-7.10.2], sources: [hvr-ghc]}} - - env: CABALVER=3.0 GHCVER=8.0.1 SKIP_DOCTESTS=yes - addons: {apt: {packages: [cabal-install-3.0,ghc-8.0.1], sources: [hvr-ghc]}} + - env: CABALVER=3.0 GHCVER=7.10.3 SKIP_DOCTESTS=yes + addons: {apt: {packages: [cabal-install-3.0,ghc-7.10.3], sources: [hvr-ghc]}} + - env: CABALVER=3.0 GHCVER=8.0.2 SKIP_DOCTESTS=yes + addons: {apt: {packages: [cabal-install-3.0,ghc-8.0.2], sources: [hvr-ghc]}} - env: CABALVER=3.0 GHCVER=8.2.2 addons: {apt: {packages: [cabal-install-3.0,ghc-8.2.2], sources: [hvr-ghc]}} - env: CABALVER=3.0 GHCVER=8.4.4 addons: {apt: {packages: [cabal-install-3.0,ghc-8.4.4], sources: [hvr-ghc]}} - env: CABALVER=3.0 GHCVER=8.6.5 addons: {apt: {packages: [cabal-install-3.0,ghc-8.6.5], sources: [hvr-ghc]}} + - env: CABALVER=3.0 GHCVER=8.8.1 + addons: {apt: {packages: [cabal-install-3.0,ghc-8.8.1], sources: [hvr-ghc]}} - env: CABALVER=head GHCVER=head addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}} @@ -29,20 +31,22 @@ env: before_install: - sudo apt-get install -y hscolour - - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH + - export PATH=~/.cabal/bin:/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH install: - cabal --version - travis_retry cabal update + - cabal install --installdir=$HOME/.cabal/bin hspec-discover + - cabal install --installdir=$HOME/.cabal/bin doctest script: - - cabal build + - cabal build --enable-tests - cabal test - ./run-doctests.sh - cabal check - cabal sdist - - cabal haddock --hyperlink-source --html-location=https://hackage.haskell.org/package/\$pkg-\$version/docs/ - - cabal install --enable-tests --lib + - cabal haddock --haddock-hyperlink-source --haddock-html-location=https://hackage.haskell.org/package/\$pkg-\$version/docs/ + - cabal install --lib after_script: - ./update-gh-pages.sh From 28e0d1d63509a8506c64c2d9eb10d3788dabd4ca Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Mon, 30 Dec 2019 22:37:53 +0100 Subject: [PATCH 4/4] Add tested-with --- hpath.cabal | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hpath.cabal b/hpath.cabal index ab9d7d2..f473dc1 100644 --- a/hpath.cabal +++ b/hpath.cabal @@ -10,6 +10,12 @@ copyright: Julian Ospald 2016 category: Filesystem build-type: Simple cabal-version: 1.14 +tested-with: GHC==7.10.3 + , GHC==8.0.2 + , GHC==8.2.2 + , GHC==8.4.4 + , GHC==8.6.5 + , GHC==8.8.1 extra-source-files: README.md CHANGELOG cbits/dirutils.h