cromwellwdl

How do I tell cromwell and womtool what WDL version to use?


I find lots of references to how cromwell supports the development version of WDL. I find people talking about running cromwell using the development version of WDL.

What I can not find anywhere is instructions on how to do this.

For example:

$ $CROMWELL_HOME/womtool --type wdl --type-version development validate My.wdl 
Error: Unknown option --type
Error: Unknown option --type-version
Error: Unknown argument 'development'

Whereas if I just call womtool, I get an error when trying to use the Directory keyword from WDL development:

$ $CROMWELL_HOME/womtool --type wdl --type-version development validate My.wdl 
ERROR: Unexpected symbol (line 9, col 5) when parsing '_gen10'.

Expected rbrace, got Directory.

    Directory   OutputDir
    ^

$workflow = :workflow :identifier :lbrace $_gen10 :rbrace -> Workflow( name=$1, body=$3 )

Update:

You must have every single file on the same version. If you don't, you will get the error

ERROR: Finished parsing without consuming all tokens.

version development

Note: Using cromwell 65


Solution

  • As per the WDL specifications, the WDL version must be indicated in the WDL file itself by putting version <insert_version_here> on the first line of the file. If this line isn't present then the execution engine should consider the version to be draft-2.

    eg.

    version 1.0
    
    workflow example {
    ...
    

    In order to use the developmental version in cromwell, development should be used as version. This is mentioned in the cromwell docs under "Language Support" -> "Future Language Support":

    version development
    
    workflow example {
    ...