cylc-flow icon indicating copy to clipboard operation
cylc-flow copied to clipboard

Command task matching requirements

Open hjoliver opened this issue 1 year ago • 3 comments

Supersedes: #5763, #5695

See also: #5752, #5416, #5677

TODO:

  • [ ] hold
  • [ ] set
  • [ ] trigger
  • [ ] release
  • [ ] kill
  • [ ] poll
  • [ ] remove
  • show
    • [ ] show command
    • [ ] Update the troubleshooting page to remove the note about cylc show not working outside the n=0 window.

target task population

Different commands need to select tasks from different populations:

command population
hold, set, trigger pool, future, past
release held-tasks list only #5752
kill, poll pool only
remove pool, past
show pool only (but maybe future, past too #5677)

task name wildcards

We need to support matching task names by glob (or regex) and family name in all cases (not just in the pool.

For future and past tasks this means:

  • find all matching task def names (or member tasks of matching family names)
  • check which are valid for the given cycle point(s)

cycle point wildcards

We need to support matching cycle points by glob in the pool, e.g. to target all incomplete tasks.

We should not support cycle point wildcards outside of the pool (well, * is certainly bad; [5-8] (e.g.) may be OK in principle but still dangerous and not that much of a plus to users anyway).

task qualifiers

Use of some task qualifiers (i.e. :output) necessarily restricts matching to the pool. E.g. cylc set --out=succeeded "*:failed" should set all n=0 incomplete failed tasks to succeeded.

We can probably decide that use of any qualifier means pool only (is there any need to distinguish between e.g. completed-succeeded and completed-failed past tasks?)


Terminology:

  • pool: task proxies in the n=0 active window
  • future, past: abstract tasks anywhere else in the graph, i.e. n>0 and n<0

hjoliver avatar Nov 18 '23 21:11 hjoliver