@@ -231,13 +231,27 @@ sanityCheckElaboratedConfiguredPackage sharedConfig
231
231
-- * Deciding what to do: making an 'ElaboratedInstallPlan'
232
232
------------------------------------------------------------------------------
233
233
234
+ -- | Return an up-to-date elaborated install plan and associated config.
235
+ --
236
+ -- Two variants of the install plan are returned: with and without packages
237
+ -- from the store. That is, the \"improved\" plan where source packages are
238
+ -- replaced by pre-existing installed packages from the store (when their ids
239
+ -- match), and also the original elaborated plan which uses primarily source
240
+ -- packages.
241
+
242
+ -- The improved plan is what we use for building, but the original elaborated
243
+ -- plan is useful for reporting and configuration. For example the @freeze@
244
+ -- command needs the source package info to know about flag choices and
245
+ -- dependencies of executables and setup scripts.
246
+ --
234
247
rebuildInstallPlan :: Verbosity
235
248
-> FilePath -> DistDirLayout -> CabalDirLayout
236
249
-> ProjectConfig
237
- -> IO ( ElaboratedInstallPlan
238
- , ElaboratedInstallPlan
250
+ -> IO ( ElaboratedInstallPlan -- with store packages
251
+ , ElaboratedInstallPlan -- with source packages
239
252
, ElaboratedSharedConfig
240
253
, ProjectConfig )
254
+ -- ^ @(improvedPlan, elaboratedPlan, _, _)@
241
255
rebuildInstallPlan verbosity
242
256
projectRootDir
243
257
distDirLayout@ DistDirLayout {
0 commit comments