Set succeeded (cylc7) vs set-outputs && remove vs skip (8.3+)

Hi,

I wanted to check something.

In Cylc8, the near-enough-to-equivalent of Cylc7’s reset state to succeeded is cylc set-outputs && cylc remove? But, with the skip functionality in Cylc 8.3, would it instead be recommended to skip the task/family instead?

Then, in the UI, will the skip option appear in the task menu and the top level workflow menu so you can easily skip one task or many tasks?

It depends what you want.

In 8.3 cylc set-outputs becomes cylc set which can:

  • set both outputs and prerequisites
  • if setting outputs, that also contributes to completion of incomplete tasks, in which case you might not need to use remove or skip

Skip may be more appropriate for skipping over larger chunks of the graph.

I’m not sure we’ve thought deeply about presentation of skip mode in the UI yet.

Can you expand on your second dot point? Does the new cylc set command if you had a task failed, and do cylc set on it, it could self-remove it from the graph?

Yes.

R1 = "foo => bar"

Here, foo is required to succeed (i.e., it’s not foo:succeed? => bar) so if it fails at run time it will be retained in the active window of the scheduler as an incomplete task (which will cause a stall).

If you then cylc set its success output (the default is to set all required outputs), that will enable bar to trigger, and it will complete the foo:succeed output (not just “proceed as if it was completed” as is currently the case). Then with foo completed, the scheduler can forget the task as no longer needed.

Hope that makes sense.

Yes, sounds great, thanks.