Cylc logo

Cylc (said ‘silk’) is a work flow engine required by Rose (similar to work load managers like Torque and LSF). There is a help website for Cylc where you can post issues. By the way, be aware that Cylc uses a particular set of terms with specific meanings (e.g. 'active task', 'workflow', 'daemon') listed in the official Cylc glossary

For general information on Rose and Cylc as used in the UK's UM/Momentum system, see here. Official Cylc tutorials are at Cylc tutorials. The tutorials are designed to be self led, but if you need help learners can ask questions at http://cylc.discourse.group .

 

STEP 0: Check whether Cylc is already installed.

Firstly, you need Python at least version 3.8 for this, so please check that using:

python --version

Next, check whether you have Cylc already:

cylc check-software

If you get "-bash: cylc: command not found", then you need to install Cylc. If Cylc has already been installed on your system, this will give you a message saying "Core requirements: OK". You don't need "Full-functionality": partial functionality is fine (e.g. you might be missing the PyGraphviz, Sphinx or PyGTK libraries, but this is OK). It'll also warn you if you are missing Python itself (you need vn>=2.6).

 

STEP 1 *** SKIP THIS STEP IF CYLC ALREADY INSTALLED ***:

Firstly, make sure that Rose is NOT installed (do pip uninstall metomi-rose cylc-rose) otherwise there may be problems with keyring versions, e.g. "metomi-rose 2.4.2 requires keyring==23.*, but you have keyring 24.2.0 which is incompatible").

Then, install Cylc using these commands from a bash terminal (instructions from https://cylc.github.io/cylc-doc/stable/html/installation.html ):

   cd ~/.local

   pip install cylc-flow

 

If you are using Python v<3.12 and you get error "ModuleNotFoundError: No module named 'importlib_metadata'" then do:
 (1) Either "pip install importlib.metadata" (for Python >3.8) or "pip install importlib_metadata" (otherwise)
 and then (2) If Python >3.8, change line 49 of ~/.local/lib/python3.11/site-packages/cylc/flow/scripts/cylc.py, change "if sys.version_info[:2] > (3, 11):" to "if sys.version_info[:2] > (3, 10):"

 

   pip install cylc-uiserver

   cd ~

 

You should notice the following directories have been modified: .local/bin, .local/lib and .local/include.

 

STEP 2 *** SKIP THIS STEP IF CYLC ALREADY INSTALLED ***:

   chmod -R 755 ~/.local

Run your .bashrc file (or log off and log in again):

   . ~/.bashrc

 

STEP 3: Now check the installation:

   cylc --version

(being in 'detached HEAD' state is fine)

   cylc check-software

(you only need the core functionality to be OK).

 

 

All done: Cylc should be installed (typing CYLC_EXEC=$(which cylc);echo $CYLC_EXEC will tell you where it is installed, if you are interested).