packages feed

iridium 0.1.5.5 → 0.1.5.6

raw patch · 7 files changed

+70/−67 lines, 7 filesdep ~basedep ~processdep ~transformersPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base, process, transformers, turtle

API changes (from Hackage documentation)

- Development.Iridium.ExternalProgWrappers: readShellProcessWithExitCode :: String -> [String] -> IO (ExitCode, String, String)
- Development.Iridium: askGlobalConfirmation :: (MonadIO m, MonadPlus m, MonadMultiReader Config m) => Bool -> m ()
+ Development.Iridium: askGlobalConfirmation :: (MonadIO m, MonadPlus m) => Bool -> m ()
- Development.Iridium: displaySummary :: (MonadIO m, MonadPlus m, MonadMultiState LogState m, MonadMultiState CheckState m, MonadMultiReader Config m, MonadMultiReader Infos m) => m ()
+ Development.Iridium: displaySummary :: (MonadIO m, MonadMultiState LogState m, MonadMultiState CheckState m, MonadMultiReader Config m, MonadMultiReader Infos m) => m ()
- Development.Iridium: runChecks :: (MonadIO m0, MonadPlus m0, MonadBaseControl IO m0, ContainsType LogState s, ContainsType CheckState s, ContainsType Config r, ContainsType Infos r) => MultiRWST r w s m0 ()
+ Development.Iridium: runChecks :: (MonadIO m0, MonadPlus m0, ContainsType LogState s, ContainsType CheckState s, ContainsType Config r, ContainsType Infos r) => MultiRWST r w s m0 ()
- Development.Iridium.Checks: lowerBounds :: (MonadIO m, MonadMultiState LogState m, MonadMultiState CheckState m, MonadMultiReader Config m, MonadMultiReader Infos m) => m ()
+ Development.Iridium.Checks: lowerBounds :: (MonadIO m, MonadMultiState LogState m, MonadMultiState CheckState m, MonadMultiReader Infos m) => m ()
- Development.Iridium.Checks: upperBounds :: (MonadIO m, MonadMultiState LogState m, MonadMultiState CheckState m, MonadMultiReader Config m, MonadMultiReader Infos m) => m ()
+ Development.Iridium.Checks: upperBounds :: (MonadIO m, MonadMultiState LogState m, MonadMultiState CheckState m, MonadMultiReader Infos m) => m ()
- Development.Iridium.Checks: upperBoundsStackage :: (MonadIO m, MonadPlus m, MonadBaseControl IO m, MonadMultiState LogState m, MonadMultiState CheckState m, MonadMultiReader Infos m, MonadMultiReader Config m) => m ()
+ Development.Iridium.Checks: upperBoundsStackage :: (MonadIO m, MonadPlus m, MonadMultiState LogState m, MonadMultiState CheckState m, MonadMultiReader Infos m, MonadMultiReader Config m) => m ()
- Development.Iridium.Hackage: uploadDocs :: (MonadIO m, MonadPlus m, MonadMultiReader Config m, MonadMultiReader Infos m, MonadMultiState LogState m) => m ()
+ Development.Iridium.Hackage: uploadDocs :: (MonadIO m, MonadPlus m, MonadMultiReader Config m, MonadMultiState LogState m) => m ()

Files

