validation error only when importing workflow, not when running it.
I have three workflows.
write_tsv.wdl that writes a tab separated file.
read_tsv.wdl that calls
write_tsv.wdl and reads the tab separated file into an array. The third workflow
use_tsv only calls
read_tsv and does nothing else. Both
read_tsv.wdl validate and run without any issues. However, when I try to validate
use_tsv.wdl I get errors for
$ java -jar wdltool-0.10.jar validate use_tsv.wdl ERROR: Variable wf does not reference any declaration in the task (line 5, col 44): Array[Array[File]] tab_file = read_tsv(wf.tsv) ^ Declaration starts here (line 5, col 24): Array[Array[File]] tab_file = read_tsv(wf.tsv) ^
I have attached a zip file with the wdl code.
I created the following workaround, where
write_tsv2.wdl already parses the file into an
Array[Array[String]]. Note that in the original code it was parsed into
Array[Array[File]], but for some reason that leads to file not found errors in the
*tsv2.wdl scripts. I think throwing
file not found errors is the correct behavior, but I'm not sure why the same errors do not show up in both scripts. I guess it might be an indication that the
*tsv.wdl scripts don't parse the tsv file properly?