Got a problem?

1. Search using the upper-right search box, e.g. using the error message.
2. Be as detailed as you can when describing your problem, i.e. tell us what happened or didn't happen rather than "it didn't work" or "it failed".
3. Include the full text of any error messages you encounter.
4. Include relevant code snippets in the body of your post (see formatting tips below) and attach your full WDL script using the "Attach a file" link below the comment box.
5. Tell us what version of Cromwell, wdltool or any other software involved you are using.
6. Tell us what platform you are running on.

Get notifications!

You can opt in to receive email notifications, for example when your questions get answered or when there are new announcements, by following the instructions given here.

Formatting tip!

Wrap blocks of code, error messages and BAM/VCF snippets--especially content with hashes (#)--with lines with three backticks ( ``` ) each to make a code block as demonstrated here.

Jump to another community

Why is only one workflow allowed?

I'm busy moving shared code into a lib.wdl file, that I can then import into different workflows. In that file, I organised different tasks into separate workflows, eg workflow assemble {...}, workflow trimReads {...} etc.
However, when I try to validate the wdl file I get this error:

Are there any plans to allow this in the near future? A user would never run lib.wdl directly in cromwell, so that would not cause a problem. But I also think it make sense to have cromwell run each workflow in a .wdl file when multiple workflows are defined.

Answers

Hey Redmar_van_den_Berg, as of right now, there aren't any plans to build this functionality in the near future. Currently, you are onlly able to create a library of tasks in a WDL file, and then those can be re-used to compose a WDL.

You can alternatively create a lib.wdl workflow file, which imports assemble.wdl and trim.wdl. Then the outer-most workflow can import lib.wdl, which will give the outer-most workflow access to the workflows assemble and trim through the lib.wdl.

@Ruchi
That sadly won't work, since assemble.wdl needs access to trim.wdl as well. And when I define that, you have a circular import and wdltool crashes. So in assemble.wdl, I have to import trim.wdl directly instead of via the shared.wdl library, which defeats the whole purpose.