Proposal (Sept-Oct 2019)

Rationalise Task State, Output, and Trigger Names

Cylc has gradually accrued new task states (and associated triggers and outputs over the years) and they need tidying up. By thinking this through again from the top we can actually halve the number of abstract task states from 8 to 4.

Task/Job States

(i.e. task states that have a corresponding job state)

current name NEW name meaning
submitted submit-succeeded job submitted to batch system
submit-failed submit-failed job submitted but did not execute
running running job started, but did not finish yet
succeeded run-succeeded job finished successfully
failed run-failed job finished unsuccessfully


Abstract Task States

(i.e. task states with no corresponding job state)

Current Abstract Task States

These are problematic in several ways, detailed below the table.

current name meaning
runahead task held in the non-active runahead pool while too far ahead
waiting waiting for prerequisites to be met
held will not submit job even if prerequisites met
queued held back in an internal queue
ready preparing job submission, including subprocess pool queue
expired waited too long, do not bother to submit
submit-retrying job submission failed, will try again later
retrying job execution failed, will try again later


New Abstract Task States

(These make perfect sense, and are easy to explain and understand!)

NEW name meaning
waiting (formerly waiting, queued, and runahead) waiting on all prerequisites
preparing (formerly ready) all prerequisites met; preparing for job submission
expired (unchanged) waited too long, do not bother to submit



(These are mostly an internal concept; just make consistent with task states)

current new
expired expired
submitted submit-succeeded
submit-failed submit-failed
started run-started
succeeded run-succeeded
failed run-failed
(custom) (custom)


Graph Trigger Qualifiers

old new
:expire[d] :expired
:submit[ted] :submit-succeeded
:submit-fail[ed] :submit-failed
:start[ed] :started
:succeed[ed] :run-succeeded (default)
:fail[ed] :run-failed
:(custom) :(custom)


Implementation Plan

(Roughly; can be refined on appropriate Issue or PR pages)


User Guide