Skip to content

Commit fcd59d3

Browse files
committed
Expose MiniPackageInfo
1 parent e1996ce commit fcd59d3

4 files changed

Lines changed: 33 additions & 23 deletions

File tree

src/Stack/Build.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ getDependencies locals ranges = do
283283
ResolverSnapshot snapName -> do
284284
$logDebug $ "Checking resolver: " <> renderSnapName snapName
285285
mbp0 <- loadMiniBuildPlan snapName
286-
globals <- getPackageVersionMapWithGlobalDb menv mbp0 []
286+
globals <- getPackageVersionMapWithGlobalDb menv (Just mbp0) []
287287
let mbp = mbp0
288288
{ mbpPackages = mbpPackages mbp `Map.union`
289289
fmap (\v -> MiniPackageInfo
@@ -323,7 +323,7 @@ getDependencies locals ranges = do
323323
]
324324
return deps
325325
ResolverGhc _ -> do
326-
globals <- getPackageVersionMapWithGlobalDb menv []
326+
globals <- getPackageVersionMapWithGlobalDb menv Nothing []
327327
return $ fmap (, M.empty) globals
328328

329329
let checkDepRange (dep, users) =
@@ -353,7 +353,7 @@ installDependencies bopts deps' = do
353353
pkgDbs <- getPackageDatabases bconfig BTDeps
354354
menv <- getMinimalEnvOverride
355355

356-
installed <- liftM toIdents $ getPackageVersionMapWithGlobalDb menv pkgDbs
356+
installed <- liftM toIdents $ getPackageVersionMapWithGlobalDb menv Nothing pkgDbs
357357
cabalPkgVer <- getCabalPkgVer menv
358358
let toInstall' = M.difference deps installed
359359

src/Stack/Config.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ loadBuildConfig mproject config = do
258258
ghcVersion <-
259259
case projectResolver project of
260260
ResolverSnapshot snapName -> do
261-
mbp <- runReaderT (loadMiniBuildPlan snapName Map.empty) miniConfig
261+
mbp <- runReaderT (loadMiniBuildPlan snapName) miniConfig
262262
return $ mbpGhcVersion mbp
263263
ResolverGhc m -> return $ fromMajorVersion m
264264

src/Stack/GhcPkg.hs

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,10 @@ ghcPkg menv pkgDbs args = do
108108
getPackageVersionMapWithGlobalDb
109109
:: (MonadCatch m, MonadIO m, MonadThrow m, MonadLogger m)
110110
=> EnvOverride
111-
-> MiniBuildPlan
111+
-> Maybe MiniBuildPlan
112112
-> [Path Abs Dir] -- ^ package databases
113113
-> m (Map PackageName Version)
114-
getPackageVersionMapWithGlobalDb menv mbp pkgDbs = do
114+
getPackageVersionMapWithGlobalDb menv mmbp pkgDbs = do
115115
gdb <- getGlobalDB menv
116116
-- Use unionsWith max to account for cases where the snapshot introduces a
117117
-- newer version of a global package, see:
@@ -124,17 +124,32 @@ getPackageVersionMapWithGlobalDb menv mbp pkgDbs = do
124124
(M.unionsWith max .
125125
map (M.fromList . rights))
126126
globals <-
127-
foldM
128-
(\acc ident ->
129-
if versionMatches mbp ident
130-
then do
131-
hasProfiling <- packageHasProfiling [gdb] ident
132-
if hasProfiling
133-
then return acc
134-
else return (expunge ident acc)
135-
else return (expunge ident acc))
136-
allGlobals
137-
(map fromTuple (M.toList allGlobals))
127+
case mmbp of
128+
Nothing ->
129+
return allGlobals
130+
Just mbp ->
131+
foldM
132+
(\acc ident ->
133+
let expunge ident acc =
134+
foldr
135+
M.delete
136+
acc
137+
(map
138+
packageIdentifierName
139+
(ident :
140+
getTransInclusiveDeps mbp ident))
141+
in if versionMatches mbp ident
142+
then do
143+
hasProfiling <-
144+
packageHasProfiling
145+
[gdb]
146+
ident
147+
if hasProfiling
148+
then return acc
149+
else return (expunge ident acc)
150+
else return (expunge ident acc))
151+
allGlobals
152+
(map fromTuple (M.toList allGlobals))
138153
rest <-
139154
getPackageVersions
140155
menv
@@ -146,12 +161,6 @@ getPackageVersionMapWithGlobalDb menv mbp pkgDbs = do
146161
(M.unionsWith
147162
max
148163
[globals, rest])
149-
where
150-
expunge ident acc = do
151-
foldr
152-
M.delete
153-
acc
154-
(map packageIdentifierName (ident : getTransInclusiveDeps mbp ident))
155164

156165
-- | Get the packages depended on by the given package.
157166
versionMatches :: MiniBuildPlan -> PackageIdentifier -> Bool

src/Stack/Types/BuildPlan.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ module Stack.Types.BuildPlan
2020
, Component (..)
2121
, SnapName (..)
2222
, MiniBuildPlan (..)
23+
, MiniPackageInfo (..)
2324
, renderSnapName
2425
, parseSnapName
2526
) where

0 commit comments

Comments
 (0)