@@ -36,6 +36,77 @@ Cylc 8.6
36
36
:cylc-rose: `1.5 <https://github.com/cylc/cylc-rose/blob/master/CHANGES.md>`__
37
37
:rose: `2.4 <https://github.com/metomi/rose/blob/master/CHANGES.md>`__
38
38
39
+
40
+ Task Matching
41
+ ^^^^^^^^^^^^^
42
+
43
+ Various Cylc commands (e.g. ``cylc trigger ``, ``cylc set `` and ``cylc hold ``)
44
+ allow us to select the tasks we want to operate on using cycle points,
45
+ family names or globs, e.g:
46
+
47
+ .. code-block :: bash
48
+
49
+ # trigger active tasks in cycle "2000"
50
+ cylc trigger workflow//2000
51
+
52
+ # trigger active tasks in "FAMILY" in cycle "2000"
53
+ cylc trigger workflow//2000/FAMILY
54
+
55
+ # trigger all tasks in cycle "2000" with names starting with "foo"
56
+ cylc trigger workflow//2000/foo*
57
+
58
+ However, prior to 8.6 family names and globs would only match :term: `active tasks <active task> `.
59
+ So, if you attempted to hold a family of tasks, Cylc would only hold the
60
+ members of the family which were active at the time.
61
+
62
+ As of Cylc 8.6.0, this restriction has been lifted, so for example, holding a
63
+ family will now hold all tasks within the family, irrespective of whether they
64
+ are active or not.
65
+
66
+ .. code-block :: bash
67
+
68
+ # hold all tasks in "FAMILY" at cycle "2000"
69
+ cylc hold workflow//2000/FAMILY
70
+
71
+ # re-run all tasks in cycle "2000" (in order)
72
+ cylc trigger workflow//2000
73
+
74
+ # mark all tasks beginning with "foo" in cycle "2000" as "succeeded"
75
+ cylc set workflow//2000/foo* --out=succeeded
76
+
77
+ Because Cylc workflows can be infinite, if a cycle includes a "glob" pattern
78
+ (e.g. ``* ``), this will only match :term: `active cycles <active cycle> `
79
+ (any cycle which contains at least one :term: `active task `), e.g:
80
+
81
+ .. code-block :: bash
82
+
83
+ # remove the task "foo" from all active cycles of the workflow
84
+ cylc remove workflow//* /foo
85
+
86
+ # release all tasks in "FAMILY" in all active cycles of the workflow
87
+ cylc release workflow//* /FAMILY
88
+
89
+ This (combined with :ref: `changes.8.5.0.triggering_multiple_tasks `)
90
+ makes Cylc 7 "reset to waiting" use cases much easier:
91
+
92
+ .. list-table ::
93
+ :class: grid-table
94
+
95
+ * - **Cylc 7 **
96
+ - **Cylc 8 **
97
+ * - ::
98
+
99
+ cylc insert workflow FAMILY.cycle
100
+ cylc reset workflow FAMILY.cycle --state=waiting
101
+ # Trigger the task(s) that start the FAMILY sub-graph
102
+ cylc trigger workflow member1.cycle
103
+ - ::
104
+
105
+ cylc trigger workflow//cycle/FAMILY
106
+
107
+ For more information on Cylc IDs, run ``cylc help id ``.
108
+
109
+
39
110
Supported Python versions
40
111
^^^^^^^^^^^^^^^^^^^^^^^^^
41
112
@@ -72,6 +143,8 @@ shown in the information view:
72
143
:align: center
73
144
:width: 65%
74
145
146
+ .. _changes.8.5.0.triggering_multiple_tasks :
147
+
75
148
Triggering Multiple Tasks
76
149
^^^^^^^^^^^^^^^^^^^^^^^^^
77
150
0 commit comments