Commit 7b9075ea authored by Committed by Matthew Leeds
pipeline: add IdeBuildPipeline
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.
Showing with 4911 additions and 1 deletion