<p>I thought that when you linked tasks in a WDL workflow e.g.</p>
<pre><code>call task1 {
    input: in = file1
}

call task2 {
    input: in = task1.out
}
</code></pre>
<p>That the first time you run it task1 and task2 would run, but the second time you run it nothing would run because the inputs haven't changed i.e. like GNU make</p>
<p>Also, if you delete the output of task2 and run it then only task2 would run as the output from task1 is still there and hasn't changed.</p>
<p>Basically, I am trying to use WDL like GNU make to only re-run the parts of my workflow that need rerunning depending on which inputs have changed.</p>
<p>I suspect I have misunderstood and WDL cannot be used like this?</p>

CC BY-SA 4.0
2023-08-14T17:54:57.243Z
Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.
Community
CC BY-SA 4.0
2023-08-14T17:57:44.043Z
Welcome to the site and thanks for the question. Could you provide a reproducible example for the question? This does help understand what is sought. By the way, WDL is not hugely popular on this site, however NextFlow however is popular.
M__
CC BY-SA 4.0
2023-08-18T15:06:54.250Z
This is dependent on the execution engine you're using. If you are using cromwell or miniwdl then you can try looking up "call caching" in their documentation. Both of those execution engines should support it.
DavyCats
<wdl>
WDL dependencies
# WDL dependencies

(Asked by: username_0 on 2023-08-14)

I thought that when you linked tasks in a WDL workflow e.g.
call task1 {
    input: in = file1
}

call task2 {
    input: in = task1.out
}

That the first time you run it task1 and task2 would run, but the second time you run it nothing would run because the inputs haven't changed i.e. like GNU make
Also, if you delete the output of task2 and run it then only task2 would run as the output from task1 is still there and hasn't changed.
Basically, I am trying to use WDL like GNU make to only re-run the parts of my workflow that need rerunning depending on which inputs have changed.
I suspect I have misunderstood and WDL cannot be used like this?

**Tags:** wdl
> **Comments:**
> **username_1**: Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.  
> **username_2**: Welcome to the site and thanks for the question. Could you provide a reproducible example for the question? This does help understand what is sought. By the way, WDL is not hugely popular on this site, however NextFlow however is popular.  
> **username_3**: This is dependent on the execution engine you're using. If you are using cromwell or miniwdl then you can try looking up "call caching" in their documentation. Both of those execution engines should support it.  

---

## 0 answers

