Skip to content

New Workflow schema

Jose Pizarro requested to merge restructure_workflows into develop

@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 into LinkReference or LinkSection, which contain an attribute section. The example would be an archive.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 in TaskReference.task or TaskSection.task. Apart from that, the schema works same as with Link.

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).

Merge request reports