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).
-
Link2
can be specialized intoLinkReference
orLinkSection
, 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). -
Task
is a bit more involved: I need a placeholder (BaseTask
) in order to avoid repeating info inTaskReference.task
orTaskSection.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).