Skip to content

Commit 13a598e

Browse files
Merge pull request #849 from oliver-sanders/group-trigger
changes: various 8.5.0 bits and bobs
2 parents 67044c2 + b24a6d2 commit 13a598e

File tree

11 files changed

+348
-20
lines changed

11 files changed

+348
-20
lines changed

src/7-to-8/cheat-sheet.rst

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,6 @@ Set task outputs:
331331

332332
cylc set --out=succeeded
333333

334-
335334
Insert a task:
336335

337336
.. list-table::
@@ -343,3 +342,19 @@ Insert a task:
343342

344343
cylc insert
345344
- Tasks are inserted automatically when you "trigger" or "set" them.
345+
346+
Re-run a group of tasks in order:
347+
348+
.. list-table::
349+
:class: grid-table
350+
351+
* - **Cylc 7**
352+
- **Cylc 8**
353+
* - ::
354+
355+
# reset the task to waiting, they will then re-run in order
356+
cylc reset -s=waiting cycle1/task1 cycle2/task2 ...
357+
- ::
358+
359+
# trigger the tasks in a single command, they will re-run in order
360+
cylc trigger cycle1/task1 cycle2/task2 ...

src/glossary.rst

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1373,7 +1373,7 @@ Glossary
13731373
Every :term:`task` has a set of standard :term:`outputs <task output>`
13741374
that trigger :term:`task state` changes:
13751375

