From 937059a969e886b7290e2d099201d3f651df26e0 Mon Sep 17 00:00:00 2001 From: Luke Murphy Date: Fri, 3 Feb 2017 01:23:28 +0000 Subject: [PATCH] Add warning if Cabal mismatch detected. Closes #2928. --- src/Stack/Build/Installed.hs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Stack/Build/Installed.hs b/src/Stack/Build/Installed.hs index 747dd45e7d..7a54cb3a80 100644 --- a/src/Stack/Build/Installed.hs +++ b/src/Stack/Build/Installed.hs @@ -196,11 +196,13 @@ processLoadResult _ True (WrongVersion actual wanted, lh) ] return (Just lh) processLoadResult mdb _ (reason, lh) = do + let pkgName = packageNameText (fst (lhPair lh)) + warnIfCabalUpgradeNecessary pkgName reason $logDebug $ T.concat $ - [ "Ignoring package " - , packageNameText (fst (lhPair lh)) - ] ++ - maybe [] (\db -> [", from ", T.pack (show db), ","]) mdb ++ + ["Ignoring package ", pkgName] + ++ + maybe [] (\db -> [", from ", T.pack (show db), ","]) mdb + ++ [ " due to" , case reason of Allowed -> " the impossible?!?!" @@ -218,6 +220,14 @@ processLoadResult mdb _ (reason, lh) = do ] return Nothing +warnIfCabalUpgradeNecessary :: MonadLogger m => T.Text -> Allowed -> m () +warnIfCabalUpgradeNecessary pkg reason = do + let msg = "Cabal version mismatch detected. Try running 'stack setup --upgrade-cabal'" + case reason of + WrongVersion _ _ -> when (pkg == T.pack "Cabal") $ do + $logWarn msg + _ -> return () + data Allowed = Allowed | NeedsProfiling