ChangeLog.md view
@@ -1,5 +1,10 @@ # Revision history for iridium +## 0.1.5.6  -- 2016-09-28++  * Only internal changes (support ghc-8, fix support for ghc-7.8;+    adapt/switch to turtle-1.3.0)+ ## 0.1.5.5  -- 2016-09-28    * Slight improvements around the handling of testing against multiple
iridium.cabal view
@@ -1,6 +1,6 @@ name:                iridium-version:             0.1.5.5-synopsis:            Automated Local Testing and Package Uploading+version:             0.1.5.6+synopsis:            Automated Local Cabal Package Testing and Uploading license:             BSD3 license-file:        LICENSE author:              Lennart Spitzner@@ -25,6 +25,8 @@   * Checking that the upper bounds of dependencies     are up-to-date by making use of stackage snapshots.   .+  * [git] Pushing and tagging the version to the commit.+  .   * Uploading of both the package itself and the documentation.   .   The program is configurable using a per-project .yaml file.@@ -69,13 +71,13 @@   -- other-modules:   -- other-extensions:   build-depends:-    { base                   >=4.7      && <4.9+    { base                   >=4.7      && <4.10     , lifted-base            >=0.2.3.6  && <0.3     , yaml                   >=0.8.16   && <0.9-    , turtle                 >=1.2.5    && <1.3+    , turtle                 >=1.3.0    && <1.4     , text                   >=1.2.2.0  && <1.3     , containers             >=0.5.5.1  && <0.6-    , transformers           >=0.3.0.0  && <0.5+    , transformers           >=0.3.0.0  && <0.6     , system-filepath        >=0.4.13.4 && <0.5     , unordered-containers   >=0.2.5.1  && <0.3     , multistate             >=0.7.0.0  && <0.8@@ -86,7 +88,7 @@     , bytestring             >=0.10.4.0 && <0.11     , tagged                 >=0.8.3    && <0.9     , extra                  >=1.4.3    && <1.5-    , process                >=1.2.0.0  && < 1.5+    , process                >=1.2.3.0  && <1.5     , vector                 >=0.11.0.0 && <0.12     , ansi-terminal          >=0.6.2.3  && <0.7     , transformers-base      >=0.4.4    && <0.5@@ -119,9 +121,9 @@   }   build-depends:     { iridium-    , base                   >=4.7      && <4.9+    , base                   >=4.7      && <4.10     , yaml                   >=0.8.16   && <0.9-    , transformers           >=0.3.0.0  && <0.5+    , transformers           >=0.3.0.0  && <0.6     , unordered-containers   >=0.2.5.1  && <0.3     , multistate             >=0.7.0.0  && <0.8     , extra                  >=1.4.3    && <1.5
src/Development/Iridium.hs view
@@ -92,7 +92,7 @@           pushLog LogLevelError "Error: Found more than one cabal package file!"           mzero     pushLog LogLevelInfo $ "Reading cabal package description " ++ encodeString packageFile-    content <- Text.unlines `liftM` Turtle.fold (Turtle.input packageFile) Foldl.list+    content <- Turtle.linesToText `liftM` Turtle.fold (Turtle.input packageFile) Foldl.list     -- pushLog LogLevelDebug $ Text.unpack content     let parseResult = parsePackageDescription $ Text.unpack content     case parseResult of@@ -130,7 +130,6 @@ runChecks   :: ( MonadIO m0      , MonadPlus m0-     , MonadBaseControl IO m0      , ContainsType LogState s      , ContainsType CheckState s      , ContainsType Config r@@ -155,7 +154,6 @@  displaySummary   :: ( MonadIO m-     , MonadPlus m      , MonadMultiState LogState m      , MonadMultiState CheckState m      , MonadMultiReader Config m@@ -199,7 +197,6 @@ askGlobalConfirmation   :: ( MonadIO m      , MonadPlus m-     , MonadMultiReader Config m      )   => Bool   -> m ()
src/Development/Iridium/Checks.hs view
@@ -124,7 +124,7 @@       changelogContentLines <- Turtle.fold (Turtle.input path) Foldl.list       currentVersionStr <- liftM showVersion askPackageVersion       if any (Text.pack currentVersionStr `Text.isInfixOf`)-             changelogContentLines+             (Turtle.lineToText `fmap` changelogContentLines)         then return True         else do           pushLog LogLevelError $ "changelog does not contain " ++ currentVersionStr@@ -134,7 +134,6 @@   :: ( MonadIO m      , MonadMultiState LogState m      , MonadMultiState CheckState m-     , MonadMultiReader Config m      , MonadMultiReader Infos m      )   => m ()@@ -167,7 +166,6 @@   :: ( MonadIO m      , MonadMultiState LogState m      , MonadMultiState CheckState m-     , MonadMultiReader Config m      , MonadMultiReader Infos m      )   => m ()@@ -382,7 +380,6 @@   :: forall m    . ( MonadIO m      , MonadPlus m-     , MonadBaseControl IO m      , MonadMultiState LogState m      , MonadMultiState CheckState m      , MonadMultiReader Infos m@@ -457,9 +454,7 @@   fetchCabalConfig     :: forall m0      . ( MonadIO m0-       , MonadPlus m0        , MonadMultiState LogState m0-       , MonadMultiReader Infos m0        )     => String     -> m0 ByteString
src/Development/Iridium/Config.hs view
@@ -135,10 +135,12 @@       = error "Null"  determineConfFromStuff-  :: ( MonadIO m-     , MonadMultiState LogState m-     )-  => m Config+  :: -- ( MonadIO m+     -- , MonadMultiState LogState m+     -- )+     Monad m+  => +     m Config determineConfFromStuff = do   return $ Yaml.Object $ HM.empty -- TODO 
src/Development/Iridium/ExternalProgWrappers.hs view
@@ -8,7 +8,6 @@   , runCommandStdOut   , observeCreateProcessWithExitCode   , getExternalProgramVersion-  , readShellProcessWithExitCode   , runCommandSuccessCabal   , runCommandSuccessHLint   )@@ -51,11 +50,9 @@ import qualified System.Process as Process import qualified Data.Char as Char import           Text.Read ( readMaybe )+import           Data.Text ( Text ) --- well, no Turtle, apparently.--- no way to retrieve stdout, stderr and exitcode.--- the most generic case, not supported? psshhh.-import           System.Process hiding ( cwd )+-- import           System.Process hiding ( cwd )  import           Data.Maybe ( maybeToList ) @@ -70,14 +67,14 @@   -readShellProcessWithExitCode-  :: String-  -> [String]-  -> IO (ExitCode, String, String)-readShellProcessWithExitCode c ps =-  readCreateProcessWithExitCode-    (shell $ c ++ " " ++ intercalate " " (fmap show ps))-    ""+-- readShellProcessWithExitCode+--   :: String+--   -> [String]+--   -> IO (ExitCode, String, String)+-- readShellProcessWithExitCode c ps =+--   readCreateProcessWithExitCode+--     (shell $ c ++ " " ++ intercalate " " (fmap show ps))+--     ""  runCommandSuccess   :: ( MonadIO m@@ -107,10 +104,11 @@             replaceStackTop l        liftIO $ observeCreateProcessWithExitCode-        (shell $ c ++ " " ++ intercalate " " (fmap show ps))+        (Process.shell $ c ++ " " ++ intercalate " " (fmap show ps))         ""         handleLine         handleLine+          case exitCode of       ExitSuccess -> do@@ -150,48 +148,53 @@   runCommandSuccess hlintInvoc ps  runCommandStdOut-  :: ( MonadIO m-     , MonadPlus m-     , MonadMultiState LogState m-     )+  :: (MonadIO m, MonadPlus m, MonadMultiState LogState m)   => String   -> [String]   -> m String runCommandStdOut c ps = do   let infoStr = c ++ " " ++ intercalate " " ps-  (exitCode, stdOut, _stdErr) <- liftIO $-    readShellProcessWithExitCode c ps+  (exitCode, stdOut, _stdErr) <- liftIO $ Turtle.procStrictWithErr+    (Text.pack c)+    (Text.pack `fmap` ps)+    Control.Applicative.empty   case exitCode of     ExitFailure _ -> do       pushLog LogLevelError $ "Error running command `" ++ infoStr ++ "`."       mzero-    ExitSuccess -> do-      return stdOut+    ExitSuccess   -> do+      return (Text.unpack stdOut)  getExternalProgramVersion-  :: ( MonadIO m-     , MonadPlus m-     , MonadMultiState LogState m-     )-  => String-  -> m [Int]+  :: (MonadIO m, MonadPlus m, MonadMultiState LogState m) => String -> m [Int] getExternalProgramVersion prog = do   let err = do-        pushLog LogLevelError $ "Could not determine version of external program " ++ prog+        pushLog LogLevelError+          $  "Could not determine version of external program "+          ++ prog         mzero-  (exitCode, stdOut, _stdErr) <- liftIO $-    readShellProcessWithExitCode prog ["--version"]+  (exitCode, stdOut, _stdErr) <- liftIO $ Turtle.procStrictWithErr+    (Text.pack prog)+    [Text.pack "--version"]+    Control.Applicative.empty   case exitCode of-    ExitSuccess -> do-      case lines stdOut of-        (line:_) -> case takeWhile (`elem` ".0123456789")-                       $ dropWhile (not . Char.isNumber) line of-          "" -> err-          s -> do-            pushLog LogLevelInfoVerbose $ "detected " ++ prog ++ " version " ++ s-            case mapM readMaybe $ Split.splitOn "." s of-              Just vs -> return vs-              Nothing -> err+    ExitSuccess   -> do+      case lines (Text.unpack stdOut) of+        (line:_) ->+          case+              takeWhile (`elem`".0123456789")+                $ dropWhile (not . Char.isNumber) line+            of+              "" -> err+              s  -> do+                pushLog LogLevelInfoVerbose+                  $  "detected "+                  ++ prog+                  ++ " version "+                  ++ s+                case mapM readMaybe $ Split.splitOn "." s of+                  Just vs -> return vs+                  Nothing -> err         _ -> err     ExitFailure _ -> err @@ -232,7 +235,7 @@           -- hClose errh          -- wait on the process-        ex <- waitForProcess ph+        ex <- Process.waitForProcess ph          return ex @@ -264,7 +267,7 @@                -> IO () cleanupProcess (mb_stdin, mb_stdout, mb_stderr,                 ph@(ProcessHandle _ delegating_ctlc)) = do-    terminateProcess ph+    Process.terminateProcess ph     -- Note, it's important that other threads that might be reading/writing     -- these handles also get killed off, since otherwise they might be holding     -- the handle lock and prevent us from closing, leading to deadlock.@@ -281,7 +284,7 @@     -- waitForProcess (which would otherwise end the Ctl-C delegation itself).     when delegating_ctlc       stopDelegateControlC-    _ <- forkIO (waitForProcess (resetCtlcDelegation ph) >> return ())+    _ <- forkIO (Process.waitForProcess (resetCtlcDelegation ph) >> return ())     return ()   where     resetCtlcDelegation (ProcessHandle m _) = ProcessHandle m False
src/Development/Iridium/Hackage.hs view
@@ -130,7 +130,6 @@    . ( MonadIO m      , MonadPlus m      , MonadMultiReader Config m-     , MonadMultiReader Infos m      , MonadMultiState LogState m      )   => m ()