-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support GHC-8.2 #108
Merged
Merged
Support GHC-8.2 #108
Changes from 4 commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
3ed9503
Builds with 8.2.1. Fixes #95
albertov 4090e88
More GHC-8.2 changes
phadej d722fa4
Try Custom build
phadej e2b5069
Fix doctests
phadej cc4c813
Remove __DOCTEST__ ifdef
phadej f0c7d67
Bump version to 2.1.4.1
phadej c4c904d
Add link to cabal-doctest note
phadej File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,6 @@ | ||
dist | ||
dist-newstyle | ||
.ghc.environment.* | ||
cabal-dev | ||
*.o | ||
*.hi | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,92 +1,91 @@ | ||
# This file has been generated -- see https://github.com/hvr/multi-ghc-travis | ||
# This Travis job script has been generated by a script via | ||
# | ||
# make_travis_yml_2.hs '--branch' 'master' 'swagger2.cabal' | ||
# | ||
# For more information, see https://github.com/hvr/multi-ghc-travis | ||
# | ||
language: c | ||
sudo: false | ||
|
||
git: | ||
submodules: false # whether to recursively clone submodules | ||
|
||
branches: | ||
only: | ||
- master | ||
|
||
cache: | ||
directories: | ||
- $HOME/.cabsnap | ||
- $HOME/.cabal/packages | ||
- $HOME/.cabal/store | ||
- $HOME/.local/bin | ||
|
||
before_cache: | ||
- rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log | ||
- rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar | ||
# remove files that are regenerated by 'cabal update' | ||
- rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.* | ||
- rm -fv $HOME/.cabal/packages/hackage.haskell.org/*.json | ||
- rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.cache | ||
- rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar | ||
- rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar.idx | ||
|
||
matrix: | ||
include: | ||
- env: CABALVER=1.18 GHCVER=7.8.4 | ||
compiler: ": #GHC 7.8.4" | ||
addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4,happy-1.19.5], sources: [hvr-ghc]}} | ||
- env: CABALVER=1.22 GHCVER=7.10.3 | ||
compiler: ": #GHC 7.10.3" | ||
addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3,happy-1.19.5], sources: [hvr-ghc]}} | ||
- env: CABALVER=1.24 GHCVER=8.0.1 | ||
compiler: ": #GHC 8.0.1" | ||
addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.1,happy-1.19.5], sources: [hvr-ghc]}} | ||
- env: CABALVER=1.18 GHCVER=7.8.4 CABALCONFIG=aeson-0.11.cabal.config | ||
compiler: ": #GHC 7.8.4 aeson-0.11" | ||
addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4,happy-1.19.5], sources: [hvr-ghc]}} | ||
- env: CABALVER=1.22 GHCVER=7.10.3 CABALCONFIG=aeson-0.11.cabal.config | ||
compiler: ": #GHC 7.10.3 aeson-0.11" | ||
addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3,happy-1.19.5], sources: [hvr-ghc]}} | ||
- env: CABALVER=1.24 GHCVER=8.0.1 CABALCONFIG=aeson-0.11.cabal.config | ||
compiler: ": #GHC 8.0.1 aeson-0.11" | ||
addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.1,happy-1.19.5], sources: [hvr-ghc]}} | ||
- compiler: "ghc-7.8.4" | ||
# env: TEST=--disable-tests BENCH=--disable-benchmarks | ||
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-7.8.4], sources: [hvr-ghc]}} | ||
- compiler: "ghc-7.10.3" | ||
# env: TEST=--disable-tests BENCH=--disable-benchmarks | ||
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-7.10.3], sources: [hvr-ghc]}} | ||
- compiler: "ghc-8.0.2" | ||
# env: TEST=--disable-tests BENCH=--disable-benchmarks | ||
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.0.2], sources: [hvr-ghc]}} | ||
- compiler: "ghc-8.2.1" | ||
# env: TEST=--disable-tests BENCH=--disable-benchmarks | ||
addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.2.1], sources: [hvr-ghc]}} | ||
|
||
before_install: | ||
- HC=${CC} | ||
- unset CC | ||
- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:/opt/happy/1.19.5/bin:$PATH | ||
- if [ -f "$CABALCONFIG" ]; then cp $CABALCONFIG cabal.config; fi | ||
- PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$PATH | ||
- PKGNAME='swagger2' | ||
|
||
install: | ||
- cabal --version | ||
- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]" | ||
- if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ]; | ||
then | ||
zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz > | ||
$HOME/.cabal/packages/hackage.haskell.org/00-index.tar; | ||
fi | ||
- echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]" | ||
- BENCH=${BENCH---enable-benchmarks} | ||
- TEST=${TEST---enable-tests} | ||
- travis_retry cabal update -v | ||
- sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config | ||
- cabal install --only-dependencies --enable-tests --enable-benchmarks --dry -v > installplan.txt | ||
- sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt | ||
|
||
# check whether current requested install-plan matches cached package-db snapshot | ||
- if diff -u installplan.txt $HOME/.cabsnap/installplan.txt; | ||
then | ||
echo "cabal build-cache HIT"; | ||
rm -rfv .ghc; | ||
cp -a $HOME/.cabsnap/ghc $HOME/.ghc; | ||
cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/; | ||
else | ||
echo "cabal build-cache MISS"; | ||
rm -rf $HOME/.cabsnap; | ||
mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin; | ||
cabal install --only-dependencies --enable-tests --enable-benchmarks; | ||
fi | ||
|
||
# snapshot package-db on cache miss | ||
- if [ ! -d $HOME/.cabsnap ]; | ||
then | ||
echo "snapshotting package-db to build-cache"; | ||
mkdir $HOME/.cabsnap; | ||
cp -a $HOME/.ghc $HOME/.cabsnap/ghc; | ||
cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/; | ||
fi | ||
- sh install-hspec-discover.sh # TEMP: we should use build-tools-depends | ||
- rm -fv cabal.project.local | ||
- "echo 'packages: .' > cabal.project" | ||
- rm -f cabal.project.freeze | ||
- cabal new-build -w ${HC} ${TEST} ${BENCH} --dep -j2 all | ||
- cabal new-build -w ${HC} --disable-tests --disable-benchmarks --dep -j2 all | ||
|
||
# Here starts the actual work to be performed for the package under test; | ||
# any command which exits with a non-zero exit code causes the build to fail. | ||
script: | ||
- if [ -f configure.ac ]; then autoreconf -i; fi | ||
- cabal configure --enable-tests --enable-benchmarks -v2 # -v2 provides useful information for debugging | ||
- cabal build # this builds all libraries and executables (including tests/benchmarks) | ||
- cabal test | ||
- cabal check | ||
- cabal sdist # tests that a source-distribution can be generated | ||
- rm -rf .ghc.environment.* dist/ | ||
- cabal sdist # test that a source-distribution can be generated | ||
- cd dist/ | ||
- SRCTAR=(${PKGNAME}-*.tar.gz) | ||
- SRC_BASENAME="${SRCTAR/%.tar.gz}" | ||
- tar -xvf "./$SRC_BASENAME.tar.gz" | ||
- cd "$SRC_BASENAME/" | ||
## from here on, CWD is inside the extracted source-tarball | ||
- rm -fv cabal.project.local | ||
- "echo 'packages: .' > cabal.project" | ||
# this builds all libraries and executables (without tests/benchmarks) | ||
- rm -f cabal.project.freeze | ||
- cabal new-build -w ${HC} --disable-tests --disable-benchmarks all | ||
# this builds all libraries and executables (including tests/benchmarks) | ||
# - rm -rf ./dist-newstyle | ||
|
||
# Check that the resulting source distribution can be built & installed. | ||
# If there are no other `.tar.gz` files in `dist`, this can be even simpler: | ||
# `cabal install --force-reinstalls dist/*-*.tar.gz` | ||
- SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz && | ||
(cd dist && cabal install --force-reinstalls "$SRC_TGZ") | ||
# build & run tests | ||
- cabal new-build -w ${HC} ${TEST} ${BENCH} all | ||
- if [ "x$TEST" = "x--enable-tests" ]; then cabal new-test -w ${HC} ${TEST} all; fi | ||
|
||
# EOF |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,33 @@ | ||
{-# LANGUAGE CPP #-} | ||
{-# OPTIONS_GHC -Wall #-} | ||
module Main (main) where | ||
|
||
#ifndef MIN_VERSION_cabal_doctest | ||
#define MIN_VERSION_cabal_doctest(x,y,z) 0 | ||
#endif | ||
|
||
#if MIN_VERSION_cabal_doctest(1,0,0) | ||
|
||
import Distribution.Extra.Doctest ( defaultMainWithDoctests ) | ||
main :: IO () | ||
main = defaultMainWithDoctests "doctests" | ||
|
||
#else | ||
|
||
#ifdef MIN_VERSION_Cabal | ||
-- If the macro is defined, we have new cabal-install, | ||
-- but for some reason we don't have cabal-doctest in package-db | ||
-- | ||
-- Probably we are running cabal sdist, when otherwise using new-build | ||
-- workflow | ||
#warning You are configuring this package without cabal-doctest installed. \ | ||
The doctests test-suite will not work as a result. \ | ||
To fix this, install cabal-doctest before configuring. | ||
#endif | ||
|
||
import Distribution.Simple | ||
|
||
main :: IO () | ||
main = defaultMain | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#!/bin/sh | ||
|
||
set -ex | ||
|
||
if [ ! -e $HOME/.local/bin/hspec-discover ]; then | ||
# Fetch the source | ||
cabal get hspec-discover-2.4.4 | ||
cd hspec-discover-2.4.4 | ||
|
||
# Set-up project | ||
echo 'packages: .' > cabal.project | ||
|
||
# build exe | ||
cabal new-build hspec-discover:exe:hspec-discover | ||
|
||
# copy executable to $HOME/.local/bin | ||
cp $(find dist-newstyle -name hspec-discover -type f) $HOME/.local/bin | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
module Main where | ||
|
||
import Build_doctests (flags, pkgs, module_sources) | ||
import Data.Foldable (traverse_) | ||
import Test.DocTest | ||
|
||
main :: IO () | ||
main = do | ||
traverse_ putStrLn args | ||
doctest args | ||
where | ||
args = flags ++ pkgs ++ module_sources |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
QuickCheck?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we have one
prop>
, it requiresQuickCheck
then.This is a little hack, actually we don't need
QuickCheck
to builddoctests.hs
; but these dependencies are solved by Cabal, so we can pass them as--package-id=...
todoctests
executable, sodoctest
can use / importQuickCheck
modules (done bycabal-doctests
).There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe add this comment to the file then? Or a link to this conversation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll add an entry to
cabal-doctest
FAQ/Notes and add a link hereThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Made a PR. ulidtko/cabal-doctest#16 and added a link to where it will land.