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
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:
[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
[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]]
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.
[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.