1376-
- ``:expired```
1376+
- ``:expired``
13771377
- ``:submitted``, or ``:submit-failed``
13781378
- ``:started``
13791379
- ``:succeeded``, or ``:failed``
@@ -1601,6 +1601,10 @@ Glossary
16011601
User intervention is required to fix a stall, e.g. by retriggering
16021602
tasks after fixing the problems that caused them to fail.
16031603

1604+
.. seealso:
1605+
1606+
* :ref:`Cylc User Guide <scheduler stall>`
1607+
16041608
16051609
suicide trigger
16061610
Suicide triggers remove tasks from the :term:`n=0 window <n-window>`.

src/img/gui-stall.png

218 KB
Loading

src/reference/changes.rst

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,91 @@ shown in the information view:
5252
:align: center
5353
:width: 65%
5454

55+
Triggering Multiple Tasks
56+
^^^^^^^^^^^^^^^^^^^^^^^^^
57+
58+
Cylc now respects the dependencies between tasks when triggering multiple
59+
tasks at the same time. This provides an easy way to re-run a group of tasks
60+
in order:
61+
62+
.. image:: ../reference/changes/group-trigger.gif
63+
:align: center
64+
:width: 65%
65+
66+
|
67+
68+
This is generally easier than :ref:`using a new flow <interventions.reflow>`.
69+
70+
Technical details:
71+
72+
* Prerequisites on any tasks that are outside of the group of tasks being
73+
triggered are automatically satisfied.
74+
* Any tasks which have already run within the group will be automatically
75+
removed (i.e. ``cylc remove``) to allow them to be re-run without
76+
intervention.
77+
* Any preparing, submitted or running tasks within the group will also be
78+
removed if necessary to allow the tasks to re-run in order.
79+
80+
81+
.. _changes.warning_triangles:
82+
83+
Warning Triangles
84+
^^^^^^^^^^^^^^^^^
85+
86+
The GUI now has warning triangles, these "light up" whenever warnings occur in
87+
the workflow.
88+
89+
* Cylc logs warnings for various things such as task failures, stalled
90+
workflows, and command errors. You can see these in the workflow log files.
91+
* When warnings occur, the warning triangle will illuminate for the
92+
corresponding workflow.
93+
* Hover over the icon to reveal the warning.
94+
* Click on the icon to dismiss the warning.
95+
* If workflows are installed hierarchically, (e.g. the "development" and
96+
"live" groups in this example), warnings will trickle up the hierarchy
97+
to make it easier to monitor groups of workflows.
98+
* A log of all warnings can be found on the Dashboard page (last 10 warnings
99+
for each workflow).
100+
101+
.. image:: ../reference/changes/warning-triangles.gif
102+
:align: center
103+
:width: 95%
104+
105+
|
106+
107+
108+
"Ghost" Tasks
109+
^^^^^^^^^^^^^
110+
111+
The GUI and Tui now present some tasks in grey:
112+
113+
.. image:: ../reference/changes/ghost-tasks.png
114+
:align: center
115+
:width: 65%
116+
117+
|
118+
119+
These are "ghost" tasks, they indicate something is that isn't presently there:
120+
121+
* Waiting tasks that the scheduler hasn't moved onto yet (i.e.
122+
:term:`inactive tasks <active task>` that are waiting).
123+
* Tasks which have been removed (i.e. ``cylc remove``).
124+
* Tasks which have been triggered in the ``none`` flow, so don't influence
125+
the evolution of the workflow.
126+
127+
They appear in grey, if you click on these tasks, you will see the text
128+
"Flows: None".
129+
130+
This helps to identify waiting :term:`active tasks <active task>`
131+
(which aren't ghosts).
132+
These are the tasks which Cylc is currently trying to schedule, but are waiting
133+
for something, typically:
134+
135+
* A task prerequisite to be satisfied.
136+
* An xtrigger or ext-trigger to be satisfied.
137+
* Someone to :term:`resume <held task>` them.
138+
139+
55140
Compatibility Mode
56141
^^^^^^^^^^^^^^^^^^
57142

@@ -63,6 +148,38 @@ Any workflows that are still using ``suite.rc`` files will need to be upgraded
63148
to ``flow.cylc`` before they are able to run with 8.7.0.
64149

65150

151+
GUI Layout
152+
^^^^^^^^^^
153+
154+
The Cylc GUI now preserves tab layout between sessions.
155+
156+
When working on a workflow, we can open multiple tabs (tree, table, graph, etc)
157+
and tile them up in a layout. If you switch to another workflow, switch back,
158+
your layout will be restored.
159+
160+
However, with Cylc 8.4, if you refreshed the browser or opened the GUI in a new
161+
tab, the layout would be lost.
162+
163+
With Cylc 8.5, the layout will always be restored.
164+
165+
166+
GUI Log View
167+
^^^^^^^^^^^^^
168+
169+
The GUI now picks the default job log file to display based on the task state:
170+
171+
* failed -> ``job.err``
172+
* submit-failed -> ``job-activity.log``
173+
* otherwise -> ``job.out``
174+
175+
This speeds up the loading of the log file because the GUI doesn't have to
176+
wait for a listing of available log files before picking one to view.
177+
178+
Additionally, the log view now has an auto scroll feature which follows the
179+
end of the file (useful for viewing the file whilst it is being written), and
180+
a scroll-to-top button.
181+
182+
66183
Cylc Tui
67184
^^^^^^^^
68185

@@ -72,6 +189,8 @@ Cylc Tui
72189
:align: center
73190
:width: 65%
74191

192+
|
193+
75194
Configure your ``$EDITOR``, ``$GEDITOR`` and ``$PAGER`` environment variables
76195
to change which tool is used.
77196

@@ -80,6 +199,10 @@ to change which tool is used.
80199
Make sure your configured command waits for the tool to be closed before
81200
exiting, e.g. use ``GEDITOR=gvim -f`` rather than ``EDITOR=gvim``.
82201

202+
Additionally, Tui now displays task states and :term:`flow` numbers in
203+
context menus for improved clarity / accessibility.
204+
205+
83206
Cylc Reload
84207
^^^^^^^^^^^
85208

@@ -92,6 +215,63 @@ settings for an in-progress workflow.
92215
:ref:`global-configuration`
93216

94217

218+
Cylc Set
219+
^^^^^^^^
220+
221+
The ``cylc set`` command can now be used to satisfy xtrigger prerequisites.
222+
For example if the task ``2026/get_data`` is
223+
:term:`clock triggered <clock trigger>`, you might satisfy this prerequisite
224+
like so:
225+
226+
.. code-block:: console
227+
228+
$ cylc set myworkflow//2026/get_data --pre xtrigger/wall_clock
229+
230+
The default behaviour of the ``cylc set`` command has also changed for tasks
231+
where success is :term:`optional <optional output>`, it will now set the
232+
``succeeded`` output (and any other outputs that are required in the event of
233+
task success) which is more consistent with the behaviour for tasks where
234+
success is required.
235+
236+
237+
Cycle Share Directory
238+
^^^^^^^^^^^^^^^^^^^^^
239+
240+
A new per-cycle share directory has been added, ``share/cycle/<cycle>``.
241+
242+
This directory is now automatically created and provides a convenient location
243+
for tasks to share cycle-specific data. See also :ref:`Shared Task IO Paths`.
244+
245+
This largely replicates the functionality of the Rose :envvar:`ROSE_DATAC`
246+
environment variable, but does not require the use of ``rose task-env``.
247+
248+
249+
Cylc UI Server
250+
^^^^^^^^^^^^^^
251+
252+
The dependency stack of the Cylc UI Server (used to serve the Cylc GUI) has
253+
been overhauled.
254+
255+
This allows the UI Server to be installed with newer versions of Python then
256+
the old dependency stack allowed.
257+
258+
* Previously the UI Server worked with Python 3.8-3.9.
259+
* It now works with Python 3.9 or higher.
260+
261+
This will likely bring efficiency improvements.
262+
263+
Additionally, the Cylc UI Server has now been configured to send "heartbeat"
264+
pings down its open websocket connections. This helps to prevent web proxies
265+
from closing Cylc GUI connections when workflows are idle, preventing erroneous
266+
GUI disconnects.
267+
268+
For more information see the
269+
`Cylc configuration <https://github.com/cylc/cylc-uiserver/blob/3ab99ecec09077132fa912d0752a06b14764f05d/cylc/uiserver/jupyter_config.py#L63-L66>`_
270+
and the docs for the ``websocket_ping_interval`` and ``websocket_ping_timeout``
271+
configurations in
272+
`tornado <https://www.tornadoweb.org/en/stable/web.html#tornado.web.Application.settings>`_.
273+
274+
95275
Cylc 8.4
96276
--------
97277

