Skip to content
  • Christian Hergert's avatar
    pipeline: add IdeBuildPipeline · 7b9075ea
    Christian Hergert authored
    The new IdeBuildPipeline provides a pluggable pipeline with phases. Stages
    are attached within a given stage. When the pipeline is executed, it tries
    to avoid performing unnecessary work so that we can speed up the rate at
    which some user-actions can be performed (such as running).
    
    You can invalidate phases for which those stages will need to be
    re-executed next time the pipeline advances to that phase.
    
    Stages can override some of this behavior by attaching to the ::query
    signal to determine their "completed" status. If work needs to be
    performed asynchronously, it can put a "hold" on the stage and release
    the hold after the asynchronous work is completed. The pipeline will
    pause to wait for thie operation to complete.
    
    You likely want to use some of the pre-created build stage subclasses
    such as for creating directories, launching subprocesses, or performing
    transfers.
    7b9075ea