Currently, Janis prepares one tool per file, and (sub)workflows can reference an individual tool from a tools/ folder. This folder is automatically zipped and supplied to Cromwell through the dependencies input.
However, there will be occasions where it's more practical to generate an "all-in-one" workflow, which contains all the tool definitions, for example: uploading to the FISS API / Terra, sharing workflows etc.
This behaviour is already implemented (but untested for a while) in CWL:
|
def translate_workflow_to_all_in_one( |
|
cls, |
|
wf, |
|
with_resource_overrides=False, |
|
is_nested_tool=False, |
|
allow_empty_container=False, |
|
container_override=None, |
|
) -> cwlgen.Workflow: |
It's not yet defined for WDL [You can assert that no two tools will have the same task ID (although practically it occasionally happens)], though as long as you can keep tasks and workflows ordered (in the order they're seen), you shouldn't have too many issues.
Currently, Janis prepares one tool per file, and (sub)workflows can reference an individual tool from a
tools/folder. This folder is automatically zipped and supplied to Cromwell through the dependencies input.However, there will be occasions where it's more practical to generate an "all-in-one" workflow, which contains all the tool definitions, for example: uploading to the FISS API / Terra, sharing workflows etc.
This behaviour is already implemented (but untested for a while) in CWL:
janis-core/janis_core/translations/cwl.py
Lines 403 to 410 in 96718bc
It's not yet defined for WDL [You can assert that no two tools will have the same task ID (although practically it occasionally happens)], though as long as you can keep tasks and workflows ordered (in the order they're seen), you shouldn't have too many issues.