We’ll need to answer a few fundamental questions before we can get this documented. Here’s my short list:
-
Question for the Steering Committee: Is this an intended feature that will be carried into the future, or is this merely a side effect of the way
import_tasks
include_tasks
is implemented which could disappear in a future release? -
Does this work for any other flavors of
include_*
orimport_*
? If so, the scope of the question just got a bit creepier. (See what I did there? -
What circumstances prevent tail recursion?
I’ve found by trial and error that having a[Edit: The error I incurred, “… maximum recursion depth exceeded”, was due to a variable defined in terms of itself, not that the finalvars:
on the last task in the included task files’ last step is one such breaker.include_tasks
step had avars:
section.] What else?
Other questions? Maybe someone who knows how it’s implemented would have additional insights…
Tail recursion is an “in-the-weeds” topic anyway. How do we provide enough technical detail to cover it while not overwhelming the include_tasks
doc? Should it be split between the include_tasks
doc and the tips-n-tricks
page, or all in one place? Should an example be added the to async:
doc (since async job queue management is a practical example of its application)?