2020-07: Pipeline Architecture
As the complexity of code generation grew, and with a partial view of the complexity yet to come, it became clear that we were facing a challenge. Each additional required function was making integration and testing progressively more difficult.
We also have the requirement to support a parallel pipeline that generates code appropriate for CrossPlane integration, and have a strong desire for an approach that minimizes the amount of ongoing maintenance.
Introducing a formal pipeline architecture, where each function forms a distinct pipeline stage, solves these problems.
Each pipeline stage can (in theory, at least) be tested independently, improving our confidence in the functionality
Dependencies between stages can be explicitly declared, allowing the validity of the pipeline to be checked
A single factory method can create both required pipeline variants
Pipeline introduced in PR#171.
Individual pipeline stages are independently tested, but some require considerable set up to create the expected initial state required for execution. The addition of mini-pipelines in PR#1649 partially mitigates this.
Pipeline (software) on Wikipedia