New Workflow schema
@ladinesa @jrudz this is my attempt of cleaning up a bit the Workflow schema to handle more situations.
I followed a bit the design by @aalbino for the System base class, which works nicely when we have to either reference or populate a section. Said so, I have two main building blocks: Link2 and Task2 (naming is so I can develop next to the current schema).
-
Link2can be specialized intoLinkReferenceorLinkSection, which contain an attributesection. The example would be anarchive.data.outputs[0]section (i.e., a reference in workflow2) vs a workflow output itself (we need to instantiate to populate an outputs section and append it in `archive.workflow2.outputs). -
Taskis a bit more involved: I need a placeholder (BaseTask) in order to avoid repeating info inTaskReference.taskorTaskSection.task. Apart from that, the schema works same as withLink.
I think this allows us to be consistent regarding how we put data in the archive, so that the paths are always the same and contain the same information, with the only diff being if they are instantiated or referenced. I am also trying to avoid repeating stuff around like it happens with the current schema (where inputs/outputs appear twice for a TaskReference).
Please, let me know what you think, especially if you think I will be breaking back compatibility and if so, how to tackle this. We can discuss tomorrow (Thu 10.10).