@@ -20,7 +20,6 @@ import Distribution.Types.VersionRange (withinRange, VersionRange)
20
20
import Pantry
21
21
import Path.IO (resolveFile' )
22
22
import RIO hiding (display )
23
- import qualified RIO
24
23
import RIO.List (find , partition )
25
24
import qualified RIO.Map as Map
26
25
import RIO.PrettyPrint
@@ -160,13 +159,27 @@ checkDependencyGraph constraints snapshot = do
160
159
<> Map. map (, [] ) ghcBootPackages
161
160
return $ Map. mapWithKey (validateDeps constraints depTree cabalVersion) pkgInfos
162
161
let (rangeErrors, otherErrors) = splitErrors pkgErrors
163
- unless (Map. null rangeErrors && Map. null otherErrors) $ do
164
- logWarn " Errors in snapshot:"
165
- void $ flip Map. traverseWithKey rangeErrors $ \ (dep, maintainers, mver) users -> do
166
- logWarn $ RIO. display (pkgBoundsError dep maintainers mver users)
167
- void $ flip Map. traverseWithKey otherErrors $ \ pname errors -> do
168
- logWarn $ fromString (packageNameString pname)
169
- forM_ errors $ \ err -> logWarn $ " " <> fromString err
162
+ unless (Map. null rangeErrors && Map. null otherErrors) $
163
+ throwM (BrokenDependencyGraph rangeErrors otherErrors)
164
+
165
+ data BrokenDependencyGraph = BrokenDependencyGraph
166
+ (Map (PackageName , Set Text , Maybe Version ) (Map DependingPackage DepBounds ))
167
+ (Map PackageName (Seq String ))
168
+
169
+ instance Exception BrokenDependencyGraph
170
+
171
+ instance Show BrokenDependencyGraph where
172
+ show (BrokenDependencyGraph rangeErrors otherErrors) = T. unpack . T. unlines $
173
+ " Snapshot dependency graph contains errors:" :
174
+ shownBoundsErrors <>
175
+ shownOtherErrors
176
+ where
177
+ shownBoundsErrors =
178
+ flip map (Map. toList rangeErrors) $ \ ((dep, maintainers, mver), users) ->
179
+ pkgBoundsError dep maintainers mver users
180
+ shownOtherErrors = flip map (Map. toList otherErrors) $ \ (pname, errors) -> T. unlines $
181
+ T. pack (packageNameString pname) :
182
+ flip map (toList errors) (\ err -> " " <> fromString err)
170
183
171
184
pkgBoundsError ::
172
185
PackageName
0 commit comments