Cylc 8 and its core software dependencies can be installed quickly from Conda Forge, into a conda environment; or from PyPI, into a Python 3 virtual environment.
Cylc 8.0rc2 is a Cylc 8 release candidate. It is largely complete and can be used to manage real workflows, but it has not yet been heavily tested by users. Python 2 based Cylc 7 is stable and still available if needed for production systems.
Please report migration issues to the Cylc Discourse Forum (7-to-8 topic).
Cylc runs on Unix-like systems including Linux and Mac OS.
Via Conda (recommended)
$ conda install -c conda-forge cylc-flow # install the browser-GUI (optional) $ conda install -c conda-forge cylc-uiserver # install Rose support (optional) $ conda install -c conda-forge cylc-rose metomi-rose
Via Pip (+npm)
Requires Python 3.7+
We recommend using a virtual environment.
$ pip install cylc-flow # install the browser-GUI (optional) # (requires nodejs & npm) $ pip install cylc-uiserver $ npm install configurable-http-proxy # install Rose support (optional) $ pip install cylc-rose metomi-rose
These dependencies are not installed by Conda or pip:
These dependencies are installed by Conda but not by pip (you can use npm):
configurable-http-proxy (optional: for multi-user setups)
Installing On Mac OS
Cylc requires some extra packages to function on Mac OS, we recommend installing them using the Homebrew package manager:
$ brew install bash coreutils gnu-sed
You will need to prepend the
gnu-sed installations to
$PATH, follow the instructions in the
brew install output.
at command) does not run out-of-the-box on Mac OS
for security reasons and must be manually enabled.
Newer version of Mac OS set
zsh as the default shell (as opposed to
bash). You do not need to change this but be aware that Cylc uses
bash (for task job scripts) which has a subtly different syntax.
For Mac OS Versions 10.15.0 (Catalina) and higher SSH is disabled by default. The ability to SSH into your Mac OS box may be required for certain Cylc installations.
See the Apple support page for instructions on enabling SSH.
For distributed and multi-user installation we recommend using Conda and installing Cylc components only where required.
For examples of Conda environments and installation options see Conda Environments for examples and details.
The Cylc Components
Cylc is split into a number of components providing different functionality:
Cylc install locations may fall into the following “roles”:
- User Machines
Where users write workflows and interact with the command line.
- Cylc Servers
Where Cylc schedulers run to manage workflows.
- Job Hosts
Where task jobs run, e.g. supercomputers or clusters
These roles may overlap. For example, Cylc servers can also be job hosts.
For Cylc to run, the correct environment must be activated. Cylc can not do this automatically. You may need to have multiple Cylc versions available too.
We recommend using a wrapper script named
cylc to activate the correct
environment before calling the environment’s
Cylc comes with a wrapper which can be extracted to a directory in your
cylc get-resources etc/cylc /path/to/cylc # should be in $PATH chmod +x /path/to/cylc
Cylc uses “sane and safe” defaults and is suitable for use “out of the box”. However, many things may need to be configured, e.g:
Prior to Cylc 8,
global.cylc was named
global.rc, but that name is
no longer supported.
Cylc task job scripts are bash scripts, which is good for manipulating files
and processes, They invoke
bash -l to allow environment configuration in
Sites and users should ensure their bash login scripts configure the environment correctly for Cylc and do not write anything to stdout.