Minimum Python Version

We are looking to increase the minimum Python version requirement for Cylc and Rose from 3.7 to ~3.12.

Cylc and Rose presently support Python 3.7 (now long deprecated) and higher. The Cylc UI Server supports 3.8 - 3.9, however the 3.9 upper limit will shortly be resolved.

(More information on Python version lifespans)

Since 3.10 will all be end of life by the end of next year, we are looking to increase the minimum Python version. Rather than ratchet the version in a series of small steps, we are considering jumping straight to either Python 3.11 or 3.12. This will enable us to better exploit new language features and reduce maintenance overheads.

Since Cylc is usually installed via Conda (which automatically chooses the most recent compatible version of Python), we don’t expect that this change will impact Cylc deployments. However, this could, potentially, be a problem for sites that need to deploy Cylc into legacy environments in extreme cases where the conda-forge binaries are not compatible, e.g due to extremely old glibc.

If any sites believe that deploying Python 3.12 would be problematic, please get in contact.

1 Like

Update: Python 3.12 will become the minimum supported Python version for Cylc 8.6.0.

We don’t anticipate any further changes to the minimum supported Python version for some time after.