Skip to content
  • Duncan Coutts's avatar
    Change pruneInstallPlanToTargets to take ComponentTargets · bd177197
    Duncan Coutts authored
    Previously it took the specification for the targets to build in terms
    of PackageTarget which is a high-ish level specification of which
    components to build. It is high level in the sense that it says things
    like BuildDefaultComponents which still have to be elaborated into the
    specific components.
    
    This elaboration from the higher level intention of what to build into
    what components to build specifically has to vary between different
    commands (build, repl, run, test, bench) and it can also fail. These
    features make it not a good fit to do within plan pruning. Instead it
    is better to have plan pruning take the lower level specification of
    what to build in terms of components and to do the conversion of high
    level to low level separately. That will allow us to do it differently
    for different commands and deal with failures better.
    
    This patch does one step: it changes pruneInstallPlanToTargets from
    taking [PackageTarget] to [ComponentTarget] and as an intermediate step
    in refactoring it converts the existing elaboratePackageTargets code to
    convert from the [PackageTarget] to [ComponentTarget] which is then used
    by the calling code in ProjectOrchestration. The next step will be to
    replace the elaboratePackageTargets with something more flexible and
    that can handle errors better.
    bd177197