packages feed

haskell-ci 0.10 → 0.10.1

raw patch · 9 files changed

+102/−30 lines, 9 filesdep ~ShellCheckdep ~aesondep ~tastyPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: ShellCheck, aeson, tasty

API changes (from Hackage documentation)

- HaskellCI.Cli: haskellCIVerStr :: String
+ HaskellCI.Cli: CommandVersionInfo :: Command
+ HaskellCI.VersionInfo: dependencies :: Map String String
+ HaskellCI.VersionInfo: haskellCIVerStr :: String

Files

CHANGELOG.md view
@@ -1,3 +1,9 @@+## 0.10.1 - 2020-05-16++- Add version-info command to help debugging issues with `haskell-ci`+- Bump default HLint version to 3.1+- Support ShellCheck with GHC-8.8 and GHC-8.10+ ## 0.10 - 2020-04-14  - Allow turning off email notifications
fixtures/cabal.project.copy-fields.all view
@@ -13,3 +13,8 @@   servant-js:servant allow-newer:   servant-js:servant-foreign++source-repository-package+  type: git+  location: https://github.com/haskell-servant/servant-auth+  tag: 4a134c3db79293d28f8b74a02863047e41fbaf56
fixtures/cabal.project.copy-fields.all.travis.yml view
@@ -163,12 +163,17 @@   - 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-    echo "allow-newer: servant-js:servant-foreign" >> cabal.project-    echo ""                                        >> cabal.project-    echo "package servant"                         >> cabal.project-    echo "  tests: False"                          >> 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 "source-repository-package"                                   >> cabal.project+    echo "  type:     git"                                             >> cabal.project+    echo "  location: https://github.com/haskell-servant/servant-auth" >> cabal.project+    echo "  tag:      4a134c3db79293d28f8b74a02863047e41fbaf56"        >> 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@@ -211,12 +216,17 @@   - 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-    echo "allow-newer: servant-js:servant-foreign" >> cabal.project-    echo ""                                        >> cabal.project-    echo "package servant"                         >> cabal.project-    echo "  tests: False"                          >> 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 "source-repository-package"                                   >> cabal.project+    echo "  type:     git"                                             >> cabal.project+    echo "  location: https://github.com/haskell-servant/servant-auth" >> cabal.project+    echo "  tag:      4a134c3db79293d28f8b74a02863047e41fbaf56"        >> 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
haskell-ci.cabal view
@@ -1,6 +1,6 @@ cabal-version:      2.2 name:               haskell-ci-version:            0.10+version:            0.10.1 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.@@ -114,6 +114,7 @@     HaskellCI.Tools     HaskellCI.Travis     HaskellCI.Travis.Yaml+    HaskellCI.VersionInfo     HaskellCI.YamlSyntax    default-extensions:@@ -137,7 +138,7 @@   build-depends:     , base          >=4.10     && <4.15     , bytestring    ^>=0.10.8.1-    , Cabal         ^>= 3.2+    , Cabal         ^>=3.2     , containers    ^>=0.5.7.1 || ^>=0.6.0.1     , deepseq       ^>=1.4.2.0     , directory     ^>=1.3.0.0@@ -167,8 +168,8 @@     , unordered-containers   ^>=0.2.10.0    -- ShellCheck. Would need newer transformers for older GHC-  if (flag(shellcheck) && impl(ghc >=7.10 && <8.7))-    build-depends: ShellCheck ==0.7.0+  if (flag(shellcheck) && impl(ghc >=7.10 && <8.11))+    build-depends: ShellCheck ==0.7.0 || ==0.7.1  executable haskell-ci   main-is:          Main.hs
src/HaskellCI.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE CPP                 #-} {-# LANGUAGE DataKinds           #-} {-# LANGUAGE MultiWayIf          #-} {-# LANGUAGE OverloadedStrings   #-}@@ -36,6 +35,7 @@ import Distribution.Version  import qualified Data.ByteString       as BS+import qualified Data.Map as Map import qualified Data.List.NonEmpty    as NE import qualified Data.Set              as S import qualified Data.Traversable      as T@@ -55,6 +55,7 @@ import HaskellCI.TestedWith import HaskellCI.Travis import HaskellCI.YamlSyntax+import HaskellCI.VersionInfo  ------------------------------------------------------------------------------- -- Main@@ -99,6 +100,10 @@                     (f, opts') <- parseTravis argv                     doTravis argv f (optionsWithOutputFile newFp <> opts' <> opts)         CommandTravis f -> doTravis argv0 f opts+        CommandVersionInfo -> do+            putStrLn $ "haskell-ci " ++ haskellCIVerStr ++ " with dependencies"+            ifor_ dependencies $ \p v -> do+                putStrLn $ "  " ++ p ++ "-" ++ v   where     findArgv :: [String] -> Maybe (Maybe Version, [String])     findArgv ls = do@@ -114,6 +119,9 @@     prettyMajVersion :: Version -> String     prettyMajVersion v = case ghcMajVer v of         (x, y) -> show x ++ "." ++ show y++    ifor_ :: Map.Map k v -> (k -> v -> IO a) -> IO ()+    ifor_ xs f = Map.foldlWithKey' (\m k a -> m >> void (f k a)) (return ()) xs  defaultTravisPath :: FilePath defaultTravisPath = ".travis.yml"
src/HaskellCI/Cli.hs view
@@ -12,10 +12,7 @@  import HaskellCI.Config import HaskellCI.OptparseGrammar--#ifndef CURRENT_PACKAGE_VERSION-#define CURRENT_PACKAGE_VERSION "???"-#endif+import HaskellCI.VersionInfo  ------------------------------------------------------------------------------- -- Command@@ -26,6 +23,7 @@     | CommandRegenerate     | CommandListGHC     | CommandDumpConfig+    | CommandVersionInfo   deriving Show  -------------------------------------------------------------------------------@@ -78,9 +76,6 @@     , O.help "Print version information"     ] -haskellCIVerStr :: String-haskellCIVerStr = CURRENT_PACKAGE_VERSION- cliParserInfo :: O.ParserInfo (Command, Options) cliParserInfo = O.info ((,) <$> cmdP <*> optionsP O.<**> versionP O.<**> O.helper) $ mconcat     [ O.fullDesc@@ -88,10 +83,11 @@     ]   where     cmdP = O.subparser (mconcat-        [ O.command "regenerate"  $ O.info (pure CommandRegenerate) $ O.progDesc "Regenerate .travis.yml"-        , O.command "travis"      $ O.info travisP                  $ O.progDesc "Generate travis-ci config"-        , O.command "list-ghc"    $ O.info (pure CommandListGHC)    $ O.progDesc "List known GHC versions"-        , O.command "dump-config" $ O.info (pure CommandDumpConfig) $ O.progDesc "Dump cabal.haskell-ci config with default values"+        [ O.command "regenerate"   $ O.info (pure CommandRegenerate)  $ O.progDesc "Regenerate .travis.yml"+        , O.command "travis"       $ O.info travisP                   $ O.progDesc "Generate travis-ci config"+        , O.command "list-ghc"     $ O.info (pure CommandListGHC)     $ O.progDesc "List known GHC versions"+        , O.command "dump-config"  $ O.info (pure CommandDumpConfig)  $ O.progDesc "Dump cabal.haskell-ci config with default values"+        , O.command "version-info" $ O.info (pure CommandVersionInfo) $ O.progDesc "Print versions info haskell-ci was compiled with"         ]) <|> travisP      travisP = CommandTravis
src/HaskellCI/Config/HLint.hs view
@@ -27,7 +27,7 @@   deriving (Show, Generic)  defaultHLintVersion :: VersionRange-defaultHLintVersion = withinVersion (mkVersion [2,2])+defaultHLintVersion = withinVersion (mkVersion [3,1])  ------------------------------------------------------------------------------- -- HLintJob
src/HaskellCI/Travis.hs view
@@ -54,6 +54,7 @@ import HaskellCI.ShVersionRange import HaskellCI.Tools import HaskellCI.Travis.Yaml+import HaskellCI.VersionInfo  ------------------------------------------------------------------------------- -- Travis header@@ -603,7 +604,7 @@         for_ uris $ \uri ->             item $ C.PrettyField () "packages" $ PP.text $ uriToString id uri "" -        -- copy files from original cabal.project+        -- copy fields from original cabal.project         case cfgCopyFields of             CopyFieldsNone -> pure ()             CopyFieldsSome -> copyFieldsSome
+ src/HaskellCI/VersionInfo.hs view
@@ -0,0 +1,45 @@+{-# LANGUAGE CPP #-}+module HaskellCI.VersionInfo (+    haskellCIVerStr,+    dependencies,+) where++import HaskellCI.Prelude++import Data.Map          (Map)++import qualified Data.Map as Map++haskellCIVerStr :: String+haskellCIVerStr = VERSION_haskell_ci++dependencies :: Map String String+dependencies = Map.fromList+    [ ("aeson",                  VERSION_aeson)+    , ("base",                   VERSION_base)+    , ("base-compat",            VERSION_base_compat)+    , ("bytestring",             VERSION_bytestring)+    , ("Cabal",                  VERSION_Cabal)+    , ("cabal-install-parsers",  VERSION_cabal_install_parsers)+    , ("containers",             VERSION_containers)+    , ("deepseq",                VERSION_deepseq)+    , ("directory",              VERSION_directory)+    , ("exceptions",             VERSION_exceptions)+    , ("filepath",               VERSION_filepath)+    , ("generic-lens-lite",      VERSION_generic_lens_lite)+    , ("HsYAML",                 VERSION_HsYAML)+    , ("lattices",               VERSION_lattices)+    , ("mtl",                    VERSION_mtl)+    , ("network-uri",            VERSION_network_uri)+    , ("optparse-applicative",   VERSION_optparse_applicative)+    , ("parsec",                 VERSION_parsec)+    , ("pretty",                 VERSION_pretty)+    , ("process",                VERSION_process)+#ifdef VERSION_ShellCheck+    , ("ShellCheck",             VERSION_ShellCheck)+#endif+    , ("temporary",              VERSION_temporary)+    , ("text",                   VERSION_text)+    , ("transformers",           VERSION_transformers)+    , ("unordered-containers",   VERSION_unordered_containers)+    ]