Cylc

Cylc: A Workflow Engine for Cycling Systems - Published in JOSS (2018)

https://github.com/cylc/cylc-flow

Science Score: 59.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: ieee.org, joss.theoj.org, zenodo.org
  • Committers with academic emails
    8 of 52 committers (15.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.6%) to scientific vocabulary

Keywords

cycling-workflows cylc hacktoberfest job-scheduler metascheduler python scheduler scheduling workflow workflow-automation workflow-engine workflow-management

Keywords from Contributors

mesh
Last synced: 6 months ago · JSON representation

Repository

Cylc: a general purpose workflow engine with a gift for cycling

Basic Info
  • Host: GitHub
  • Owner: cylc
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Homepage: https://cylc.github.io
  • Size: 125 MB
Statistics
  • Stars: 355
  • Watchers: 14
  • Forks: 95
  • Open Issues: 558
  • Releases: 112
Topics
cycling-workflows cylc hacktoberfest job-scheduler metascheduler python scheduler scheduling workflow workflow-automation workflow-engine workflow-management
Created over 14 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Security

README.md

<div align="center"

PyPI Anaconda-Server Badge chat forum Documentation

Cylc (pronounced silk) is a general purpose workflow engine that also manages cycling systems very efficiently. It is used in production weather, climate, and environmental forecasting on HPC, but is not specialized to those domains.

Quick Start

Installation | Documentation

```bash

install cylc

conda install cylc-flow

extract an example to run

cylc get-resources examples/integer-cycling

install and run it

cylc vip integer-cycling # vip = validate, install and play

watch it run

cylc tui integer-cycling ```

The Cylc Ecosystem

  • cylc-flow - The core Cylc Scheduler for defining and running workflows.
  • cylc-uiserver - The web-based Cylc graphical user interface for monitoring and controlling workflows.
  • cylc-rose - Provides integration with Rose.

Migrating From Cylc 7

Migration Guide | Migration Support

Cylc 8 can run most Cylc 7 workflows in compatibility mode with little to no changes, go through the migration guide for more details.

Quick summary of major changes:

  • Python 2 -> 3.
  • Internal communications converted from HTTPS to ZMQ (TCP).
  • PyGTK GUIs replaced by:
    • Terminal user interface (TUI) included in cylc-flow.
    • Web user interface provided by the cylc-uiserver package.
  • A new scheduling algorithm with support for branched workflows.
  • Command line changes:
    • cylc run <id> -> cylc play <id>
    • cylc restart <id> -> cylc play <id>
    • rose suite-run -> cylc install; cylc play <id>
  • The core package containing Cylc scheduler program has been renamed cylc-flow.
  • Cylc review has been removed, the Cylc 7 version remains Cylc 8 compatible.

Citations & Publications

DOI JOSS CISE

Copyright and Terms of Use

License

Copyright (C) 2008-2025 NIWA & British Crown (Met Office) & Contributors.

Cylc is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Cylc is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Cylc. If not, see GNU licenses.

Contributing

Contributors Commit activity Last commit

Contributions welcome:

This repository contains some code that was generated by GitHub Copilot.

Owner

  • Name: The Cylc Workflow Engine
  • Login: cylc
  • Kind: organization
  • Email: hilary.oliver@niwa.co.nz
  • Location: Wellington, New Zealand

A workflow engine for cycling systems.

GitHub Events

Total
  • Create event: 115
  • Issues event: 244
  • Release event: 8
  • Watch event: 26
  • Delete event: 112
  • Issue comment event: 1,144
  • Push event: 309
  • Pull request review comment event: 1,281
  • Pull request event: 584
  • Pull request review event: 1,684
  • Fork event: 4
Last Year
  • Create event: 117
  • Issues event: 245
  • Release event: 8
  • Watch event: 26
  • Delete event: 116
  • Issue comment event: 1,148
  • Push event: 315
  • Pull request review comment event: 1,288
  • Pull request event: 585
  • Pull request review event: 1,695
  • Fork event: 4

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 15,137
  • Total Committers: 52
  • Avg Commits per committer: 291.096
  • Development Distribution Score (DDS): 0.463
Past Year
  • Commits: 518
  • Committers: 14
  • Avg Commits per committer: 37.0
  • Development Distribution Score (DDS): 0.716
Top Committers
Name Email Commits
Hilary Oliver h****r@g****m 8,124
Oliver Sanders o****s@m****k 1,559
Matt Shin m****n@m****k 1,001
Ronnie Dutta r****a@m****k 982
Tim Pillinger t****r@m****k 834
Ben Fitzpatrick b****k@m****k 645
Andrew Clark a****k@m****k 425
Bruno Kinoshita k****w@a****g 342
Mel Hall m****l@m****k 250
David Sutherland d****d@n****z 182
Sadie Bartholomew s****w@m****k 138
Declan Valters d****s@e****k 83
Martin Ryan m****n@b****u 76
github-actions[bot] g****s@n****m 72
Tomek Trzeciak t****k@m****k 51
Tim Whitcomb t****b@n****l 44
Prasanna Challuri P****i@n****z 40
dependabot[bot] 4****] 36
Samuel Gaist s****t@i****h 33
David Matthews d****s@m****k 31
Luis Kornblueh l****h@z****e 31
Kerry Day k****y@m****k 29
Scott Wales s****s@b****u 26
Thomas Coleman t****n@b****u 21
John Haiducek j****e@g****m 8
Scott Wales s****s@u****u 8
Mark Dawson m****n@m****k 7
Gilliano Menezes g****s@g****m 7
Jonny Williams j****s@n****z 5
Lois Huggett l****t@m****k 4
and 22 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 575
  • Total pull requests: 1,477
  • Average time to close issues: 8 months
  • Average time to close pull requests: 21 days
  • Total issue authors: 38
  • Total pull request authors: 21
  • Average comments per issue: 2.6
  • Average comments per pull request: 2.17
  • Merged pull requests: 1,127
  • Bot issues: 1
  • Bot pull requests: 420
