I am trying to translate my recast workflow to a REANA workflow. I find the nice setup directions for REANA here - http://docs.reana.io/getting-started/first-example/ - and in their example analysis there is even a nice yadage-based configuration provided - https://github.com/reanahub/reana-demo-root6-roofit/blob/master/reana-yadage.yaml.
This is helpful, but their example has the steps of the workflow hardcoded in workflow.yaml
whereas I have become conditioned to partition this into workflow.yml
and steps.yml
to make the steps reuseable in many stages of the workflow. This seems logical and efficient. Likewise, I have also been conditioned to organize my work in a directory structure like :
myWorkflow
myWorkflow/recast.yml
myWorkflow/specs/workflow.yml
myWorkflow/specs/steps.yml
where workflow.yml
makes reference to steps.yml
with calls like step: {$ref: 'steps.yml#/eventselection_list'}
. Again, this makes sense (or I am just hyperbiased).
I gathered that the only thing we should have to do is write a reana.yaml
file that would fill in for the recast.yml
file we all know and love. I have been able to do this based on examples, but it seems this requires a reorganization of the directory structure because when I try to submit the workflow from this top level myWorkflow
directory, it complains that it cannot find myWorkflow/steps.yml
. It is as if the $ref
is referring to the top level directory and not the relative/local directory of specs.yml
.
So the basic question is two-fold :
[1] Is there a clear set of directions that show the minimal set of steps needed to translate my recast workflow to REANA?
[2] Must we really reorganize the directory structure every time.