Configuration Changes at Cylc 8

Some configurations have moved or been renamed at Cylc 8.

The old configurations are now deprecated, but still supported. These will be highlighted upon cylc validate after renaming suite.rc to flow.cylc.

Because some workflows use Jinja2 or EmPy branches which may not be switched on at the time of the initial cylc validate we have also provided a script, cylc lint -r 728 to check for Cylc 7 syntax which may be deprecated.

There are some examples below of how to upgrade:

Graph

Cylc 7 had unnecessarily deep nesting of graph config sections:

[scheduling]
    initial cycle point = now
    [[dependencies]]
        [[[R1]]]
            graph = "prep => foo"
        [[[R/^/P1D]]]
            graph = "foo => bar => baz"

Cylc 8 cleans this up:

[scheduling]
    initial cycle point = now
    [[graph]]
        R1 = "prep => foo"
        R/^/P1D = "foo => bar => baz"

Fixing deprecation warnings

Take the following example flow.cylc file:

[cylc]
   UTC mode = True
[scheduling]
    initial cycle point = 2000-01-01
    [[dependencies]]
        [[[R1]]]
            graph = foo => bar
[runtime]
    [[foo, bar]]

This workflow will pass validation at Cylc 8, but will give warnings:

$ cylc validate .
WARNING - deprecated items were automatically upgraded in "workflow definition"
WARNING -  * (8.0.0) [cylc] -> [scheduler] - value unchanged
WARNING - deprecated graph items were automatically upgraded in "workflow definition":
   * (8.0.0) [scheduling][dependencies][X]graph -> [scheduling][graph]X - for X in:
         R1
Valid for cylc-8.0.0

The warnings explain what needs to be fixed. After making the following changes, the workflow will validate without any warnings:

-[cylc]
+[scheduler]
     UTC mode = True
 [scheduling]
     initial cycle point = 2000-01-01
-    [[dependencies]]
-        [[[R1]]]
-            graph = foo => bar
+    [[graph]]
+        R1 = foo => bar
 [runtime]
     [[foo, bar]]

Tip

Later Cylc releases will not be able to upgrade obsolete Cylc 7 configurations. It’s a good idea to address warnings as part of routine workflow review and maintenance to avoid problems later on.

Platforms

At Cylc 7, job hosts were defined to indicate where a job should run. At Cylc 8, this has been replaced by Platforms.

 [runtime]
     [[foo]]
-        [[[job]]]
-            batch system = slurm
-        [[[remote]]]
-            host = hpc1.login.1
+        platform = hpc1

For a comprehensive list of valid configuration, see: Workflow Configuration and Global Configuration.