packages feed

haskell-ci 0.8 → 0.10

raw patch · 30 files changed

+817/−695 lines, 30 filesdep +generic-lens-litedep −generic-lensdep −microlensdep ~Cabaldep ~basedep ~cabal-install-parsersPVP ok

version bump matches the API change (PVP)

Dependencies added: generic-lens-lite

Dependencies removed: generic-lens, microlens

Dependency ranges changed: Cabal, base, cabal-install-parsers

API changes (from Hackage documentation)

- HaskellCI.Config: [cfgColor] :: Config -> !Bool
- HaskellCI.Config.Doctest: [cfgDoctestFilterPkgs] :: DoctestConfig -> ![PackageName]
- HaskellCI.Prelude: (^..) :: () => s -> Getting (Endo [a]) s a -> [a]
- HaskellCI.Travis.Yaml: newtype TravisNotifications
+ HaskellCI.Config: [cfgEmailNotifications] :: Config -> Bool
+ HaskellCI.Config: [cfgErrorMissingMethods] :: Config -> !PackageScope
+ HaskellCI.Config: [cfgRawTravis] :: Config -> !String
+ HaskellCI.Config.Doctest: [cfgDoctestFilterEnvPkgs] :: DoctestConfig -> ![PackageName]
+ HaskellCI.Config.Doctest: [cfgDoctestFilterSrcPkgs] :: DoctestConfig -> ![PackageName]
+ HaskellCI.Config.PackageScope: PackageScopeAll :: PackageScope
+ HaskellCI.Config.PackageScope: PackageScopeLocal :: PackageScope
+ HaskellCI.Config.PackageScope: PackageScopeNone :: PackageScope
+ HaskellCI.Config.PackageScope: data PackageScope
+ HaskellCI.Config.PackageScope: instance Distribution.Parsec.Parsec HaskellCI.Config.PackageScope.PackageScope
+ HaskellCI.Config.PackageScope: instance Distribution.Pretty.Pretty HaskellCI.Config.PackageScope.PackageScope
+ HaskellCI.Config.PackageScope: instance GHC.Classes.Eq HaskellCI.Config.PackageScope.PackageScope
+ HaskellCI.Config.PackageScope: instance GHC.Show.Show HaskellCI.Config.PackageScope.PackageScope
+ HaskellCI.Prelude: field :: (HasField name r a, Functor f) => (a -> f a) -> r -> f r
+ HaskellCI.Prelude: toListOf :: () => Getting (DList a) s a -> s -> [a]
+ HaskellCI.Travis.Yaml: [tnEmail] :: TravisNotifications -> Bool
+ HaskellCI.Travis.Yaml: data TravisNotifications
- HaskellCI.Config: Config :: Maybe Version -> Maybe Jobs -> !Ubuntu -> !TestedWithJobs -> !CopyFields -> [String] -> !Bool -> !Bool -> !Bool -> [Installed] -> !VersionRange -> !VersionRange -> !VersionRange -> !VersionRange -> !VersionRange -> !VersionRange -> !VersionRange -> !Bool -> ![PackageName] -> !Bool -> [String] -> [String] -> Maybe String -> Set Fold -> !Bool -> !Bool -> !Bool -> Map Version String -> !VersionRange -> !Bool -> Set Version -> Set String -> [FilePath] -> !Bool -> !Bool -> !DoctestConfig -> !HLintConfig -> [ConstraintSet] -> [PrettyField ()] -> Config
+ HaskellCI.Config: Config :: Maybe Version -> Maybe Jobs -> !Ubuntu -> !TestedWithJobs -> !CopyFields -> [String] -> !Bool -> !Bool -> !Bool -> [Installed] -> !VersionRange -> !VersionRange -> !VersionRange -> !VersionRange -> !VersionRange -> !VersionRange -> !VersionRange -> !Bool -> ![PackageName] -> !Bool -> [String] -> [String] -> Bool -> Maybe String -> Set Fold -> !Bool -> !Bool -> !Bool -> Map Version String -> !VersionRange -> !Bool -> Set Version -> Set String -> [FilePath] -> !Bool -> !PackageScope -> !DoctestConfig -> !HLintConfig -> [ConstraintSet] -> [PrettyField ()] -> !String -> Config
- HaskellCI.Config.Doctest: DoctestConfig :: !VersionRange -> [String] -> !VersionRange -> ![PackageName] -> DoctestConfig
+ HaskellCI.Config.Doctest: DoctestConfig :: !VersionRange -> [String] -> !VersionRange -> ![PackageName] -> ![PackageName] -> DoctestConfig
- HaskellCI.Prelude: infixl 1 &
+ HaskellCI.Prelude: infixl 1 <&>
- HaskellCI.Prelude: mapped :: Functor f => ASetter (f a) (f b) a b
+ HaskellCI.Prelude: mapped :: forall f a b. Functor f => (a -> Identity b) -> f a -> Identity (f b)
- HaskellCI.Travis.Yaml: TravisNotifications :: Maybe TravisIRC -> TravisNotifications
+ HaskellCI.Travis.Yaml: TravisNotifications :: Maybe TravisIRC -> Bool -> TravisNotifications

Files