56.8 KB
Loading
1.69 MB
Loading
4.6 MB
Loading

src/user-guide/interventions/index.rst

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,48 @@ Re-Run a Task
8888
$ cylc trigger <workflow>//<task>
8989
9090
91+
.. _interventions.re-run-multiple-tasks:
92+
9193
Re-Run Multiple Tasks
9294
---------------------
9395

9496
:Example:
95-
I need to make changes to a task, then re-run it and everything downstream
96-
of it.
97+
I need to re-run a few tasks in order.
98+
99+
:Solution:
100+
Determine the tasks you want to re-run and trigger all of them at the
101+
same time.
102+
103+
We often want to
104+
:ref:`edit the tasks configuration <interventions.edit-a-tasks-configuration>`
105+
before doing this.
106+
107+
.. tab-set::
108+
109+
.. tab-item:: GUI
110+
:sync: gui
111+
112+
.. image:: ./../../reference/changes/group-trigger.gif
113+
:width: 75%
114+
115+
.. tab-item:: CLI
116+
:sync: gui
117+
118+
.. code-block:: console
119+
120+
$ cylc trigger <workflow>// \
121+
> //<cycle-1>/<task-2> \
122+
> //<cycle-2>/<task-2> \
123+
> ...
124+
125+
126+
.. _interventions.reflow:
127+
128+
Re-Run A Task And Everything After It
129+
-------------------------------------
130+
131+
:Example:
132+
I want to reconfigure a task, then re-run it and all tasks downstream of it.
97133

98134
:Solution:
99135
:ref:`Edit the tasks configuration <interventions.edit-a-tasks-configuration>`,
@@ -104,7 +140,7 @@ Re-Run Multiple Tasks
104140
.. tab-item:: GUI
105141
:sync: gui
106142

107-
.. image:: re-run-multiple-tasks.gui.gif
143+
.. image:: reflow.gui.gif
108144
:width: 75%
109145

110146
.. tab-item:: CLI
@@ -114,6 +150,17 @@ Re-Run Multiple Tasks
114150
115151
$ cylc trigger --flow=new <workflow>//<cycle>/<task>
116152
153+
.. warning::
154+
155+
Tasks which have run before your trigger command will not have run in the
156+
new flow. As a result, you may want to manually set task outputs to allow
157+
the new flow to continue.
158+
159+
You can achieve this by setting the
160+
:ref:`outputs <interventions.set-task-outputs>` of these tasks, or
161+
satisfying the :ref:`prerequisites <interventions.set-task-prerequisites>`
162+
of the tasks in the new flow.
163+
117164

118165
Re-Run All Failed Tasks
119166
-----------------------
File renamed without changes.

0 commit comments

Comments
 (0)