Elminate patterns
- provide simple interface to add linear flows to graphs: for example, graph_flow.
- remove all patterns but graph flow
- merge graph flow into taskflow.flow.Flow
Blueprint information
- Status:
- Complete
- Approver:
- Joshua Harlow
- Priority:
- Not
- Drafter:
- Ivan Melnikov
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
- Ivan Melnikov
Related branches
Related bugs
Sprints
Whiteboard
Why:
- simplify code
- reduce number of concepts
- ease learning to use taskflow
What we don't touch:
- engine is still a separate concept (also hidden inside taskflow.
- nested flows are still needed.
(imelnikov) So why the patterns were here?
- historical reasons: linear flow was here from the start, I could not think about removing it;
- convenience: when the flow was really linear, there must be better way to define it then linking tasks one pair after another;
- internal simplicity: look: http://
So what happened?
- internal simplicity gone when we switched do graph flattening;
- for convenience, we can provide add_path and similar APIs;
- and now I *am* thinking about removing linear flow...
What we are going to loose?
- ease of creating new patterns -- you could add any pattern you'd like; but adding methods to Flow is much more coupling;
Is that a problem? No, as you can inherit from flow.Flow and add your own convenience methods there; or you can write separate functions that add patterns the way you want.