v0.18.0 - Dependency Graph-based Phase Execution
Pre-release
Pre-release
- Added dependency graph-based phase execution. This means instead of putting phases into levels, they can now be added as nodes in a dependency graph and the
ExecutionPlanner
will compute a plan made up of as few as possible execution levels so that all dependencies are satisfied and all phases are executed. - Abstracted some functionality, mainly init and state reset, of phases and transformations into
LifecycleUser
- Changed
Transformation
to track the dependencies of lifecycle users enclosed in nodes - Renamed
PhaseCollector
toExecutionPlanner
and changed how transformations are added to it - Introduced the internal data structure
Node
that transformations use to track dependencies between lifecycle users - Transformations and phases can be part of other transformations. In fact, the execution planner simply contains a root transformation to which all other transformations and phases are added.
- Added lots of tests for
Transformation
andExecutionPlanner
- Updated
WrapIdentifier
and subclasses to use the new APIs - Added a utility method for generating simple instances to
RunPhase
Full Changelog: v0.17.2...v0.18.0