Past Year
  • Issues: 181
  • Pull requests: 641
  • Average time to close issues: 16 days
  • Average time to close pull requests: 8 days
  • Issue authors: 20
  • Pull request authors: 12
  • Average comments per issue: 0.82
  • Average comments per pull request: 1.41
  • Merged pull requests: 464
  • Bot issues: 1
  • Bot pull requests: 196
Top Authors
Issue Authors
  • oliver-sanders (220)
  • hjoliver (122)
  • ColemanTom (61)
  • wxtim (49)
  • MetRonnie (49)
  • dpmatthews (12)
  • dwsutherland (11)
  • elliotfontaine (5)
  • jfrost-mo (4)
  • jarich (4)
  • sadielbartholomew (4)
  • kinow (3)
  • ScottWales (2)
  • jamesgrimmett (2)
  • uwagura (2)
Pull Request Authors
  • github-actions[bot] (386)
  • oliver-sanders (318)
  • MetRonnie (275)
  • wxtim (221)
  • hjoliver (142)
  • dwsutherland (48)
  • dependabot[bot] (34)
  • markgrahamdawson (12)
  • ColemanTom (11)
  • psa (8)
  • ChrisPaulBennett (4)
  • ScottWales (4)
  • jfrost-mo (2)
  • TomekTrzeciak (2)
  • pdearnshaw (2)
Top Labels
Issue Labels
bug (228) small (92) could be better (55) question (41) investigation (19) bug? (12) efficiency (11) doc (9) wontfix (5) superseded (5) speculative (5) non-cylc bug (4) duplicate (4) infrastructure (4) dependencies (4) needs reproducing (4) testing (2) BLOCKED (2) code refactor (2) priority-1 (2) invalid (2) platforms (1) sync (1)
Pull Request Labels
small (512) sync (309) bug (272) doc (85) could be better (80) infrastructure (77) dependencies (60) release (38) superseded (26) efficiency (25) schema change (18) bug? (18) config change (12) code refactor (10) db change (8) sod-follow-up (7) non-cylc bug (7) question (6) duplicate (5) invalid (5) testing (4) BLOCKED (3) wontfix (3) investigation (2) tutorial-workflows (2) priority-1 (2) POC (1)

Packages

  • Total packages: 2
  • Total downloads: unknown
  • Total dependent packages: 6
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 21
conda-forge.org: cylc-flow-base

Cylc ("silk") is a workflow engine for cycling systems - it orchestrates distributed workflows of interdependent cycling tasks that may continue to run indefinitely. There are two cylc-flow packages: * `cylc-flow`: The full installation, recommended for most uses. * `cylc-flow-base`: A minimal package, recommended for installation on job hosts where the full range of user-facing commands is not required. The `cylc report-timings` command requires two additional dependencies which you must specify manually if you want this functionality: * `pandas >=1.0,<2` * `matplotlib-base`

  • Homepage: https://cylc.org/
  • License: GPL-3.0-only
  • Latest release: 8.0.3
    published over 3 years ago
  • Versions: 8
  • Dependent Packages: 3
  • Dependent Repositories: 0
Rankings
Dependent packages count: 15.6%
Forks count: 18.4%
Average: 23.0%
Stargazers count: 23.8%
Dependent repos count: 34.0%
Last synced: 6 months ago
conda-forge.org: cylc-flow

Cylc ("silk") is a workflow engine for cycling systems - it orchestrates distributed workflows of interdependent cycling tasks that may continue to run indefinitely. There are two cylc-flow packages: * `cylc-flow`: The full installation, recommended for most uses. * `cylc-flow-base`: A minimal package, recommended for installation on job hosts where the full range of user-facing commands is not required. The `cylc report-timings` command requires two additional dependencies which you must specify manually if you want this functionality: * `pandas >=1.0,<2` * `matplotlib-base`

  • Homepage: https://cylc.org/
  • License: GPL-3.0-only
  • Latest release: 8.0.3
    published over 3 years ago
  • Versions: 13
  • Dependent Packages: 3
  • Dependent Repositories: 0
Rankings
Dependent packages count: 15.6%
Forks count: 18.4%
Average: 23.0%
Stargazers count: 23.8%
Dependent repos count: 34.0%
Last synced: 6 months ago

Dependencies

.github/workflows/1_create_release_pr.yml actions
.github/workflows/2_auto_publish_release.yml actions
.github/workflows/bash.yml actions
.github/workflows/shortlog.yml actions
.github/workflows/test_conda-build.yml actions
.github/workflows/test_fast.yml actions
.github/workflows/test_functional.yml actions
.github/workflows/test_manylinux.yml actions
.github/workflows/test_tutorial_workflow.yml actions
.github/workflows/update_copyright.yml actions
dockerfiles/cylc-dev/Dockerfile docker
dockerfiles/cylc-remote/Dockerfile docker
.github/workflows/branch_sync.yml actions
.github/workflows/build.yml actions
pyproject.toml pypi
setup.py pypi