Skip to content

Commit b5a4548

Browse files
committed
Plumb verbosity level down to where its needed
Use `setVerbose` in two of the unit tests in preparation for upcoming changes to the `skipping ...` message.
1 parent c215dfb commit b5a4548

File tree

4 files changed

+36
-33
lines changed

4 files changed

+36
-33
lines changed

cabal-install-solver/src/Distribution/Solver/Modular.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ solve' sc cinfo idx pkgConfigDB pprefs gcs pns =
200200
-- original goal order.
201201
goalOrder' = preferGoalsFromConflictSet cs <> fromMaybe mempty (goalOrder sc)
202202

203-
in unlines ("Could not resolve dependencies:" : map renderSummarizedMessage (messages (toProgress (runSolver True sc'))))
203+
in unlines ("Could not resolve dependencies:" : map (renderSummarizedMessage (solverVerbosity sc)) (messages (toProgress (runSolver True sc'))))
204204

205205
printFullLog = solverVerbosity sc >= verbose
206206

cabal-install-solver/src/Distribution/Solver/Modular/Message.hs

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ import Distribution.Types.LibraryName
5454
( LibraryName(LSubLibName, LMainLibName) )
5555
import Distribution.Types.UnqualComponentName
5656
( unUnqualComponentName )
57+
import Distribution.Verbosity (Verbosity, verbose)
5758

5859
import Text.PrettyPrint ( nest, render )
5960

@@ -69,32 +70,32 @@ data Message =
6970
| Success
7071
| Failure ConflictSet FailReason
7172

72-
renderSummarizedMessage :: SummarizedMessage -> String
73-
renderSummarizedMessage (SummarizedMsg i) = displayMessageAtLevel i
74-
renderSummarizedMessage (StringMsg s) = s
73+
renderSummarizedMessage :: Verbosity -> SummarizedMessage -> String
74+
renderSummarizedMessage verb (SummarizedMsg i) = displayMessageAtLevel verb i
75+
renderSummarizedMessage _ (StringMsg s) = s
7576

76-
displayMessageAtLevel :: EntryAtLevel -> String
77-
displayMessageAtLevel (AtLevel l msg) =
77+
displayMessageAtLevel :: Verbosity -> EntryAtLevel -> String
78+
displayMessageAtLevel verb (AtLevel l msg) =
7879
let s = show l
79-
in "[" ++ replicate (3 - length s) '_' ++ s ++ "] " ++ displayMessage msg
80-
81-
displayMessage :: Entry -> String
82-
displayMessage (EntryPackageGoal qpn gr) = "next goal: " ++ showQPN qpn ++ showGR gr
83-
displayMessage (EntryRejectF qfn b c fr) = "rejecting: " ++ showQFNBool qfn b ++ showFR c fr
84-
displayMessage (EntryRejectS qsn b c fr) = "rejecting: " ++ showQSNBool qsn b ++ showFR c fr
85-
displayMessage (EntrySkipping cs) = "skipping: " ++ showConflicts cs
86-
displayMessage (EntryTryingF qfn b) = "trying: " ++ showQFNBool qfn b
87-
displayMessage (EntryTryingP qpn i) = "trying: " ++ showOption qpn i
88-
displayMessage (EntryTryingNewP qpn i gr) = "trying: " ++ showOption qpn i ++ showGR gr
89-
displayMessage (EntryTryingS qsn b) = "trying: " ++ showQSNBool qsn b
90-
displayMessage (EntryUnknownPackage qpn gr) = "unknown package: " ++ showQPN qpn ++ showGR gr
91-
displayMessage EntrySuccess = "done"
92-
displayMessage (EntryFailure c fr) = "fail" ++ showFR c fr
93-
displayMessage (EntrySkipMany qsn b cs) = "skipping: " ++ showOptions qsn b ++ " " ++ showConflicts cs
80+
in "[" ++ replicate (3 - length s) '_' ++ s ++ "] " ++ displayMessage verb msg
81+
82+
displayMessage :: Verbosity -> Entry -> String
83+
displayMessage _ (EntryPackageGoal qpn gr) = "next goal: " ++ showQPN qpn ++ showGR gr
84+
displayMessage _ (EntryRejectF qfn b c fr) = "rejecting: " ++ showQFNBool qfn b ++ showFR c fr
85+
displayMessage _ (EntryRejectS qsn b c fr) = "rejecting: " ++ showQSNBool qsn b ++ showFR c fr
86+
displayMessage _ (EntrySkipping cs) = "skipping: " ++ showConflicts cs
87+
displayMessage _ (EntryTryingF qfn b) = "trying: " ++ showQFNBool qfn b
88+
displayMessage _ (EntryTryingP qpn i) = "trying: " ++ showOption qpn i
89+
displayMessage _ (EntryTryingNewP qpn i gr) = "trying: " ++ showOption qpn i ++ showGR gr
90+
displayMessage _ (EntryTryingS qsn b) = "trying: " ++ showQSNBool qsn b
91+
displayMessage _ (EntryUnknownPackage qpn gr) = "unknown package: " ++ showQPN qpn ++ showGR gr
92+
displayMessage _ EntrySuccess = "done"
93+
displayMessage _ (EntryFailure c fr) = "fail" ++ showFR c fr
94+
displayMessage verb (EntrySkipMany qsn b cs) = "skipping: " ++ showOptions verb qsn b ++ " " ++ showConflicts cs
9495
-- Instead of displaying `aeson-1.0.2.1, aeson-1.0.2.0, aeson-1.0.1.0, ...`,
9596
-- the following line aims to display `aeson: 1.0.2.1, 1.0.2.0, 1.0.1.0, ...`.
9697
--
97-
displayMessage (EntryRejectMany qpn is c fr) = "rejecting: " ++ showOptions qpn is ++ showFR c fr
98+
displayMessage verb (EntryRejectMany qpn is c fr) = "rejecting: " ++ showOptions verb qpn is ++ showFR c fr
9899

99100
-- | Transforms the structured message type to actual messages (SummarizedMessage s).
100101
--
@@ -283,15 +284,15 @@ showOption qpn@(Q _pp pn) (POption i linkedTo) =
283284
-- "foo-bar; foo-bar~>bazqux.foo-bar-1, foo-bar~>bazqux.foo-bar-2"
284285
-- >>> showOptions foobarQPN [v0, i1, k2]
285286
-- "foo-bar; 0, 1/installed-inplace, foo-bar~>bazqux.foo-bar-2 and earlier versions"
286-
showOptions :: QPN -> [POption] -> String
287-
showOptions _ [] = "unexpected empty list of versions"
288-
showOptions q [x] = showOption q x
289-
showOptions q xs = showQPN q ++ "; " ++ (L.intercalate ", "
287+
showOptions :: Verbosity -> QPN -> [POption] -> String
288+
showOptions _ _ [] = "unexpected empty list of versions"
289+
showOptions _ q [x] = showOption q x
290+
showOptions verb q xs = showQPN q ++ "; " ++ (L.intercalate ", "
290291
[if isJust linkedTo
291292
then showOption q x
292293
else showI i -- Don't show the package, just the version
293-
| x@(POption i linkedTo) <- take 3 xs
294-
] ++ if length xs >= 3 then " and other versions" else "")
294+
| x@(POption i linkedTo) <- if verb >= verbose then xs else take 3 xs
295+
] ++ if verb < verbose && length xs >= 3 then " and other versions" else "")
295296

296297
showGR :: QGoalReason -> String
297298
showGR UserGoal = " (user goal)"

cabal-install/src/Distribution/Client/Dependency.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -854,7 +854,7 @@ resolveDependencies platform comp pkgConfigDB params =
854854
else dontInstallNonReinstallablePackages params
855855

856856
formatProgress :: Progress SummarizedMessage String a -> Progress String String a
857-
formatProgress p = foldProgress (\x xs -> Step (renderSummarizedMessage x) xs) Fail Done p
857+
formatProgress p = foldProgress (\x xs -> Step (renderSummarizedMessage (depResolverVerbosity params) x) xs) Fail Done p
858858

859859
preferences :: PackageName -> PackagePreferences
860860
preferences = interpretPackagesPreference targets defpref prefs

cabal-install/tests/UnitTests/Distribution/Solver/Modular/Solver.hs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -951,8 +951,9 @@ tests =
951951
]
952952
rejecting = "rejecting: A-3.0.0"
953953
skipping = "skipping: A; 2.0.0, 1.0.0"
954-
in mkTest db "show skipping versions list" ["B"] $
955-
solverFailure (\msg -> rejecting `isInfixOf` msg && skipping `isInfixOf` msg)
954+
in setVerbose $
955+
mkTest db "show skipping versions list" ["B"] $
956+
solverFailure (\msg -> rejecting `isInfixOf` msg && skipping `isInfixOf` msg)
956957
, runTest $
957958
let db =
958959
[ Left $ exInst "A" 1 "A-1.0.0" []
@@ -962,8 +963,9 @@ tests =
962963
]
963964
rejecting = "rejecting: A-3.0.0/installed-3.0.0"
964965
skipping = "skipping: A; 2.0.0/installed-2.0.0, 1.0.0/installed-1.0.0"
965-
in mkTest db "show skipping versions list, installed" ["B"] $
966-
solverFailure (\msg -> rejecting `isInfixOf` msg && skipping `isInfixOf` msg)
966+
in setVerbose $
967+
mkTest db "show skipping versions list, installed" ["B"] $
968+
solverFailure (\msg -> rejecting `isInfixOf` msg && skipping `isInfixOf` msg)
967969
, runTest $
968970
let db =
969971
[ Right $ exAv "A" 1 []

0 commit comments

Comments
 (0)