CHANGELOG.md view
@@ -1,3 +1,12 @@+## 0.10 - 2020-04-14++- Allow turning off email notifications+- Use generic-lens-lite instead of generic-lens (smaller dependency footprint)+- Add GHC-8.10, use cabal-install-3.2+- Fix escaping of irc-notification template+- Remove output colouring, it was relying on Cabal's internal features+- Add `-Werror=missing-methods` by default.+ ## 0.8 - 2019-11-26  - Split parsing utilities into [cabal-install-parsers package](https://hackage.haskell.org/package/cabal-install-parsers)
fixtures/cabal.project.copy-fields.all.stderr view
@@ -1,1 +1,1 @@-*INFO* Generating Travis-CI config for testing for GHC versions: 7.8.1 7.8.2 7.8.3 7.8.4 7.10.1 7.10.2 7.10.3 8.0.1 8.0.2 8.2.1 8.2.2 8.4.1 8.4.2 8.4.3 8.4.4 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1+*INFO* Generating Travis-CI config for testing for GHC versions: 7.8.1 7.8.2 7.8.3 7.8.4 7.10.1 7.10.2 7.10.3 8.0.1 8.0.2 8.2.1 8.2.2 8.4.1 8.4.2 8.4.3 8.4.4 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1 8.8.2 8.8.3 8.10.1
fixtures/cabal.project.copy-fields.all.travis.yml view
@@ -2,6 +2,10 @@ # #   haskell-ci '-o' 'cabal.project.empty-line.travis.yml' '--config=cabal.project.haskell-ci' '--copy-fields=all' 'cabal.project.empty-line' #+# To regenerate the script (for example after adjusting tested-with) run+#+#   haskell-ci regenerate+# # For more information, see https://github.com/haskell-CI/haskell-ci # version: ~> 1.0@@ -27,68 +31,77 @@   - rm -rfv $CABALHOME/packages/head.hackage jobs:   include:+    - compiler: ghc-8.10.1+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.10.1","cabal-install-3.2"]}}+      os: linux+    - compiler: ghc-8.8.3+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.3","cabal-install-3.2"]}}+      os: linux+    - compiler: ghc-8.8.2+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.2","cabal-install-3.2"]}}+      os: linux     - compiler: ghc-8.8.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.5-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.2.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.2.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.0.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.0.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.1","cabal-install-3.2"]}}       os: linux before_install:   - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')@@ -102,57 +115,31 @@   - TOP=$(pwd)   - "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"+  - CABAL="$CABAL -vnormal+nowrap"   - set -o pipefail-  - |-    echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }'           >> .colorful.awk-    echo 'BEGIN { state = "output"; }'                                     >> .colorful.awk-    echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }'            >> .colorful.awk-    echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }'             >> .colorful.awk-    echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >> .colorful.awk-    echo '  if (state == "cabal") {'                                       >> .colorful.awk-    echo '    print blue($0)'                                              >> .colorful.awk-    echo '  } else {'                                                      >> .colorful.awk-    echo '    print $0'                                                    >> .colorful.awk-    echo '  }'                                                             >> .colorful.awk-    echo '}'                                                               >> .colorful.awk-  - cat .colorful.awk-  - |-    color_cabal_output () {-      awk -f $TOP/.colorful.awk-    }-  - echo text | color_cabal_output-install:-  - ${CABAL} --version-  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"   - TEST=--enable-tests   - BENCH=--enable-benchmarks   - 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 "  secure: True"                                                       >> $CABALHOME/config-    echo "  key-threshold: 3"                                                   >> $CABALHOME/config-    echo "  root-keys:"                                                         >> $CABALHOME/config-    echo "    fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0" >> $CABALHOME/config-    echo "    1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42" >> $CABALHOME/config-    echo "    2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3" >> $CABALHOME/config-    echo "    0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d" >> $CABALHOME/config-    echo "    51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921" >> $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+install:+  - ${CABAL} --version+  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"   - |     echo "program-default-options"                >> $CABALHOME/config     echo "  ghc-options: $GHCJOBS +RTS -M6G -RTS" >> $CABALHOME/config@@ -167,13 +154,21 @@     echo "packages: servant-client" >> cabal.project     echo "packages: servant-docs" >> cabal.project     echo "packages: servant-server" >> cabal.project+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-client' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-docs' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-server' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"   - |-    echo "package servant"                         >> cabal.project-    echo "  tests: False"                          >> cabal.project-    echo ""                                        >> cabal.project     echo "constraints: foundation >= 0.14"         >> cabal.project     echo "allow-newer: servant-js:servant"         >> cabal.project     echo "allow-newer: servant-js:servant-foreign" >> cabal.project+    echo ""                                        >> cabal.project+    echo "package servant"                         >> cabal.project+    echo "  tests: False"                          >> cabal.project   - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(servant|servant-client|servant-docs|servant-server)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"   - cat cabal.project || true   - cat cabal.project.local || true@@ -181,15 +176,15 @@   - if [ -f "servant-client/configure.ac" ]; then (cd "servant-client" && autoreconf -i); fi   - if [ -f "servant-docs/configure.ac" ]; then (cd "servant-docs" && autoreconf -i); fi   - if [ -f "servant-server/configure.ac" ]; then (cd "servant-server" && autoreconf -i); fi-  - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH} | color_cabal_output+  - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH}   - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"   - rm  cabal.project.freeze-  - ${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+  - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all+  - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --dep -j2 all script:   - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)   # Packaging...-  - ${CABAL} v2-sdist all | color_cabal_output+  - ${CABAL} v2-sdist all   # Unpacking...   - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/   - cd ${DISTDIR} || false@@ -207,34 +202,42 @@     echo "packages: ${PKGDIR_servant_client}" >> cabal.project     echo "packages: ${PKGDIR_servant_docs}" >> cabal.project     echo "packages: ${PKGDIR_servant_server}" >> cabal.project+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-client' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-docs' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-server' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"   - |-    echo "package servant"                         >> cabal.project-    echo "  tests: False"                          >> cabal.project-    echo ""                                        >> cabal.project     echo "constraints: foundation >= 0.14"         >> cabal.project     echo "allow-newer: servant-js:servant"         >> cabal.project     echo "allow-newer: servant-js:servant-foreign" >> cabal.project+    echo ""                                        >> cabal.project+    echo "package servant"                         >> cabal.project+    echo "  tests: False"                          >> cabal.project   - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(servant|servant-client|servant-docs|servant-server)$' || 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 $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all   # Building with tests and benchmarks...   # build & run tests, build benchmarks-  - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all   # Testing...-  - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all   # cabal check...   - (cd ${PKGDIR_servant} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_client} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_docs} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_server} && ${CABAL} -vnormal check)   # haddock...-  - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all   # Building without installed constraints for packages in global-db...   - rm -f cabal.project.local-  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all  # REGENDATA ["-o","cabal.project.empty-line.travis.yml","--config=cabal.project.haskell-ci","--copy-fields=all","cabal.project.empty-line"] # EOF
fixtures/cabal.project.copy-fields.none.stderr view
@@ -1,1 +1,1 @@-*INFO* Generating Travis-CI config for testing for GHC versions: 7.8.1 7.8.2 7.8.3 7.8.4 7.10.1 7.10.2 7.10.3 8.0.1 8.0.2 8.2.1 8.2.2 8.4.1 8.4.2 8.4.3 8.4.4 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1+*INFO* Generating Travis-CI config for testing for GHC versions: 7.8.1 7.8.2 7.8.3 7.8.4 7.10.1 7.10.2 7.10.3 8.0.1 8.0.2 8.2.1 8.2.2 8.4.1 8.4.2 8.4.3 8.4.4 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1 8.8.2 8.8.3 8.10.1
fixtures/cabal.project.copy-fields.none.travis.yml view
@@ -2,6 +2,10 @@ # #   haskell-ci '-o' 'cabal.project.empty-line.travis.yml' '--config=cabal.project.haskell-ci' '--copy-fields=none' 'cabal.project.empty-line' #+# To regenerate the script (for example after adjusting tested-with) run+#+#   haskell-ci regenerate+# # For more information, see https://github.com/haskell-CI/haskell-ci # version: ~> 1.0@@ -27,68 +31,77 @@   - rm -rfv $CABALHOME/packages/head.hackage jobs:   include:+    - compiler: ghc-8.10.1+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.10.1","cabal-install-3.2"]}}+      os: linux+    - compiler: ghc-8.8.3+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.3","cabal-install-3.2"]}}+      os: linux+    - compiler: ghc-8.8.2+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.2","cabal-install-3.2"]}}+      os: linux     - compiler: ghc-8.8.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.5-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.2.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.2.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.0.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.0.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.1","cabal-install-3.2"]}}       os: linux before_install:   - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')@@ -102,57 +115,31 @@   - TOP=$(pwd)   - "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"+  - CABAL="$CABAL -vnormal+nowrap"   - set -o pipefail-  - |-    echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }'           >> .colorful.awk-    echo 'BEGIN { state = "output"; }'                                     >> .colorful.awk-    echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }'            >> .colorful.awk-    echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }'             >> .colorful.awk-    echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >> .colorful.awk-    echo '  if (state == "cabal") {'                                       >> .colorful.awk-    echo '    print blue($0)'                                              >> .colorful.awk-    echo '  } else {'                                                      >> .colorful.awk-    echo '    print $0'                                                    >> .colorful.awk-    echo '  }'                                                             >> .colorful.awk-    echo '}'                                                               >> .colorful.awk-  - cat .colorful.awk-  - |-    color_cabal_output () {-      awk -f $TOP/.colorful.awk-    }-  - echo text | color_cabal_output-install:-  - ${CABAL} --version-  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"   - TEST=--enable-tests   - BENCH=--enable-benchmarks   - 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 "  secure: True"                                                       >> $CABALHOME/config-    echo "  key-threshold: 3"                                                   >> $CABALHOME/config-    echo "  root-keys:"                                                         >> $CABALHOME/config-    echo "    fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0" >> $CABALHOME/config-    echo "    1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42" >> $CABALHOME/config-    echo "    2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3" >> $CABALHOME/config-    echo "    0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d" >> $CABALHOME/config-    echo "    51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921" >> $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+install:+  - ${CABAL} --version+  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"   - |     echo "program-default-options"                >> $CABALHOME/config     echo "  ghc-options: $GHCJOBS +RTS -M6G -RTS" >> $CABALHOME/config@@ -167,6 +154,14 @@     echo "packages: servant-client" >> cabal.project     echo "packages: servant-docs" >> cabal.project     echo "packages: servant-server" >> cabal.project+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-client' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-docs' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-server' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"   - |   - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(servant|servant-client|servant-docs|servant-server)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"   - cat cabal.project || true@@ -175,15 +170,15 @@   - if [ -f "servant-client/configure.ac" ]; then (cd "servant-client" && autoreconf -i); fi   - if [ -f "servant-docs/configure.ac" ]; then (cd "servant-docs" && autoreconf -i); fi   - if [ -f "servant-server/configure.ac" ]; then (cd "servant-server" && autoreconf -i); fi-  - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH} | color_cabal_output+  - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH}   - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"   - rm  cabal.project.freeze-  - ${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+  - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all+  - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --dep -j2 all script:   - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)   # Packaging...-  - ${CABAL} v2-sdist all | color_cabal_output+  - ${CABAL} v2-sdist all   # Unpacking...   - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/   - cd ${DISTDIR} || false@@ -201,28 +196,36 @@     echo "packages: ${PKGDIR_servant_client}" >> cabal.project     echo "packages: ${PKGDIR_servant_docs}" >> cabal.project     echo "packages: ${PKGDIR_servant_server}" >> cabal.project+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-client' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-docs' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-server' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"   - |   - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(servant|servant-client|servant-docs|servant-server)$' || 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 $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all   # Building with tests and benchmarks...   # build & run tests, build benchmarks-  - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all   # Testing...-  - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all   # cabal check...   - (cd ${PKGDIR_servant} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_client} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_docs} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_server} && ${CABAL} -vnormal check)   # haddock...-  - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all   # Building without installed constraints for packages in global-db...   - rm -f cabal.project.local-  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all  # REGENDATA ["-o","cabal.project.empty-line.travis.yml","--config=cabal.project.haskell-ci","--copy-fields=none","cabal.project.empty-line"] # EOF
fixtures/cabal.project.copy-fields.some.stderr view
@@ -1,1 +1,1 @@-*INFO* Generating Travis-CI config for testing for GHC versions: 7.8.1 7.8.2 7.8.3 7.8.4 7.10.1 7.10.2 7.10.3 8.0.1 8.0.2 8.2.1 8.2.2 8.4.1 8.4.2 8.4.3 8.4.4 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1+*INFO* Generating Travis-CI config for testing for GHC versions: 7.8.1 7.8.2 7.8.3 7.8.4 7.10.1 7.10.2 7.10.3 8.0.1 8.0.2 8.2.1 8.2.2 8.4.1 8.4.2 8.4.3 8.4.4 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1 8.8.2 8.8.3 8.10.1
fixtures/cabal.project.copy-fields.some.travis.yml view
@@ -2,6 +2,10 @@ # #   haskell-ci '-o' 'cabal.project.empty-line.travis.yml' '--config=cabal.project.haskell-ci' '--copy-fields=some' 'cabal.project.empty-line' #+# To regenerate the script (for example after adjusting tested-with) run+#+#   haskell-ci regenerate+# # For more information, see https://github.com/haskell-CI/haskell-ci # version: ~> 1.0@@ -27,68 +31,77 @@   - rm -rfv $CABALHOME/packages/head.hackage jobs:   include:+    - compiler: ghc-8.10.1+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.10.1","cabal-install-3.2"]}}+      os: linux+    - compiler: ghc-8.8.3+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.3","cabal-install-3.2"]}}+      os: linux+    - compiler: ghc-8.8.2+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.2","cabal-install-3.2"]}}+      os: linux     - compiler: ghc-8.8.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.5-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.2.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.2.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.0.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.0.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.1","cabal-install-3.2"]}}       os: linux before_install:   - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')@@ -102,57 +115,31 @@   - TOP=$(pwd)   - "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"+  - CABAL="$CABAL -vnormal+nowrap"   - set -o pipefail-  - |-    echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }'           >> .colorful.awk-    echo 'BEGIN { state = "output"; }'                                     >> .colorful.awk-    echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }'            >> .colorful.awk-    echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }'             >> .colorful.awk-    echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >> .colorful.awk-    echo '  if (state == "cabal") {'                                       >> .colorful.awk-    echo '    print blue($0)'                                              >> .colorful.awk-    echo '  } else {'                                                      >> .colorful.awk-    echo '    print $0'                                                    >> .colorful.awk-    echo '  }'                                                             >> .colorful.awk-    echo '}'                                                               >> .colorful.awk-  - cat .colorful.awk-  - |-    color_cabal_output () {-      awk -f $TOP/.colorful.awk-    }-  - echo text | color_cabal_output-install:-  - ${CABAL} --version-  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"   - TEST=--enable-tests   - BENCH=--enable-benchmarks   - 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 "  secure: True"                                                       >> $CABALHOME/config-    echo "  key-threshold: 3"                                                   >> $CABALHOME/config-    echo "  root-keys:"                                                         >> $CABALHOME/config-    echo "    fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0" >> $CABALHOME/config-    echo "    1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42" >> $CABALHOME/config-    echo "    2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3" >> $CABALHOME/config-    echo "    0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d" >> $CABALHOME/config-    echo "    51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921" >> $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+install:+  - ${CABAL} --version+  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"   - |     echo "program-default-options"                >> $CABALHOME/config     echo "  ghc-options: $GHCJOBS +RTS -M6G -RTS" >> $CABALHOME/config@@ -167,6 +154,14 @@     echo "packages: servant-client" >> cabal.project     echo "packages: servant-docs" >> cabal.project     echo "packages: servant-server" >> cabal.project+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-client' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-docs' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-server' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"   - |     echo "constraints: foundation >= 0.14"         >> cabal.project     echo "allow-newer: servant-js:servant"         >> cabal.project@@ -178,15 +173,15 @@   - if [ -f "servant-client/configure.ac" ]; then (cd "servant-client" && autoreconf -i); fi   - if [ -f "servant-docs/configure.ac" ]; then (cd "servant-docs" && autoreconf -i); fi   - if [ -f "servant-server/configure.ac" ]; then (cd "servant-server" && autoreconf -i); fi-  - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH} | color_cabal_output+  - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH}   - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"   - rm  cabal.project.freeze-  - ${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+  - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all+  - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --dep -j2 all script:   - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)   # Packaging...-  - ${CABAL} v2-sdist all | color_cabal_output+  - ${CABAL} v2-sdist all   # Unpacking...   - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/   - cd ${DISTDIR} || false@@ -204,6 +199,14 @@     echo "packages: ${PKGDIR_servant_client}" >> cabal.project     echo "packages: ${PKGDIR_servant_docs}" >> cabal.project     echo "packages: ${PKGDIR_servant_server}" >> cabal.project+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-client' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-docs' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-server' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"   - |     echo "constraints: foundation >= 0.14"         >> cabal.project     echo "allow-newer: servant-js:servant"         >> cabal.project@@ -213,22 +216,22 @@   - cat cabal.project.local || true   # Building...   # this builds all libraries and executables (without tests/benchmarks)-  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all   # Building with tests and benchmarks...   # build & run tests, build benchmarks-  - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all   # Testing...-  - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all   # cabal check...   - (cd ${PKGDIR_servant} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_client} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_docs} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_server} && ${CABAL} -vnormal check)   # haddock...-  - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all   # Building without installed constraints for packages in global-db...   - rm -f cabal.project.local-  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all  # REGENDATA ["-o","cabal.project.empty-line.travis.yml","--config=cabal.project.haskell-ci","--copy-fields=some","cabal.project.empty-line"] # EOF
fixtures/cabal.project.empty-line.stderr view
@@ -1,1 +1,1 @@-*INFO* Generating Travis-CI config for testing for GHC versions: ghc-head 7.8.1 7.8.2 7.8.3 7.8.4 7.10.1 7.10.2 7.10.3 8.0.1 8.0.2 8.2.1 8.2.2 8.4.1 8.4.2 8.4.3 8.4.4 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1+*INFO* Generating Travis-CI config for testing for GHC versions: ghc-head 7.8.1 7.8.2 7.8.3 7.8.4 7.10.1 7.10.2 7.10.3 8.0.1 8.0.2 8.2.1 8.2.2 8.4.1 8.4.2 8.4.3 8.4.4 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1 8.8.2 8.8.3 8.10.1
fixtures/cabal.project.empty-line.travis.yml view
@@ -2,6 +2,10 @@ # #   haskell-ci '-o' 'cabal.project.empty-line.travis.yml' '--config=cabal.project.haskell-ci' '--ghc-head' 'cabal.project.empty-line' #+# To regenerate the script (for example after adjusting tested-with) run+#+#   haskell-ci regenerate+# # For more information, see https://github.com/haskell-CI/haskell-ci # version: ~> 1.0@@ -27,68 +31,77 @@   - rm -rfv $CABALHOME/packages/head.hackage jobs:   include:+    - compiler: ghc-8.10.1+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.10.1","cabal-install-3.2"]}}+      os: linux+    - compiler: ghc-8.8.3+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.3","cabal-install-3.2"]}}+      os: linux+    - compiler: ghc-8.8.2+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.2","cabal-install-3.2"]}}+      os: linux     - compiler: ghc-8.8.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.5-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.2.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.2.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.0.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.0.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-head       addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-head","cabal-install-head"]}}@@ -107,58 +120,29 @@   - TOP=$(pwd)   - "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"+  - CABAL="$CABAL -vnormal+nowrap"   - set -o pipefail-  - |-    echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }'           >> .colorful.awk-    echo 'BEGIN { state = "output"; }'                                     >> .colorful.awk-    echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }'            >> .colorful.awk-    echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }'             >> .colorful.awk-    echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >> .colorful.awk-    echo '  if (state == "cabal") {'                                       >> .colorful.awk-    echo '    print blue($0)'                                              >> .colorful.awk-    echo '  } else {'                                                      >> .colorful.awk-    echo '    print $0'                                                    >> .colorful.awk-    echo '  }'                                                             >> .colorful.awk-    echo '}'                                                               >> .colorful.awk-  - cat .colorful.awk-  - |-    color_cabal_output () {-      awk -f $TOP/.colorful.awk-    }-  - echo text | color_cabal_output-install:-  - ${CABAL} --version-  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"   - TEST=--enable-tests   - BENCH=--enable-benchmarks   - HEADHACKAGE=false-  - if [ $HCNUMVER -gt 80801 ] ; then HEADHACKAGE=true ; fi+  - if [ $HCNUMVER -gt 81001 ] ; then HEADHACKAGE=true ; fi   - 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 "  secure: True"                                                       >> $CABALHOME/config-    echo "  key-threshold: 3"                                                   >> $CABALHOME/config-    echo "  root-keys:"                                                         >> $CABALHOME/config-    echo "    fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0" >> $CABALHOME/config-    echo "    1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42" >> $CABALHOME/config-    echo "    2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3" >> $CABALHOME/config-    echo "    0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d" >> $CABALHOME/config-    echo "    51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921" >> $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   - |     if $HEADHACKAGE; then     echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1/g')" >> $CABALHOME/config@@ -170,6 +154,9 @@     echo "              f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89" >> $CABALHOME/config     echo "   key-threshold: 3"                                                            >> $CABALHOME/config     fi+install:+  - ${CABAL} --version+  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"   - |     echo "program-default-options"                >> $CABALHOME/config     echo "  ghc-options: $GHCJOBS +RTS -M6G -RTS" >> $CABALHOME/config@@ -184,6 +171,14 @@     echo "packages: servant-client" >> cabal.project     echo "packages: servant-docs" >> cabal.project     echo "packages: servant-server" >> cabal.project+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-client' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-docs' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-server' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"   - |     echo "constraints: foundatiion >= 0.14"        >> cabal.project     echo "allow-newer: servant-js:servant"         >> cabal.project@@ -195,15 +190,15 @@   - if [ -f "servant-client/configure.ac" ]; then (cd "servant-client" && autoreconf -i); fi   - if [ -f "servant-docs/configure.ac" ]; then (cd "servant-docs" && autoreconf -i); fi   - if [ -f "servant-server/configure.ac" ]; then (cd "servant-server" && autoreconf -i); fi-  - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH} | color_cabal_output+  - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH}   - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"   - rm  cabal.project.freeze-  - ${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+  - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all+  - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --dep -j2 all script:   - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)   # Packaging...-  - ${CABAL} v2-sdist all | color_cabal_output+  - ${CABAL} v2-sdist all   # Unpacking...   - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/   - cd ${DISTDIR} || false@@ -221,6 +216,14 @@     echo "packages: ${PKGDIR_servant_client}" >> cabal.project     echo "packages: ${PKGDIR_servant_docs}" >> cabal.project     echo "packages: ${PKGDIR_servant_server}" >> cabal.project+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-client' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-docs' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-server' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"   - |     echo "constraints: foundatiion >= 0.14"        >> cabal.project     echo "allow-newer: servant-js:servant"         >> cabal.project@@ -230,22 +233,22 @@   - cat cabal.project.local || true   # Building...   # this builds all libraries and executables (without tests/benchmarks)-  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all   # Building with tests and benchmarks...   # build & run tests, build benchmarks-  - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all   # Testing...-  - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all   # cabal check...   - (cd ${PKGDIR_servant} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_client} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_docs} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_server} && ${CABAL} -vnormal check)   # haddock...-  - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all   # Building without installed constraints for packages in global-db...   - rm -f cabal.project.local-  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all  # REGENDATA ["-o","cabal.project.empty-line.travis.yml","--config=cabal.project.haskell-ci","--ghc-head","cabal.project.empty-line"] # EOF
fixtures/cabal.project.messy.stderr view
@@ -1,1 +1,1 @@-*INFO* Generating Travis-CI config for testing for GHC versions: ghc-head 7.8.1 7.8.2 7.8.3 7.8.4 7.10.1 7.10.2 7.10.3 8.0.1 8.0.2 8.2.1 8.2.2 8.4.1 8.4.2 8.4.3 8.4.4 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1+*INFO* Generating Travis-CI config for testing for GHC versions: ghc-head 7.8.1 7.8.2 7.8.3 7.8.4 7.10.1 7.10.2 7.10.3 8.0.1 8.0.2 8.2.1 8.2.2 8.4.1 8.4.2 8.4.3 8.4.4 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1 8.8.2 8.8.3 8.10.1
fixtures/cabal.project.messy.travis.yml view
@@ -2,6 +2,10 @@ # #   haskell-ci '-o' 'cabal.project.messy.travis.yml' '--config=cabal.project.haskell-ci' '--ghc-head' '--apt=fftw3-dev' '--installed=-all +deepseq' 'cabal.project.messy' #+# To regenerate the script (for example after adjusting tested-with) run+#+#   haskell-ci regenerate+# # For more information, see https://github.com/haskell-CI/haskell-ci # version: ~> 1.0@@ -27,68 +31,77 @@   - rm -rfv $CABALHOME/packages/head.hackage jobs:   include:+    - compiler: ghc-8.10.1+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.10.1","cabal-install-3.2","fftw3-dev"]}}+      os: linux+    - compiler: ghc-8.8.3+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.3","cabal-install-3.2","fftw3-dev"]}}+      os: linux+    - compiler: ghc-8.8.2+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.2","cabal-install-3.2","fftw3-dev"]}}+      os: linux     - compiler: ghc-8.8.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.1","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.1","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-8.6.5-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-8.6.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.4","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.4","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-8.6.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.3","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.3","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-8.6.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.2","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.2","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-8.6.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.1","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.1","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-8.4.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-8.4.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.3","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.3","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-8.4.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.2","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.2","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-8.4.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.1","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.1","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-8.2.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-8.2.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.1","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.1","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-8.0.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-8.0.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.1","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.1","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-7.10.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-7.10.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.2","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.2","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-7.10.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.1","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.1","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-7.8.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-7.8.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.3","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.3","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-7.8.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.2","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.2","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-7.8.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.1","cabal-install-3.0","fftw3-dev"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.1","cabal-install-3.2","fftw3-dev"]}}       os: linux     - compiler: ghc-head       addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-head","cabal-install-head","fftw3-dev"]}}@@ -107,58 +120,29 @@   - TOP=$(pwd)   - "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"+  - CABAL="$CABAL -vnormal+nowrap"   - set -o pipefail-  - |-    echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }'           >> .colorful.awk-    echo 'BEGIN { state = "output"; }'                                     >> .colorful.awk-    echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }'            >> .colorful.awk-    echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }'             >> .colorful.awk-    echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >> .colorful.awk-    echo '  if (state == "cabal") {'                                       >> .colorful.awk-    echo '    print blue($0)'                                              >> .colorful.awk-    echo '  } else {'                                                      >> .colorful.awk-    echo '    print $0'                                                    >> .colorful.awk-    echo '  }'                                                             >> .colorful.awk-    echo '}'                                                               >> .colorful.awk-  - cat .colorful.awk-  - |-    color_cabal_output () {-      awk -f $TOP/.colorful.awk-    }-  - echo text | color_cabal_output-install:-  - ${CABAL} --version-  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"   - TEST=--enable-tests   - BENCH=--enable-benchmarks   - HEADHACKAGE=false-  - if [ $HCNUMVER -gt 80801 ] ; then HEADHACKAGE=true ; fi+  - if [ $HCNUMVER -gt 81001 ] ; then HEADHACKAGE=true ; fi   - 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 "  secure: True"                                                       >> $CABALHOME/config-    echo "  key-threshold: 3"                                                   >> $CABALHOME/config-    echo "  root-keys:"                                                         >> $CABALHOME/config-    echo "    fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0" >> $CABALHOME/config-    echo "    1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42" >> $CABALHOME/config-    echo "    2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3" >> $CABALHOME/config-    echo "    0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d" >> $CABALHOME/config-    echo "    51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921" >> $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   - |     if $HEADHACKAGE; then     echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1/g')" >> $CABALHOME/config@@ -170,6 +154,9 @@     echo "              f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89" >> $CABALHOME/config     echo "   key-threshold: 3"                                                            >> $CABALHOME/config     fi+install:+  - ${CABAL} --version+  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"   - |     echo "program-default-options"                >> $CABALHOME/config     echo "  ghc-options: $GHCJOBS +RTS -M6G -RTS" >> $CABALHOME/config@@ -184,6 +171,14 @@     echo "packages: servant-client" >> cabal.project     echo "packages: servant-docs" >> cabal.project     echo "packages: servant-server" >> cabal.project+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-client' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-docs' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-server' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"   - |   - "for pkg in deepseq; do echo \"constraints: $pkg installed\" >> cabal.project.local; done"   - cat cabal.project || true@@ -192,15 +187,15 @@   - if [ -f "servant-client/configure.ac" ]; then (cd "servant-client" && autoreconf -i); fi   - if [ -f "servant-docs/configure.ac" ]; then (cd "servant-docs" && autoreconf -i); fi   - if [ -f "servant-server/configure.ac" ]; then (cd "servant-server" && autoreconf -i); fi-  - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH} | color_cabal_output+  - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH}   - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"   - rm  cabal.project.freeze-  - ${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+  - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all+  - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --dep -j2 all script:   - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)   # Packaging...-  - ${CABAL} v2-sdist all | color_cabal_output+  - ${CABAL} v2-sdist all   # Unpacking...   - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/   - cd ${DISTDIR} || false@@ -218,28 +213,36 @@     echo "packages: ${PKGDIR_servant_client}" >> cabal.project     echo "packages: ${PKGDIR_servant_docs}" >> cabal.project     echo "packages: ${PKGDIR_servant_server}" >> cabal.project+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-client' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-docs' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant-server' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"   - |   - "for pkg in deepseq; do echo \"constraints: $pkg 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 $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all   # Building with tests and benchmarks...   # build & run tests, build benchmarks-  - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all   # Testing...-  - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all   # cabal check...   - (cd ${PKGDIR_servant} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_client} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_docs} && ${CABAL} -vnormal check)   - (cd ${PKGDIR_servant_server} && ${CABAL} -vnormal check)   # haddock...-  - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all   # Building without installed constraints for packages in global-db...   - rm -f cabal.project.local-  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all  # REGENDATA ["-o","cabal.project.messy.travis.yml","--config=cabal.project.haskell-ci","--ghc-head","--apt=fftw3-dev","--installed=-all +deepseq","cabal.project.messy"] # EOF
fixtures/cabal.project.travis-patch.stderr view
@@ -1,1 +1,1 @@-*INFO* Generating Travis-CI config for testing for GHC versions: 7.8.1 7.8.2 7.8.3 7.8.4 7.10.1 7.10.2 7.10.3 8.0.1 8.0.2 8.2.1 8.2.2 8.4.1 8.4.2 8.4.3 8.4.4 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1+*INFO* Generating Travis-CI config for testing for GHC versions: 7.8.1 7.8.2 7.8.3 7.8.4 7.10.1 7.10.2 7.10.3 8.0.1 8.0.2 8.2.1 8.2.2 8.4.1 8.4.2 8.4.3 8.4.4 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1 8.8.2 8.8.3 8.10.1
fixtures/cabal.project.travis-patch.travis.yml view
@@ -2,6 +2,10 @@ # #   haskell-ci '--config=cabal.project.haskell-ci' '--travis-patches=cabal.project.travis-patch.patch' 'cabal.project.travis-patch' #+# To regenerate the script (for example after adjusting tested-with) run+#+#   haskell-ci regenerate+# # For more information, see https://github.com/haskell-CI/haskell-ci # version: ~> 1.0@@ -27,68 +31,77 @@   - rm -rfv $CABALHOME/packages/head.hackage jobs:   include:+    - compiler: ghc-8.10.1+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.10.1","cabal-install-3.2"]}}+      os: linux+    - compiler: ghc-8.8.3+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.3","cabal-install-3.2"]}}+      os: linux+    - compiler: ghc-8.8.2+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.2","cabal-install-3.2"]}}+      os: linux     - compiler: ghc-8.8.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.5-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.6.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.4.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.2.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.2.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.0.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-8.0.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.10.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.1","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.4-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.3-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.3","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.3","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.2-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.2","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.2","cabal-install-3.2"]}}       os: linux     - compiler: ghc-7.8.1-      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.1","cabal-install-3.0"]}}+      addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.1","cabal-install-3.2"]}}       os: linux before_install:   - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')@@ -102,57 +115,31 @@   - TOP=$(pwd)   - "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"+  - CABAL="$CABAL -vnormal+nowrap"   - set -o pipefail-  - |-    echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }'           >> .colorful.awk-    echo 'BEGIN { state = "output"; }'                                     >> .colorful.awk-    echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }'            >> .colorful.awk-    echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }'             >> .colorful.awk-    echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >> .colorful.awk-    echo '  if (state == "cabal") {'                                       >> .colorful.awk-    echo '    print blue($0)'                                              >> .colorful.awk-    echo '  } else {'                                                      >> .colorful.awk-    echo '    print $0'                                                    >> .colorful.awk-    echo '  }'                                                             >> .colorful.awk-    echo '}'                                                               >> .colorful.awk-  - cat .colorful.awk-  - |-    color_cabal_output () {-      awk -f $TOP/.colorful.awk-    }-  - echo text | color_cabal_output-install:-  - ${CABAL} --version-  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"   - TEST=--enable-tests   - BENCH=--enable-benchmarks   - 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 "  secure: True"                                                       >> $CABALHOME/config-    echo "  key-threshold: 3"                                                   >> $CABALHOME/config-    echo "  root-keys:"                                                         >> $CABALHOME/config-    echo "    fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0" >> $CABALHOME/config-    echo "    1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42" >> $CABALHOME/config-    echo "    2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3" >> $CABALHOME/config-    echo "    0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d" >> $CABALHOME/config-    echo "    51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921" >> $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+install:+  - ${CABAL} --version+  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"   - |     echo "program-default-options"                >> $CABALHOME/config     echo "  ghc-options: $GHCJOBS +RTS -M6G -RTS" >> $CABALHOME/config@@ -164,20 +151,22 @@   - touch cabal.project   - |     echo "packages: servant" >> cabal.project+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"   - |   - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(servant)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"   - cat cabal.project || true   - cat cabal.project.local || true   - if [ -f "servant/configure.ac" ]; then (cd "servant" && autoreconf -i); fi-  - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH} | color_cabal_output+  - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH}   - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"   - rm  cabal.project.freeze-  - ${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+  - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all+  - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --dep -j2 all script:   - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)   # Packaging...-  - ${CABAL} v2-sdist all | color_cabal_output+  - ${CABAL} v2-sdist all   # Unpacking...   - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/   - cd ${DISTDIR} || false@@ -189,25 +178,27 @@   - touch cabal.project   - |     echo "packages: ${PKGDIR_servant}" >> cabal.project+  - if [ $HCNUMVER -ge 80200 ] ; then echo 'package servant' >> cabal.project ; fi+  - "if [ $HCNUMVER -ge 80200 ] ; then echo '  ghc-options: -Werror=missing-methods' >> cabal.project ; fi"   - |   - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(servant)$' || 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 $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all   # Building with tests and benchmarks...   # build & run tests, build benchmarks-  - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all   # Testing...-  - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all   # cabal check...   - (cd ${PKGDIR_servant} && ${CABAL} -vnormal check)   # haddock...-  - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all | color_cabal_output+  - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all   # Building without installed constraints for packages in global-db...   - rm -f cabal.project.local-  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output+  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all  # REGENDATA ["--config=cabal.project.haskell-ci","--travis-patches=cabal.project.travis-patch.patch","cabal.project.travis-patch"] # EOF
haskell-ci.cabal view
@@ -1,6 +1,6 @@ cabal-version:      2.2 name:               haskell-ci-version:            0.8+version:            0.10 synopsis:           Cabal package script generator for Travis-CI description:   Script generator (@haskell-ci@) for [Travis-CI](https://travis-ci.org/) for continuous-integration testing of Haskell Cabal packages.@@ -30,10 +30,11 @@ maintainer:         hvr@gnu.org category:           Development build-type:         Simple-tested-with:        GHC ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.1-extra-source-files:-  CHANGELOG.md+tested-with:+  GHC ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.3 || ==8.10.1 +extra-source-files: CHANGELOG.md+ -- find fixtures -type f | sort extra-source-files:   fixtures/cabal.project.copy-fields.all@@ -95,6 +96,7 @@     HaskellCI.Config.HLint     HaskellCI.Config.Installed     HaskellCI.Config.Jobs+    HaskellCI.Config.PackageScope     HaskellCI.Config.Ubuntu     HaskellCI.Diagnostics     HaskellCI.Jobs@@ -133,9 +135,9 @@     ViewPatterns    build-depends:-    , base          >=4.10     && <4.14+    , base          >=4.10     && <4.15     , bytestring    ^>=0.10.8.1-    , Cabal         ^>=3.0+    , Cabal         ^>= 3.2     , containers    ^>=0.5.7.1 || ^>=0.6.0.1     , deepseq       ^>=1.4.2.0     , directory     ^>=1.3.0.0@@ -152,18 +154,17 @@    -- other dependencies   build-depends:-    , aeson                 ^>=1.4.2.0-    , base-compat           ^>=0.11-    , cabal-install-parsers ^>=0.1-    , exceptions            ^>=0.10.0-    , generic-lens          ^>=1.2.0.0-    , HsYAML                ^>=0.2.0.0-    , lattices              ^>=2-    , microlens             ^>=0.4.10-    , network-uri           ^>=2.6.1.0-    , optparse-applicative  ^>=0.15-    , temporary             ^>=1.3-    , unordered-containers  ^>=0.2.10.0+    , aeson                  ^>=1.4.2.0+    , base-compat            ^>=0.11+    , cabal-install-parsers  ^>=0.3+    , exceptions             ^>=0.10.0+    , generic-lens-lite      ^>=0.1+    , HsYAML                 ^>=0.2.0.0+    , lattices               ^>=2+    , network-uri            ^>=2.6.1.0+    , optparse-applicative   ^>=0.15+    , temporary              ^>=1.3+    , unordered-containers   ^>=0.2.10.0    -- ShellCheck. Would need newer transformers for older GHC   if (flag(shellcheck) && impl(ghc >=7.10 && <8.7))
src/HaskellCI.hs view
@@ -1,8 +1,9 @@ {-# LANGUAGE CPP                 #-}+{-# LANGUAGE DataKinds           #-} {-# LANGUAGE MultiWayIf          #-}-{-# LANGUAGE OverloadedLabels    #-} {-# LANGUAGE OverloadedStrings   #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeApplications    #-}  -- | New-style @.travis.yml@ script generator using cabal 1.24's nix-style -- tech-preview facilities.@@ -142,7 +143,7 @@         Left []     -> putStrLnErr "panic: checkVersions failed without errors"         Left (e:es) -> putStrLnErrs (e :| es) -    let prj' | cfgGhcHead config = over (mapped . #pkgJobs) (S.insert GHCHead) prj+    let prj' | cfgGhcHead config = over (mapped . field @"pkgJobs") (S.insert GHCHead) prj              | otherwise         = prj      ls <- genTravisFromConfigs args config prj' ghcs@@ -156,7 +157,7 @@     getCabalFiles :: m (Project URI Void (FilePath, GenericPackageDescription))     getCabalFiles         | isNothing isCabalProject = do-            e <- liftIO $ readPackagesOfProject (emptyProject & #prjPackages .~ [path])+            e <- liftIO $ readPackagesOfProject (emptyProject & field @"prjPackages" .~ [path])             either (putStrLnErr . renderParseError) return e         | otherwise = do             contents <- liftIO $ BS.readFile path
src/HaskellCI/Compiler.hs view
@@ -113,7 +113,8 @@     , [8,2,1],  [8,2,2]     , [8,4,1],  [8,4,2], [8,4,3], [8,4,4]     , [8,6,1],  [8,6,2], [8,6,3], [8,6,4], [8,6,5]-    , [8,8,1]+    , [8,8,1],  [8,8,2], [8,8,3]+    , [8,10,1]     ]  knownGhcjsVersions :: [Version]@@ -138,8 +139,8 @@ correspondingCabalVersion (Just _)  GHCHead   = Nothing correspondingCabalVersion (Just _)  (GHCJS _) = Just (mkVersion [3,0]) correspondingCabalVersion (Just cv) (GHC gv)-    | gv >= mkVersion [8,8] = Just $ max (mkVersion [3,0]) cv-    | otherwise             = Just $ max (mkVersion [2,4]) cv+    | gv >= mkVersion [8,10] = Just $ max (mkVersion [3,2]) cv+    | otherwise              = Just $ max (mkVersion [3,0]) cv  dispGhcVersion :: CompilerVersion -> String dispGhcVersion GHCHead   = "ghc-head"
src/HaskellCI/Config.hs view
@@ -1,7 +1,8 @@+{-# LANGUAGE DataKinds             #-} {-# LANGUAGE FlexibleInstances     #-} {-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedLabels      #-} {-# LANGUAGE OverloadedStrings     #-}+{-# LANGUAGE TypeApplications      #-} module HaskellCI.Config where  import HaskellCI.Prelude@@ -31,6 +32,7 @@ import HaskellCI.Config.HLint import HaskellCI.Config.Installed import HaskellCI.Config.Jobs+import HaskellCI.Config.PackageScope import HaskellCI.Config.Ubuntu import HaskellCI.Newtypes import HaskellCI.OptionsGrammar@@ -38,7 +40,7 @@ import HaskellCI.TestedWith  defaultHeadHackage :: VersionRange-defaultHeadHackage = C.orLaterVersion (C.mkVersion [8,9])+defaultHeadHackage = C.orLaterVersion (C.mkVersion [8,11])  -- TODO: split other blocks like DoctestConfig data Config = Config@@ -64,6 +66,7 @@     , cfgCheck               :: !Bool     , cfgOnlyBranches        :: [String]     , cfgIrcChannels         :: [String]+    , cfgEmailNotifications  :: Bool      , cfgProjectName         :: Maybe String     , cfgFolds               :: S.Set Fold     , cfgGhcHead             :: !Bool@@ -76,16 +79,17 @@     , cfgApt                 :: S.Set String     , cfgTravisPatches       :: [FilePath]     , cfgInsertVersion       :: !Bool-    , cfgColor               :: !Bool+    , cfgErrorMissingMethods :: !PackageScope     , cfgDoctest             :: !DoctestConfig     , cfgHLint               :: !HLintConfig     , cfgConstraintSets      :: [ConstraintSet]     , cfgRawProject          :: [C.PrettyField ()]+    , cfgRawTravis           :: !String     }   deriving (Generic)  defaultCabalInstallVersion :: Maybe Version-defaultCabalInstallVersion = Just (C.mkVersion [3,0])+defaultCabalInstallVersion = Just (C.mkVersion [3,2])  emptyConfig :: Config emptyConfig = Config@@ -95,10 +99,11 @@     , cfgTestedWith      = TestedWithUniform     , cfgCopyFields      = CopyFieldsSome     , cfgDoctest         = DoctestConfig-        { cfgDoctestEnabled    = noVersion-        , cfgDoctestOptions    = []-        , cfgDoctestVersion    = defaultDoctestVersion-        , cfgDoctestFilterPkgs = []+        { cfgDoctestEnabled       = noVersion+        , cfgDoctestOptions       = []+        , cfgDoctestVersion       = defaultDoctestVersion+        , cfgDoctestFilterEnvPkgs = []+        , cfgDoctestFilterSrcPkgs = []         }     , cfgHLint = HLintConfig         { cfgHLintEnabled  = False@@ -126,6 +131,7 @@     , cfgCheck           = True     , cfgOnlyBranches    = []     , cfgIrcChannels     = []+    , cfgEmailNotifications = True     , cfgProjectName     = Nothing     , cfgFolds           = S.empty     , cfgGhcHead         = False@@ -138,8 +144,9 @@     , cfgApt             = S.empty     , cfgTravisPatches   = []     , cfgInsertVersion   = True-    , cfgColor           = True     , cfgRawProject      = []+    , cfgRawTravis       = ""+    , cfgErrorMissingMethods = PackageScopeLocal     }  -------------------------------------------------------------------------------@@ -150,80 +157,84 @@     :: (OptionsGrammar g, Applicative (g Config), Applicative (g DoctestConfig), Applicative (g HLintConfig))     => g Config Config configGrammar = Config-    <$> C.optionalFieldDefAla "cabal-install-version"     HeadVersion                         #cfgCabalInstallVersion defaultCabalInstallVersion+    <$> C.optionalFieldDefAla "cabal-install-version"     HeadVersion                         (field @"cfgCabalInstallVersion") defaultCabalInstallVersion         ^^^ metahelp "VERSION" "cabal-install version for all jobs"-    <*> C.optionalField       "jobs"                                                          #cfgJobs+    <*> C.optionalField       "jobs"                                                          (field @"cfgJobs")         ^^^ metahelp "JOBS" "jobs (N:M - cabal:ghc)"-    <*> C.optionalFieldDef    "distribution"                                                  #cfgUbuntu Xenial+    <*> C.optionalFieldDef    "distribution"                                                  (field @"cfgUbuntu") Xenial         ^^^ metahelp "DIST" "distribution version (xenial, bionic)"-    <*> C.optionalFieldDef    "jobs-selection"                                                #cfgTestedWith TestedWithUniform+    <*> C.optionalFieldDef    "jobs-selection"                                                (field @"cfgTestedWith") TestedWithUniform         ^^^ metahelp "uniform|any" "Jobs selection across packages"-    <*> C.optionalFieldDef    "copy-fields"                                                   #cfgCopyFields CopyFieldsSome+    <*> C.optionalFieldDef    "copy-fields"                                                   (field @"cfgCopyFields") CopyFieldsSome         ^^^ metahelp "none|some|all" "Copy ? fields from cabal.project fields"-    <*> C.monoidalFieldAla    "local-ghc-options"         (C.alaList' C.NoCommaFSep C.Token') #cfgLocalGhcOptions+    <*> C.monoidalFieldAla    "local-ghc-options"         (C.alaList' C.NoCommaFSep C.Token') (field @"cfgLocalGhcOptions")         ^^^ metahelp "OPTS" "--ghc-options for local packages"-    <*> C.booleanFieldDef     "submodules"                                                    #cfgSubmodules False+    <*> C.booleanFieldDef     "submodules"                                                    (field @"cfgSubmodules") False         ^^^ help "Clone submodules, i.e. recursively"-    <*> C.booleanFieldDef     "cache"                                                         #cfgCache True+    <*> C.booleanFieldDef     "cache"                                                         (field @"cfgCache") True         ^^^ help "Disable caching"-    <*> C.booleanFieldDef     "install-dependencies"                                          #cfgInstallDeps True+    <*> C.booleanFieldDef     "install-dependencies"                                          (field @"cfgInstallDeps") True         ^^^ help "Skip separate dependency installation step"-    <*> C.monoidalFieldAla    "installed"                 (C.alaList C.FSep)                  #cfgInstalled+    <*> C.monoidalFieldAla    "installed"                 (C.alaList C.FSep)                  (field @"cfgInstalled")         ^^^ metahelp "+/-PKG" "Specify 'constraint: ... installed' packages"-    <*> rangeField            "tests"                                                         #cfgTests anyVersion+    <*> rangeField            "tests"                                                         (field @"cfgTests") anyVersion         ^^^ metahelp "RANGE" "Build tests with"-    <*> rangeField            "run-tests"                                                     #cfgRunTests anyVersion+    <*> rangeField            "run-tests"                                                     (field @"cfgRunTests") anyVersion         ^^^ metahelp "RANGE" "Run tests with (note: only built tests are run)"-    <*> rangeField           "benchmarks"                                                     #cfgBenchmarks anyVersion+    <*> rangeField           "benchmarks"                                                     (field @"cfgBenchmarks") anyVersion         ^^^ metahelp "RANGE" "Build benchmarks"-    <*> rangeField           "haddock"                                                        #cfgHaddock anyVersion+    <*> rangeField           "haddock"                                                        (field @"cfgHaddock") anyVersion         ^^^ metahelp "RANGE" "Haddock step"-    <*> rangeField           "no-tests-no-benchmarks"                                         #cfgNoTestsNoBench anyVersion+    <*> rangeField           "no-tests-no-benchmarks"                                         (field @"cfgNoTestsNoBench") anyVersion         ^^^ metahelp "RANGE" "Build without tests and benchmarks"-    <*> rangeField            "unconstrained"                                                 #cfgUnconstrainted anyVersion+    <*> rangeField            "unconstrained"                                                 (field @"cfgUnconstrainted") anyVersion         ^^^ metahelp "RANGE" "Make unconstrained build"-    <*> rangeField            "head-hackage"                                                  #cfgHeadHackage defaultHeadHackage+    <*> rangeField            "head-hackage"                                                  (field @"cfgHeadHackage") defaultHeadHackage         ^^^ metahelp "RANGE" "Use head.hackage repository. Also marks as allow-failures"-    <*> C.booleanFieldDef     "ghcjs-tests"                                                   #cfgGhcjsTests False+    <*> C.booleanFieldDef     "ghcjs-tests"                                                   (field @"cfgGhcjsTests") False         ^^^ help "Run tests with GHCJS (experimental, relies on cabal-plan finding test-suites)"-    <*> C.monoidalFieldAla    "ghcjs-tools"               (C.alaList C.FSep)                  #cfgGhcjsTools+    <*> C.monoidalFieldAla    "ghcjs-tools"               (C.alaList C.FSep)                  (field @"cfgGhcjsTools") --        ^^^ metahelp "TOOL" "Additional host tools to install with GHCJS"-    <*> C.booleanFieldDef "cabal-check"                                                       #cfgCheck True+    <*> C.booleanFieldDef "cabal-check"                                                       (field @"cfgCheck") True         ^^^ help "Disable cabal check run"-    <*> C.monoidalFieldAla    "branches"                  (C.alaList' C.FSep C.Token')        #cfgOnlyBranches+    <*> C.monoidalFieldAla    "branches"                  (C.alaList' C.FSep C.Token')        (field @"cfgOnlyBranches")         ^^^ metahelp "BRANCH" "Enable builds only for specific branches"-    <*> C.monoidalFieldAla    "irc-channels"              (C.alaList' C.FSep C.Token')        #cfgIrcChannels+    <*> C.monoidalFieldAla    "irc-channels"              (C.alaList' C.FSep C.Token')        (field @"cfgIrcChannels")         ^^^ metahelp "IRC" "Enable IRC notifications to given channel (e.g. 'irc.freenode.org#haskell-lens')"-    <*> C.optionalFieldAla    "project-name"              C.Token'                            #cfgProjectName+    <*> C.booleanFieldDef "email-notifications"                                               (field @"cfgEmailNotifications") True+        ^^^ help "Disable email notifications"+    <*> C.optionalFieldAla    "project-name"              C.Token'                            (field @"cfgProjectName")         ^^^ metahelp "NAME" "Project name (used for IRC notifications), defaults to package name or name of first package listed in cabal.project file"-    <*> C.monoidalFieldAla    "folds"                     Folds                               #cfgFolds+    <*> C.monoidalFieldAla    "folds"                     Folds                               (field @"cfgFolds")         ^^^ metahelp "FOLD" "Build steps to fold"-    <*> C.booleanFieldDef     "ghc-head"                                                      #cfgGhcHead False+    <*> C.booleanFieldDef     "ghc-head"                                                      (field @"cfgGhcHead") False         ^^^ help "Add ghc-head job"-    <*> C.booleanFieldDef     "postgresql"                                                    #cfgPostgres False+    <*> C.booleanFieldDef     "postgresql"                                                    (field @"cfgPostgres") False         ^^^ help "Add postgresql service"-    <*> C.booleanFieldDef     "google-chrome"                                                 #cfgGoogleChrome False+    <*> C.booleanFieldDef     "google-chrome"                                                 (field @"cfgGoogleChrome") False         ^^^ help "Add google-chrome service"-    <*> C.monoidalFieldAla    "env"                       Env                                 #cfgEnv+    <*> C.monoidalFieldAla    "env"                       Env                                 (field @"cfgEnv")         ^^^ metahelp "ENV" "Environment variables per job (e.g. `8.0.2:HADDOCK=false`)"-    <*> C.optionalFieldDefAla "allow-failures"            Range                               #cfgAllowFailures noVersion+    <*> C.optionalFieldDefAla "allow-failures"            Range                               (field @"cfgAllowFailures") noVersion         ^^^ metahelp "JOB" "Allow failures of particular GHC version"-    <*> C.booleanFieldDef     "last-in-series"                                                #cfgLastInSeries False+    <*> C.booleanFieldDef     "last-in-series"                                                (field @"cfgLastInSeries") False         ^^^ help "[Discouraged] Assume there are only GHCs last in major series: 8.2.* will match only 8.2.2"-    <*> C.monoidalFieldAla    "osx"                       (alaSet C.NoCommaFSep)              #cfgOsx+    <*> C.monoidalFieldAla    "osx"                       (alaSet C.NoCommaFSep)              (field @"cfgOsx")         ^^^ metahelp "JOB" "Jobs to additionally build with OSX"-    <*> C.monoidalFieldAla    "apt"                       (alaSet' C.NoCommaFSep C.Token')    #cfgApt+    <*> C.monoidalFieldAla    "apt"                       (alaSet' C.NoCommaFSep C.Token')    (field @"cfgApt")         ^^^ metahelp "PKG" "Additional apt packages to install"-    <*> C.monoidalFieldAla    "travis-patches"            (C.alaList' C.NoCommaFSep C.Token') #cfgTravisPatches+    <*> C.monoidalFieldAla    "travis-patches"            (C.alaList' C.NoCommaFSep C.Token') (field @"cfgTravisPatches")         ^^^ metahelp "PATCH" ".patch files to apply to the generated Travis YAML file"-    <*> C.booleanFieldDef "insert-version"                                                    #cfgInsertVersion True+    <*> C.booleanFieldDef "insert-version"                                                    (field @"cfgInsertVersion") True         ^^^ help "Don't insert the haskell-ci version into the generated Travis YAML file"-    <*> C.booleanFieldDef     "color"                                                         #cfgColor True-        ^^^ help "Disable coloring cabal output"-    <*> C.blurFieldGrammar #cfgDoctest doctestConfigGrammar-    <*> C.blurFieldGrammar #cfgHLint   hlintConfigGrammar+    <*> C.optionalFieldDef "error-missing-methods"                                            (field @"cfgErrorMissingMethods") PackageScopeLocal+        ^^^ metahelp "PKGSCOPE" "Insert -Werror=missing-methods for package scope (none, local, all)"+    <*> C.blurFieldGrammar (field @"cfgDoctest") doctestConfigGrammar+    <*> C.blurFieldGrammar (field @"cfgHLint")   hlintConfigGrammar     <*> pure [] -- constraint sets     <*> pure [] -- raw project fields+    <*> C.freeTextFieldDef "raw-travis"                                                       (field @"cfgRawTravis")+        ^^^ help "Raw travis commands which will be run at the very end of the script"  ------------------------------------------------------------------------------- -- Reading@@ -246,10 +257,10 @@             name' <- parseName pos args             let (fs, _sections) = C.partitionFields cfields             cs <- C.parseFieldGrammar C.cabalSpecLatest fs (constraintSetGrammar name')-            return $ over #cfgConstraintSets (cs :)+            return $ over (field @"cfgConstraintSets") (cs :)         | name == "raw-project" = do             let fs = C.fromParsecFields cfields-            return $ over #cfgRawProject (++ map void fs)+            return $ over (field @"cfgRawProject") (++ map void fs)         | otherwise = do             C.parseWarning pos C.PWTUnknownSection $ "Unknown section " ++ fromUTF8BS name             return id
src/HaskellCI/Config/ConstraintSet.hs view
@@ -1,5 +1,6 @@-{-# LANGUAGE OverloadedLabels  #-}+{-# LANGUAGE DataKinds         #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeApplications  #-} module HaskellCI.Config.ConstraintSet where  import HaskellCI.Prelude@@ -31,9 +32,9 @@     :: (C.FieldGrammar g, Applicative (g ConstraintSet))     => String -> g ConstraintSet ConstraintSet constraintSetGrammar name = ConstraintSet name-    <$> C.optionalFieldDef "ghc"                                           #csGhcVersions anyVersion-    <*> C.monoidalFieldAla "constraints" (C.alaList' C.CommaVCat NoCommas) #csConstraints-    <*> C.booleanFieldDef  "tests"                                         #csTests False-    <*> C.booleanFieldDef  "run-tests"                                     #csRunTests False-    <*> C.booleanFieldDef  "benchmarks"                                    #csBenchmarks False-    <*> C.booleanFieldDef  "haddock"                                       #csHaddock False+    <$> C.optionalFieldDef "ghc"                                           (field @"csGhcVersions") anyVersion+    <*> C.monoidalFieldAla "constraints" (C.alaList' C.CommaVCat NoCommas) (field @"csConstraints")+    <*> C.booleanFieldDef  "tests"                                         (field @"csTests") False+    <*> C.booleanFieldDef  "run-tests"                                     (field @"csRunTests") False+    <*> C.booleanFieldDef  "benchmarks"                                    (field @"csBenchmarks") False+    <*> C.booleanFieldDef  "haddock"                                       (field @"csHaddock") False
src/HaskellCI/Config/Doctest.hs view
@@ -1,10 +1,11 @@-{-# LANGUAGE OverloadedLabels  #-}+{-# LANGUAGE DataKinds         #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeApplications  #-} module HaskellCI.Config.Doctest where  import HaskellCI.Prelude -import Distribution.Version (withinVersion)+import Distribution.Version (majorBoundVersion)  import qualified Distribution.FieldGrammar      as C import qualified Distribution.Parsec.Newtypes   as C@@ -13,15 +14,16 @@ import HaskellCI.OptionsGrammar  data DoctestConfig = DoctestConfig-    { cfgDoctestEnabled    :: !VersionRange-    , cfgDoctestOptions    :: [String]-    , cfgDoctestVersion    :: !VersionRange-    , cfgDoctestFilterPkgs :: ![C.PackageName]+    { cfgDoctestEnabled       :: !VersionRange+    , cfgDoctestOptions       :: [String]+    , cfgDoctestVersion       :: !VersionRange+    , cfgDoctestFilterEnvPkgs :: ![C.PackageName]+    , cfgDoctestFilterSrcPkgs :: ![C.PackageName]     }   deriving (Show, Generic)  defaultDoctestVersion :: VersionRange-defaultDoctestVersion = withinVersion (mkVersion [0,16])+defaultDoctestVersion = majorBoundVersion (mkVersion [0,16,3])  ------------------------------------------------------------------------------- -- Grammar@@ -31,11 +33,13 @@     :: (OptionsGrammar g, Applicative (g DoctestConfig))     => g DoctestConfig DoctestConfig doctestConfigGrammar = DoctestConfig-    <$> rangeField         "doctest"                                             #cfgDoctestEnabled noVersion+    <$> rangeField         "doctest"                                              (field @"cfgDoctestEnabled") noVersion         ^^^ help "Enable Doctest job"-    <*> C.monoidalFieldAla "doctest-options" (C.alaList' C.NoCommaFSep C.Token') #cfgDoctestOptions+    <*> C.monoidalFieldAla "doctest-options" (C.alaList' C.NoCommaFSep C.Token')  (field @"cfgDoctestOptions")         ^^^ metahelp "OPTS" "Additional Doctest options"-    <*> C.optionalFieldDef "doctest-version"                                     #cfgDoctestVersion defaultDoctestVersion+    <*> C.optionalFieldDef "doctest-version"                                      (field @"cfgDoctestVersion") defaultDoctestVersion         ^^^ metahelp "RANGE" "Doctest version"-    <*> C.monoidalFieldAla "doctest-filter-packages" (C.alaList C.NoCommaFSep)   #cfgDoctestFilterPkgs+    <*> C.monoidalFieldAla "doctest-filter-packages" (C.alaList C.NoCommaFSep)    (field @"cfgDoctestFilterEnvPkgs")         ^^^ metahelp "PKGS" "Filter packages from .ghc.environment file"+    <*> C.monoidalFieldAla "doctest-skip" (C.alaList C.NoCommaFSep)               (field @"cfgDoctestFilterSrcPkgs")+        ^^^ metahelp "PKGS" "Skip doctests for these packages"
src/HaskellCI/Config/Dump.hs view
@@ -53,6 +53,11 @@         , ""         ] +    freeTextFieldDefST fn _ = DG+        [ fromUTF8BS fn ++ ":"+        , ""+        ]+     prefixedFields _ _   = pure []     knownField _         = pure ()     deprecatedSince _  _ = id
src/HaskellCI/Config/HLint.hs view
@@ -1,5 +1,6 @@-{-# LANGUAGE OverloadedLabels  #-}+{-# LANGUAGE DataKinds         #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeApplications  #-} module HaskellCI.Config.HLint where  import HaskellCI.Prelude@@ -53,15 +54,15 @@     :: (OptionsGrammar g, Applicative (g HLintConfig))     => g HLintConfig HLintConfig hlintConfigGrammar = HLintConfig-    <$> C.booleanFieldDef  "hlint"                                             #cfgHLintEnabled False+    <$> C.booleanFieldDef  "hlint"                                             (field @"cfgHLintEnabled") False         ^^^ help "Enable HLint job"-    <*> C.optionalFieldDef "hlint-job"                                         #cfgHLintJob HLintJobLatest+    <*> C.optionalFieldDef "hlint-job"                                         (field @"cfgHLintJob") HLintJobLatest         ^^^ metahelp "JOB" "Specify HLint job"-    <*> C.optionalFieldAla "hlint-yaml"    C.FilePathNT                        #cfgHLintYaml+    <*> C.optionalFieldAla "hlint-yaml"    C.FilePathNT                        (field @"cfgHLintYaml")         ^^^ metahelp "PATH" "Use specific .hlint.yaml"-    <*> C.monoidalFieldAla "hlint-options" (C.alaList' C.NoCommaFSep C.Token') #cfgHLintOptions+    <*> C.monoidalFieldAla "hlint-options" (C.alaList' C.NoCommaFSep C.Token') (field @"cfgHLintOptions")         ^^^ metahelp "OPTS" "Additional HLint options"-    <*> C.optionalFieldDef "hlint-version"                                     #cfgHLintVersion defaultHLintVersion+    <*> C.optionalFieldDef "hlint-version"                                     (field @"cfgHLintVersion") defaultHLintVersion         ^^^ metahelp "RANGE" "HLint version"-    <*> C.booleanFieldDef "hlint-download-binary"                              #cfgHLintDownload True+    <*> C.booleanFieldDef "hlint-download-binary"                              (field @"cfgHLintDownload") True         ^^^ help "Download HLint binary release"
+ src/HaskellCI/Config/PackageScope.hs view
@@ -0,0 +1,25 @@+module HaskellCI.Config.PackageScope where++import HaskellCI.Prelude++import qualified Distribution.Compat.CharParsing as C+import qualified Distribution.Parsec             as C+import qualified Distribution.Pretty             as C+import qualified Text.PrettyPrint                as PP++data PackageScope+    = PackageScopeNone+    | PackageScopeLocal+    | PackageScopeAll+  deriving (Eq, Show)++instance C.Parsec PackageScope where+    parsec = +            PackageScopeNone  <$ C.string "none"+        <|> PackageScopeLocal <$ C.string "local"+        <|> PackageScopeAll   <$ C.string "all"++instance C.Pretty PackageScope where+    pretty PackageScopeNone  = PP.text "none"+    pretty PackageScopeLocal = PP.text "local"+    pretty PackageScopeAll   = PP.text "all"
src/HaskellCI/OptparseGrammar.hs view
@@ -80,6 +80,9 @@     freeTextFieldDef fn l = OG         [ SP $ \m h -> setOG l $ O.strOption $ optionMods fn m h ] +    freeTextFieldDefST fn l = OG+        [ SP $ \m h -> setOG l $ O.strOption $ optionMods fn m h ]+ instance OptionsGrammar OptparseGrammar where     help h (OG ps) = OG         [ SP $ \m _h -> p m (Just h)
src/HaskellCI/ParsecUtils.hs view
@@ -38,5 +38,5 @@             hPutStr stderr $ renderParseError (ParseError fpath bs [] ws)             return x         (ws, Left (_, es)) -> do-            hPutStr stderr $ renderParseError (ParseError fpath bs es ws)+            hPutStr stderr $ renderParseError (ParseError fpath bs (toList es) ws)             exitFailure
src/HaskellCI/Prelude.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE ScopedTypeVariables #-} {-# OPTIONS_GHC -Wno-orphans #-} module HaskellCI.Prelude (     module Prelude.Compat,@@ -22,6 +23,7 @@ import Data.Either            as X (partitionEithers) import Data.Foldable          as X (for_, toList, traverse_) import Data.Function          as X (on)+import Data.Functor.Compat    as X ((<&>)) import Data.Functor.Identity  as X (Identity (..)) import Data.List              as X (foldl', intercalate, isPrefixOf, nub, stripPrefix, tails) import Data.List.NonEmpty     as X (NonEmpty (..), groupBy)@@ -31,21 +33,24 @@ import Data.String            as X (IsString (fromString)) import Data.Void              as X (Void) import GHC.Generics           as X (Generic)-import Lens.Micro             as X (mapped, over, (&), (.~), (<&>), (^.), (^..)) import Network.URI            as X (URI, parseURI, uriToString) import Text.Read              as X (readMaybe) +import Data.Generics.Lens.Lite  as X (field)+import Distribution.Compat.Lens as X (over, toListOf, (&), (.~), (^.))+ import Distribution.Parsec  as X (simpleParsec) import Distribution.Pretty  as X (prettyShow) import Distribution.Version as X (Version, VersionRange, anyVersion, mkVersion, noVersion)  import qualified Distribution.Version as C -import Data.Generics.Labels ()- ------------------------------------------------------------------------------- -- Extras -------------------------------------------------------------------------------++mapped :: forall f a b. Functor f => (a -> Identity b) -> f a -> Identity (f b)+mapped = coerce (fmap :: (a -> b) -> f a -> f b)  head :: NonEmpty a -> a head (x :| _) = x
src/HaskellCI/TestedWith.hs view
@@ -7,7 +7,6 @@ import Prelude.Compat  import Control.Applicative  ((<|>))-import Data.Generics.Labels () import Data.List            (intercalate)  import qualified Data.Foldable                   as F
src/HaskellCI/Tools.hs view
@@ -45,10 +45,10 @@ doctestArgs :: C.GenericPackageDescription -> [[String]] doctestArgs gpd = nub $     [ libraryModuleArgs c-    | c <- C.flattenPackageDescription gpd ^.. L.library . traverse+    | c <- toListOf (L.library . traverse) (C.flattenPackageDescription gpd)     ] ++     [ libraryModuleArgs c-    | c <- C.flattenPackageDescription gpd ^.. L.subLibraries . traverse+    | c <- toListOf (L.subLibraries . traverse) (C.flattenPackageDescription gpd)     ]  libraryModuleArgs :: C.Library -> [String]@@ -102,11 +102,11 @@ hlintArgs :: C.GenericPackageDescription -> [[String]] hlintArgs gpd = nub $     [ libraryModuleArgs c-    | c <- C.flattenPackageDescription gpd ^.. L.library . traverse+    | c <- toListOf (L.library . traverse) (C.flattenPackageDescription gpd)     ] ++     [ libraryModuleArgs c-    | c <- C.flattenPackageDescription gpd ^.. L.subLibraries . traverse+    | c <- toListOf (L.subLibraries . traverse) (C.flattenPackageDescription gpd)     ] ++     [ executableModuleArgs c-    | c <- C.flattenPackageDescription gpd ^.. L.executables . traverse+    | c <- toListOf (L.executables . traverse) (C.flattenPackageDescription gpd)     ]
src/HaskellCI/Travis.hs view
@@ -44,6 +44,7 @@ import HaskellCI.Config.HLint import HaskellCI.Config.Installed import HaskellCI.Config.Jobs+import HaskellCI.Config.PackageScope import HaskellCI.Config.Ubuntu import HaskellCI.Jobs import HaskellCI.List@@ -64,6 +65,10 @@     , ""     , "  haskell-ci " ++ unwords [ "'" ++ a ++ "'" | a <- argv ]     , ""+    , "To regenerate the script (for example after adjusting tested-with) run"+    , ""+    , "  haskell-ci regenerate"+    , ""     , "For more information, see https://github.com/haskell-CI/haskell-ci"     , ""     ] ++@@ -133,46 +138,17 @@         -- macOS installing         let haskellOnMacos = "https://haskell.futurice.com/haskell-on-macos.py"         unless (null cfgOsx) $ do-            sh $ "if [ \"$TRAVIS_OS_NAME\" = \"osx\" ]; then curl " ++ haskellOnMacos ++ " | python3 - --make-dirs --install-dir=$HOME/.ghc-install --cabal-alias=head install cabal-install-head ${TRAVIS_COMPILER}; fi"+            sh $ "if [ \"$TRAVIS_OS_NAME\" = \"osx\" ]; then curl " ++ haskellOnMacos ++ " | python3 - --make-dirs --install-dir=$HOME/.ghc-install --cabal-alias=3.2.0.0 install cabal-install-3.2.0.0 ${TRAVIS_COMPILER}; fi"             sh' [2034,2039] "if [ \"$TRAVIS_OS_NAME\" = \"osx\" ]; then HC=$HOME/.ghc-install/ghc/bin/$TRAVIS_COMPILER; WITHCOMPILER=\"-w $HC\"; HCPKG=${HC/ghc/ghc-pkg}; CABAL=$HOME/.ghc-install/ghc/bin/cabal; fi"         -- HCNUMVER, numeric HC version, e.g. ghc 7.8.4 is 70804 and 7.10.3 is 71003         sh "HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\\d+)\\.(\\d+)\\.(\\d+)(\\.(\\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')"         sh "echo $HCNUMVER"         -- verbose in .cabal/config is not respected         -- https://github.com/haskell/cabal/issues/5956-        sh "CABAL=\"$CABAL -vnormal+nowrap+markoutput\""--        -- Color cabal output-        sh' [2039] "set -o pipefail" -- SC2039: In POSIX sh, set option pipefail is undefined. Travis is bash, so it's fine :)-        when cfgColor $ do-            cat' ".colorful.awk"-                [ "function blue(s) { printf \"\\033[0;34m\" s \"\\033[0m \" }"-                , "BEGIN { state = \"output\"; }"-                , "/^-----BEGIN CABAL OUTPUT-----$/ { state = \"cabal\" }"-                , "/^-----END CABAL OUTPUT-----$/ { state = \"output\" }"-                , "!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {"-                , "  if (state == \"cabal\") {"-                , "    print blue($0)"-                , "  } else {"-                , "    print $0"-                , "  }"-                , "}"-                ]-            sh "cat .colorful.awk"-            sh $ unlines-                [ "color_cabal_output () {"-                , "  awk -f $TOP/.colorful.awk"-                , "}"-                ]-            sh "echo text | color_cabal_output"+        sh "CABAL=\"$CABAL -vnormal+nowrap\"" -    -- in install step we install tools and dependencies-    install <- runSh $ do-        sh "${CABAL} --version"-        sh "echo \"$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]\""-        when anyGHCJS $ do-            sh "node --version"-            sh "echo $GHCJS"+        -- SC2039: In POSIX sh, set option pipefail is undefined. Travis is bash, so it's fine :)+        sh' [2039] "set -o pipefail"          sh "TEST=--enable-tests"         shForJob (invertCompilerRange $ Range cfgTests) "TEST=--disable-tests"@@ -199,14 +175,6 @@             , "  prefix: $CABALHOME"             , "repository hackage.haskell.org"             , "  url: http://hackage.haskell.org/"-            , "  secure: True"-            , "  key-threshold: 3"-            , "  root-keys:"-            , "    fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0"-            , "    1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42"-            , "    2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3"-            , "    0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d"-            , "    51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921"             ]          -- Add head.hackage repository to ~/.cabal/config@@ -227,6 +195,14 @@             [ "fi"             ] +    -- in install step we install tools and dependencies+    install <- runSh $ do+        sh "${CABAL} --version"+        sh "echo \"$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]\""+        when anyGHCJS $ do+            sh "node --version"+            sh "echo $GHCJS"+         -- Cabal jobs         for_ (cfgJobs >>= cabalJobs) $ \n ->             sh $ "echo 'jobs: " ++ show n ++ "' >> $CABALHOME/config"@@ -239,6 +215,7 @@             , "  ghc-options: $GHCJOBS +RTS -M6G -RTS"             ] +        -- output config for debugging purposes         sh "cat $CABALHOME/config"          -- remove project own cabal.project files@@ -253,7 +230,7 @@                 | otherwise = " --constraint='doctest " ++ C.prettyShow (cfgDoctestVersion cfgDoctest) ++ "'"         when doctestEnabled $             shForJob (Range (cfgDoctestEnabled cfgDoctest) /\ doctestJobVersionRange) $-                cabalInTmp $ "v2-install $WITHCOMPILER -j2 doctest" ++ doctestVersionConstraint+                cabal $ "v2-install $WITHCOMPILER --ignore-project -j2 doctest" ++ doctestVersionConstraint          -- Install hlint         let hlintVersionConstraint@@ -276,15 +253,15 @@                 forHLint "mkdir -p $CABALHOME/bin && ln -sf \"$HOME/.hlint/hlint-$HLINTVER/hlint\" $CABALHOME/bin/hlint"                 forHLint "hlint --version" -            else forHLint $ cabalInTmp $ "v2-install $WITHCOMPILER -j2 hlint" ++ hlintVersionConstraint+            else forHLint $ cabal $ "v2-install $WITHCOMPILER --ignore-project -j2 hlint" ++ hlintVersionConstraint          -- Install cabal-plan (for ghcjs tests)         when (anyGHCJS && cfgGhcjsTests) $ do-            shForJob RangeGHCJS $ cabalInTmp "v2-install -w ghc-8.4.4 cabal-plan --constraint='cabal-plan ^>=0.6.0.0' --constraint='cabal-plan +exe'"+            shForJob RangeGHCJS $ cabal "v2-install -w ghc-8.4.4 --ignore-project cabal-plan --constraint='cabal-plan ^>=0.6.0.0' --constraint='cabal-plan +exe'"          -- Install happy         when anyGHCJS $ for_ cfgGhcjsTools $ \t ->-            shForJob RangeGHCJS $ cabalInTmp $ "v2-install -w ghc-8.4.4 " ++ C.prettyShow t+            shForJob RangeGHCJS $ cabal $ "v2-install -w ghc-8.4.4 --ignore-project " ++ C.prettyShow t          -- create cabal.project file         generateCabalProject False@@ -301,10 +278,10 @@         -- Install dependencies         when cfgInstallDeps $ do             -- install dependencies-            sh $ cabal "v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all"+            sh $ cabalTW "v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all"              -- install dependencies for no-test-no-bench-            shForJob (Range cfgNoTestsNoBench) $ cabal "v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --dep -j2 all"+            shForJob (Range cfgNoTestsNoBench) $ cabalTW "v2-build $WITHCOMPILER --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.@@ -365,17 +342,26 @@         -- doctest         when doctestEnabled $ foldedSh FoldDoctest "Doctest..." cfgFolds $ do             let doctestOptions = unwords $ cfgDoctestOptions cfgDoctest-            unless (null $ cfgDoctestFilterPkgs cfgDoctest) $ do-                let filterPkgs = intercalate "|" $ map C.unPackageName $ cfgDoctestFilterPkgs cfgDoctest+            unless (null $ cfgDoctestFilterEnvPkgs cfgDoctest) $ do+                -- cabal-install mangles unit ids on the OSX,+                -- removing the vowels to make filepaths shorter+                let manglePkgNames :: String -> [String]+                    manglePkgNames n+                        | null cfgOsx = [n]+                        | otherwise   = [n, filter notVowel n]+                      where+                        notVowel c = notElem c ("aeiou" :: String)+                let filterPkgs = intercalate "|" $ concatMap (manglePkgNames . C.unPackageName) $ cfgDoctestFilterEnvPkgs cfgDoctest                 sh $ "perl -i -e 'while (<ARGV>) { print unless /package-id\\s+(" ++ filterPkgs ++ ")-\\d+(\\.\\d+)*/; }' .ghc.environment.*"-            for_ pkgs $ \Pkg{pkgName,pkgGpd,pkgJobs} -> do-                for_ (doctestArgs pkgGpd) $ \args -> do-                    let args' = unwords args-                    let vr = Range (cfgDoctestEnabled cfgDoctest)-                          /\ doctestJobVersionRange-                          /\ RangePoints pkgJobs-                    unless (null args) $ shForJob  vr $-                        "(cd " ++ pkgNameDirVariable pkgName ++ " && doctest " ++ doctestOptions ++ " " ++ args' ++ ")"+            for_ pkgs $ \Pkg{pkgName,pkgGpd,pkgJobs} ->+                when (C.mkPackageName pkgName `notElem` cfgDoctestFilterSrcPkgs cfgDoctest) $ do+                    for_ (doctestArgs pkgGpd) $ \args -> do+                        let args' = unwords args+                        let vr = Range (cfgDoctestEnabled cfgDoctest)+                              /\ doctestJobVersionRange+                              /\ RangePoints pkgJobs+                        unless (null args) $ shForJob  vr $+                            "(cd " ++ pkgNameDirVariable pkgName ++ " && doctest " ++ doctestOptions ++ " " ++ args' ++ ")"          -- hlint         when (cfgHLintEnabled cfgHLint) $ foldedSh FoldHLint "HLint.." cfgFolds $ do@@ -434,6 +420,15 @@                     when (hasLibrary && csHaddock cs) $                         shForCs $ cabal $ "v2-haddock $WITHCOMPILER " ++ withHaddock ++ " " ++ allFlags ++ " all" +        -- At the end, we allow some raw travis scripts+        unless (null cfgRawTravis) $ do+            comment "Raw travis commands"+            traverse_ sh+                [ l+                | l <- lines cfgRawTravis+                , not (null l)+                ]+     -- assemble travis configuration     return Travis         { travisLanguage      = "c"@@ -459,9 +454,10 @@                 { tiChannels = cfgIrcChannels                 , tiSkipJoin = True                 , tiTemplate =-                    [ "\"\\x0313" ++ projectName ++ "\\x03/\\x0306%{branch}\\x03 \\x0314%{commit}\\x03 %{build_url} %{message}\""+                    [ "\x0313" ++ projectName ++ "\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"                     ]                 }+            , tnEmail = cfgEmailNotifications             }         , travisServices      = buildList $ do             when cfgPostgres $ item "postgresql"@@ -482,12 +478,10 @@                             hvrppa = TravisAptSourceLine ("deb http://ppa.launchpad.net/hvr/ghc/ubuntu " ++ C.prettyShow cfgUbuntu ++ " main") (Just "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286")                          let ghcjsAptSources :: [TravisAptSource]-                            ghcjsAptSources = +                            ghcjsAptSources | not (isGHCJS gv) = []+                                            | otherwise =                                 [ TravisAptSourceLine ("deb http://ppa.launchpad.net/hvr/ghcjs/ubuntu " ++ C.prettyShow cfgUbuntu ++ " main") Nothing-                                | isGHCJS gv-                                ] ++-                                [ TravisAptSourceLine ("deb https://deb.nodesource.com/node_8.x " ++ C.prettyShow cfgUbuntu ++ " main") (Just "https://deb.nodesource.com/gpgkey/nodesource.gpg.key")-                                | isGHCJS gv && cfgUbuntu <= Xenial+                                , TravisAptSourceLine ("deb https://deb.nodesource.com/node_10.x " ++ C.prettyShow cfgUbuntu ++ " main") (Just "https://deb.nodesource.com/gpgkey/nodesource.gpg.key")                                 ]                          let ghcjsPackages :: [String]@@ -581,13 +575,10 @@     headGhcVers = S.filter (previewGHC cfgHeadHackage) versions      cabal :: String -> String-    cabal cmd | cfgColor  = cabalCmd ++ " | color_cabal_output"-              | otherwise = cabalCmd-      where-        cabalCmd = "${CABAL} " ++ cmd+    cabal cmd = "${CABAL} " ++ cmd -    cabalInTmp :: String -> String-    cabalInTmp cmd = "(cd /tmp && " ++ cabal cmd ++ ")"+    cabalTW :: String -> String+    cabalTW cmd = "travis_wait 40 ${CABAL} " ++ cmd      forJob :: CompilerRange -> String -> Maybe String     forJob vr cmd@@ -615,30 +606,8 @@         -- copy files from original cabal.project         case cfgCopyFields of             CopyFieldsNone -> pure ()-            CopyFieldsAll  -> traverse_ item (prjOrigFields prj)-            CopyFieldsSome -> do-                for_ (prjConstraints prj) $ \xs -> do-                    let s = concat (lines xs)-                    item $ C.PrettyField () "constraints" $ PP.text s--                for_ (prjAllowNewer prj) $ \xs -> do-                    let s = concat (lines xs)-                    item $ C.PrettyField () "allow-newer" $ PP.text s--                when (prjReorderGoals prj) $-                    item $ C.PrettyField () "reorder-goals" $ PP.text "True"--                for_ (prjMaxBackjumps prj) $ \bj ->-                    item $ C.PrettyField () "max-backjumps" $ PP.text $ show bj--                case prjOptimization prj of-                    OptimizationOn      -> return ()-                    OptimizationOff     -> item $ C.PrettyField () "optimization" $ PP.text "False"-                    OptimizationLevel l -> item $ C.PrettyField () "optimization" $ PP.text $ show l--                for_ (prjSourceRepos prj) $ \repo ->-                    item $ C.PrettySection () "source-repository-package" [] $-                        C.prettyFieldGrammar C.cabalSpecLatest sourceRepositoryPackageGrammar (srpHoist toList repo)+            CopyFieldsSome -> copyFieldsSome+            CopyFieldsAll  -> copyFieldsSome *> traverse_ item (prjOtherFields prj)          -- local ghc-options         unless (null cfgLocalGhcOptions) $ for_ pkgs $ \Pkg{pkgName} -> do@@ -649,6 +618,31 @@         -- raw-project is after local-ghc-options so we can override per package.         traverse_ item cfgRawProject +    copyFieldsSome :: ListBuilder (C.PrettyField ()) ()+    copyFieldsSome = do+        for_ (prjConstraints prj) $ \xs -> do+            let s = concat (lines xs)+            item $ C.PrettyField () "constraints" $ PP.text s++        for_ (prjAllowNewer prj) $ \xs -> do+            let s = concat (lines xs)+            item $ C.PrettyField () "allow-newer" $ PP.text s++        when (prjReorderGoals prj) $+            item $ C.PrettyField () "reorder-goals" $ PP.text "True"++        for_ (prjMaxBackjumps prj) $ \bj ->+            item $ C.PrettyField () "max-backjumps" $ PP.text $ show bj++        case prjOptimization prj of+            OptimizationOn      -> return ()+            OptimizationOff     -> item $ C.PrettyField () "optimization" $ PP.text "False"+            OptimizationLevel l -> item $ C.PrettyField () "optimization" $ PP.text $ show l++        for_ (prjSourceRepos prj) $ \repo ->+            item $ C.PrettySection () "source-repository-package" [] $+                C.prettyFieldGrammar C.cabalSpecLatest sourceRepositoryPackageGrammar (srpHoist toList repo)+     generateCabalProject :: Bool -> ShM ()     generateCabalProject dist = do         comment "Generate cabal.project"@@ -664,6 +658,17 @@                 "echo \"packages: " ++ p ++ "\" >> cabal.project"             ] +        case cfgErrorMissingMethods of+            PackageScopeNone  -> pure ()+            PackageScopeLocal -> for_ pkgs $ \Pkg{pkgName,pkgJobs} -> do+                shForJob (Range (C.orLaterVersion (C.mkVersion [8,2])) /\ RangePoints pkgJobs) $+                    "echo 'package " ++ pkgName ++ "' >> cabal.project"+                shForJob (Range (C.orLaterVersion (C.mkVersion [8,2])) /\ RangePoints pkgJobs) $+                    "echo '  ghc-options: -Werror=missing-methods' >> cabal.project"+            PackageScopeAll   -> do+                sh "echo 'package *' >> cabal.project"+                sh "echo '  ghc-options: -Werror=missing-methods' >> cabal.project"+         cat "cabal.project" $ lines $ C.showFields' (const []) 2 $ generateCabalProjectFields dist          -- also write cabal.project.local file with@@ -741,9 +746,3 @@  cat :: FilePath -> [String] -> ShM () cat fp contents = sh $ catCmd Double fp contents--cat' :: FilePath -> [String] -> ShM ()-cat' fp contents = sh' [2016, 2129] $ catCmd Single fp contents--- SC2129: Consider using { cmd1; cmd2; } >> file instead of individual redirects--- SC2016: Expressions don't expand in single quotes--- that's the point!
src/HaskellCI/Travis/Yaml.hs view
@@ -50,8 +50,9 @@     }   deriving Show -newtype TravisNotifications = TravisNotifications-    { tnIRC :: Maybe TravisIRC+data TravisNotifications = TravisNotifications+    { tnIRC   :: Maybe TravisIRC+    , tnEmail :: Bool     }   deriving Show @@ -181,8 +182,9 @@         ]  instance ToYaml TravisNotifications where-    toYaml TravisNotifications {..} = ykeyValuesFilt [] $ buildList $+    toYaml TravisNotifications {..} = ykeyValuesFilt [] $ buildList $ do         for_ tnIRC $ \y -> item $ "irc" ~> toYaml y+        unless tnEmail $ item $ "email" ~> toYaml False  instance ToYaml TravisIRC where     toYaml TravisIRC {..} = ykeyValuesFilt []
src/HaskellCI/YamlSyntax.hs view
@@ -1,8 +1,8 @@ {-# LANGUAGE DeriveFoldable      #-} {-# LANGUAGE DeriveFunctor       #-} {-# LANGUAGE DeriveTraversable   #-}+{-# LANGUAGE GADTs               #-} {-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE GADTs #-} module HaskellCI.YamlSyntax (     Yaml (..),     reann,@@ -10,13 +10,12 @@     prettyYaml,     ) where +import HaskellCI.Prelude import Prelude ()-import Prelude.Compat -import Data.Bifunctor     (first)-import Data.List.NonEmpty (NonEmpty (..))+import Data.Bits          (shiftR, (.&.))+import Data.Char          (isControl, isPrint, ord) import Data.Monoid        (Endo (..))-import Data.String        (IsString (..))  import qualified Data.Aeson              as Aeson import qualified Data.List.NonEmpty      as NE@@ -26,6 +25,7 @@ import qualified Data.Text.Lazy.Encoding as TLE import qualified Data.YAML               as YAML +import Numeric (showHex)  -- $setup -- >>> :set -XOverloadedStrings@@ -137,13 +137,13 @@ -- # top -- nested: --   # comment1---   # +--   # --   # comment2---   # +--   # --   # comment3 --   foo: bar --   # comment4---   # +--   # --   # comment5 --   help: welcome --@@ -183,12 +183,12 @@     comment :: ann -> [String]     comment = concatMap lines' . comment' where         lines' "" = [""]-        lines' s  = lines s +        lines' s  = lines s      go :: Yaml ann -> NonEmpty (Int, Line)     go (YString ann s) = case literal s of         Just ss -> pure (0, Line (comment ann) ss)-        Nothing -> pure (0, Line (comment ann) (shows s))+        Nothing -> pure (0, Line (comment ann) $ encodeYAMLString s)      go (YBool ann b) =         pure (0, Line (comment ann) (showString $ if b then "true" else "false"))@@ -206,24 +206,24 @@                 (0, Line (comment ann +++ cs) $ showString "- " . z) :|                 fmap (first succ) zs -            Left (cs, ls) -> +            Left (cs, ls) ->                 (0, Line (comment ann +++ cs) $ showString "- |") :|                 [ (1, Line [] (showString l))                 | l <- ls-                ]         +                ]          yss :: [(Int, Line)]         yss = do             e <- goSub <$> xs-            case e of +            case e of                 Right ((_, Line cs z) :| zs) ->                     (0, Line cs (showString "- " . z)) :                     fmap (first succ) zs-                Left (cs, ls) -> +                Left (cs, ls) ->                     (0, Line cs $ showString "- |") :                     [ (1, Line [] (showString l))                     | l <- ls-                    ]  +                    ]      go (YKeyValues ann [])     = pure (0, Line (comment ann) (showString "{}"))     go (YKeyValues ann (x:xs)) = kv (comment ann) x <+> (xs >>= NE.toList . kv [])@@ -236,14 +236,14 @@                     showString k . showString ": " . s) :|                     []             -- multiline non escaped-            Left (cs', ls) -> +            Left (cs', ls) ->                 (0, Line (cs +++ comment ann' +++ cs') $                     showString k . showString ": |") :|                     [ (1, Line [] (showString l))                     | l <- ls                     ]             -- multiline-            Right vs -> +            Right vs ->                 (0, Line (cs +++ comment ann') $ showString k . showChar ':') :|                 NE.toList (fmap (first succ) vs) @@ -258,11 +258,11 @@         Just ss -> Right (pure (0, Line (comment ann) ss))         Nothing -> case multiline s of             Just ll -> Left (comment ann, ll)-            Nothing -> Right (pure (0, Line (comment ann) (shows s)))+            Nothing -> Right (pure (0, Line (comment ann) $ encodeYAMLString s))     goSub y = Right (go y)-        +     -- given "foo" can it be encode without quotes:-    -- +    --     --    foo     --     literal :: String -> Maybe ShowS@@ -272,7 +272,7 @@       where         t  = T.pack s         bs = TE.encodeUtf8 t-        +     -- when not top level, we can encode "foo\nbar\n" as     --     --     - |@@ -315,3 +315,52 @@  -- a 'Line' is comments before in and actual text after! data Line = Line [String] ShowS++-- | Encode string to our best knowledge YAML string should be encoded.+-- Note: different than JSON+--+-- >>> putStrLn $ encodeYAMLString "\NULabcd\n" ""+-- "\x00abcd\n"+--+encodeYAMLString :: String -> ShowS+encodeYAMLString s+    = showChar '"'+    . appEndo (foldMap (Endo . f) s)+    . showChar '"'+  where+    f :: Char -> ShowS+    f '\\' = showString "\\\\"+    f '\n' = showString "\\n"+    f '"'  = showString "\\\""+    f c | isControl c || ord c >= 128 || not (isPrint c)+        = hexChar c+        | otherwise+        = showChar c++-- | Produce a hex encoding of a character.+-- Uses two hex chars if they are enough, otherwise four.+-- For out of BMP characters, do nothing.+--+-- >>> putStrLn $ hexChar ' ' ""+-- \x20+--+-- >>> putStrLn $ hexChar '\1234' ""+-- \x04d2+--+hexChar :: Char -> ShowS+hexChar c+    | n > 65536 = showChar c+    | n > 256   = showString "\\x"+                . showHexDigit (shiftR n 16 .&. 0xf)+                . showHexDigit (shiftR n  8 .&. 0xf)+                . showHexDigit (shiftR n  4 .&. 0xf)+                . showHexDigit (shiftR n  0 .&. 0xf)+    | otherwise = showString "\\x"+                . showHexDigit (shiftR n  4 .&. 0xf)+                . showHexDigit (shiftR n  0 .&. 0xf)+  where+    n :: Int+    n = ord c++    showHexDigit :: Int -> ShowS+    showHexDigit = showHex