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:


Cylc 7 had unnecessarily deep nesting of graph config sections:

    initial cycle point = now
            graph = "prep => foo"
            graph = "foo => bar => baz"

Cylc 8 cleans this up:

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

Fixing deprecation warnings

Take the following example flow.cylc file:

   UTC mode = True
    initial cycle point = 2000-01-01
            graph = foo => bar
    [[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:
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:

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


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.


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

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

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