Conda Environments

Cylc consists of multiple components.

This Conda environment will provide you with the “recommended” installation of all components:

name: cylc-8.4
channels:
  - conda-forge
dependencies:
  - cylc-flow =8.4
  - cylc-uiserver
  - cylc-rose
  - metomi-rose

The following sections outline alternatives for finer control over installation.

Cylc Flow

The simplest Cylc installation consists only of Cylc Flow:

name: cylc-flow
channels:
  - conda-forge
dependencies:
  - cylc-flow =8.4

Tip

We suggest installing Cylc Flow at a “minor” version (e.g. 8.1 rather than 8.1.2) to pick up the latest “maintenance” release.

If you do not specify your Python version you will be provided with the most recent compatible one.

If you are installing Cylc on multiple machines across a network it is advisable to keep the Python versions consistent.

You can do this by adding Python into the environment at a particular version:

name: cylc-flow-with-python-3.7
channels:
  - conda-forge
dependencies:
  - python =3.7
  - cylc-flow =8.4

Cylc Flow provides a cut-down package containing only the bare essentials called cylc-flow-base.

This may be useful for installing onto job hosts where client-facing extra features are not of interest:

name: cylc-flow-base
channels:
  - conda-forge
dependencies:
  - cylc-flow-base =8.4

Cylc UIServer

The default Cylc UIServer package comes with Jupyter Hub and the Configurable HTTP Proxy (required by Jupyter Hub) bundled:

name: cylc-uiserver
channels:
  - conda-forge
dependencies:
  - cylc-flow =8.4
  - cylc-uiserver

Tip

We suggest not specifying the version of other Cylc components to (i.e. Cylc UIServer and Cylc Rose). This will pick up the most recent version compatible with the specified Cylc Flow version.

Jupyter Hub is only required for multi-user setups, the Cylc UIServer can be run as a standalone application.

To exclude Jupyter Hub from the installation use cylc-uiserver-base:

name: cylc-uiserver-without-jupyterhub
channels:
  - conda-forge
dependencies:
  - cylc-flow =8.4
  - cylc-uiserver-base

If you want to use Jupyter Hub with an alternative proxy use cylc-uiserver-hub-base (this depends on jupyterhub-base, see the Jupyter Hub documentation for details):

name: cylc-uiserver-with-traefik-proxy
channels:
  - conda-forge
dependencies:
  - cylc-flow =8.4
  - cylc-uiserver-hub-base
  - pip
  - pip:
      - jupyterhub-traefik-proxy

Cylc Rose

For working with Rose add metomi-rose and cylc-rose (the bridge between Cylc & Rose):

name: cylc-rose
channels:
  - conda-forge
dependencies:
  - cylc-flow =8.4
  - cylc-rose
  - metomi-rose

We will look at providing more installation options for Rose in the near future.

Adding Cylc To Your Conda Package

If you want to publish a package (e.g. to Conda Forge) that depends on Cylc, consider using the minimal package (e.g. cylc-flow-base) as a dependency to allow the installer to maintain flexibility over the installation.

Working With Other Conda Channels

Cylc projects are published to Conda Forge and the above environments install all dependencies from Conda Forge.

If you want to install other dependencies (e.g. Python), from other channels (e.g. Anaconda), list the dependency explicitly and place the channel above the Conda Forge channel.

name: cylc-flow
channels:
  - defaults
  - conda-forge
dependencies:
  - python
  - cylc-flow =8.4