cylc-admin

cylc-8 Implementation Task List

DISCLAIMER: this page is largely for internal use by the Cylc team; completion dates given below are only estimates.

WARNING (30 October 2019): reduced team size will result in significant delays, but new dates have not been estimated yet.


Major Updates and Changes

Project Gantt Chart

Key

Ganntt Chart

(Refer below the Chart for details on some items).

o-------------------------------o-----------------------------------------------------------o-------------o
 C Y L C - 8 - T A S K S        | 2019                                                      | 2020
o-------------------------------o-----------------------------------------------------------o-------------o
DOCUMENTATION                   *JAN. FEB. MAR. APR. MAY. JUN. JUL. AUG. SEP. OCT. NOV. DEC.*JAN.| /  SEP. 
  Latex -> Sphinx               |...x|    |    |    |    |    |    |    |    |    |    |    |    | /      |
o-------------------------------o-----------------------------------------------------------o-------------o
CYLC TEST COVERAGE              *JAN. FEB. MAR. APR. MAY. JUN. JUL. AUG. SEP. OCT. NOV. DEC.*JAN.| /  SEP.  
  Reporting                     |....|x   |    |    |    |    |    |    |    |    |    |    |    | \      |
  Coverage > 80%                |  ..|..x |    |    |    |    |    |    |    |    |    |    |    | /      |
o-------------------------------o-----------------------------------------------------------o-------------o
ISODATETIME LIBRARY             *JAN. FEB. MAR. APR. MAY. JUN. JUL. AUG. SEP. OCT. NOV. DEC.*JAN.| /  SEP. 
  Python 3                      |...x|    |    |    |    |    |    |    |    |    |    |    |    | \      |
  packaging, PyPi               |  ..|.x  |    |    |    |    |    |    |    |    |    |    |    | /      |
o-------------------------------o-----------------------------------------------------------o-------------o
WORKFLOW SERVER (WFS) and CLI   *JAN. FEB. MAR. APR. MAY. JUN. JUL. AUG. SEP. OCT. NOV. DEC.*JAN.| /  SEP.  
  Python 3                      |   .|....|...x|    |    |    |    |    |    |    |    |    |    | \      | 
  Cherrypy -> ZeroMQ            |   .|....|...x|    |    |    |    |    |    |    |    |    |    | /      | 
  Command-line clients          |    |    |  ..|...o| ?  |    |    |    |    |    |    |    |    | \      | 
    old passphrase authe        |    |    |  .x|    |    |    |    |    |    |    |    |    |    | /      | 
    one-time token authe        |    |    |    |    |    |    |    |    |....|..? |    |    |    | \      |
    GraphQL API (rm REST endpts)|    |    |    |    |    |....|....|.?  |    |    |    |    |    | \      |
    session mgmt (CLI via Hub)  |    |    |    |    |    |    |    |    |    |    |    |...?|    | /      | (not critical)
  WS: ZeroMQ                    |    |    |    |    |   .|..o |    |    |    |    |    |    |    | /      |
  UI SERVER API                 |    |    |    |    |    |    |    |    |    |    |    |    |    | \      |
    design new data model       |    |    |    |  ..|...o|ooox|    |    |    |    |    |    |    | \      |
    serve new data model        |    |    |    |    | ...|...x|    |    |    |    |    |    |    | /      |
  Async event loop              |    |    |    |    |    |    |    |    |    |    |    |    |..? | \      | (not essential)
  PYTHON PACKAGING              |    |    |    |    |    |    |    |    |    |    |    |    |    | \      |
    pip, setup.py               |    |    |...o|oooo|x   |    |    |    |    |    |    |    |    | /      |
    Cylc available on PyPi      |    |    |   .| ooo|x   |    |    |    |    |    |    |    |    | \      |
    (N) namespacing             |    |    |    |   .|...x|    |    |    |    |    |    |    |    | \      |
o-------------------------------o-----------------------------------------------------------o-------------o
CYLC HUB VIA JUPYTERhUB         *JAN. FEB. MAR. APR. MAY. JUN. JUL. AUG. SEP. OCT. NOV. DEC.*JAN.| /  SEP.  
  Spawn UIS (Local host)        |    |...x|    |    |    |    |    |    |    |    |    |    |    | \      |
  Spawn UIS (Remote)            |    |    |....|...x|    |    |    |    |    |    |    |    |    | \      |
  User Authentication (PAM)     |    |  ..|x   |    |    |    |    |    |    |    |    |    |    | /      |
  User Authentication (LDAP?)   |    |  ..|x   |    |    |    |    |    |    |    |    |    |    | \      | (not important?)
  Server Trust (UIS-Hub)        |    |    |    |    |    |    |    |    |    |    |    |    |    | /      | (need to understnd)
  Session Management            |    |    |    |    |    |    |    |    |    |    |    |    |    | \      | (handled by J-Hub)
  Other-User View (by URL)      |    |    |    |  ..|x   |    |    |    |    |    |    |    |    | /      | 
  Other-User View (UI,JH Admin?)|    |    |    |    |    |    |    |    |    |    |  ..|..? |    | /      | 
  UI Server Authorization       |    |    |    |    |    |    |    |    |    |    |....|..? |    | /      |
  JupyterHub: Dep or Fork?      |    |    |  ..|....|...x|    |    |    |    |    |    |    |    | \      | (prob not fork)
o-------------------------------o-----------------------------------------------------------o-------------o
UI SERVER and UI                *JAN. FEB. MAR. APR. MAY. JUN. JUL. AUG. SEP. OCT. NOV. DEC.*JAN.| \J  SEP.  
  Vue.js app POC                |....|...x|    |    |    |    |    |    |    |    |    |    |    | /      |
  Hub Integration               |    |   .| .. |..x |    |    |    |    |    |    |    |    |    | \      |
  Manage multiple suites        |    |    |    | .  | ...|...x|    |    |    |    |    |    |    | /      |
  UI: Tornado GraphQL           |    |    |    |    | ...|x   |    |    |    |    |    |    |    | \      |
  UI: WebSocket                 |    |    |    |    |   .| .. | ..x|    |    |    |    |    |    | \      |
  UI Workflow State Views       |    |    |    |    |    |    |    |    |    |    |    |    |    | \      |
    table view (basic)          |    |    |    |  . | ...|x   |    |    |    |    |    |    |    | /      | (Not needed now)
    tree view (complete)        |    |    |    |    |  . | ...| ...|...o|    |    |    |    |    | /      |
    tree view (deployable)      |    |    |    |    |  . | ...|....|....|....|..o1|    |    | ...|./o2    |
    dot view                    |    |    |    |    |    |    |    |    |    |    |    | ..?|    | \      |
    graph view (basic)          |    |    |    |    |    |  . | .. | ...|...o|    |    |    |    | /      |
    graph view (selective)      |    |    |    |    |    |    |    |    | .. | .. | ...|...o|    | \      |
    other (adj. matrix etc.?)   |    |    |    |    |    |    |    |    |    |    |    | .  | ..?| /  ...o| (not req 8.0)
  SUB-SERVICES                  |    |    |    |    |    |    |    |    |    |    |    |    |    | \      |
    workflow scan               |    |    |    |    |    |    |    |    |    |    |    |    |    | /      | (now in GraphQL)
    stopped workflow scan       |    |    |    |    |    |    |    |    |    |    |...o|    |    | /      | (now in GraphQL)
    workflow start              |    |    |    |    |    |    |    |    |    |    |    |...o|    | \      | (note "rose s-r")
    "cylc review"               |    |    |    |    |    |    |    |  ..|...o|    |    |    |    | \      | (via UIS, owner)
    graph, validate, etc.       |    |    |   .|..oo|oo  |    |    |    |    |    |    |    |    | \      |
  Packaging UIS (python)        |    |    |    | .  | ...|..o |    |    |    |    |    |    |    | /      |
  Packaging UI  (upload npm)    |    |    |    |    |    |    |..o |    |    |    |    |    |    | /      |
  Fine-grained Authorization    |    |    |    |    |    |    |    |    |    |    |....|.?  |    | /      |
  UI Test framework?            |    |    |    |    |    |    |    |  ? |    |    |    |    |    | /      | 
  auto-shutdown                 |    |    |    |    |    |    |    |  ? |    |    |    |    |    | /      | 
o-------------------------------o-----------------------------------------------------------o-------------o
Initial System Integration      *JAN. FEB. MAR. APR. MAY. JUN. JUL. AUG. SEP. OCT. NOV. DEC.*JAN.| \  SEP.  
    Hub + UI Server             |    |   .| .. |...x|    |    |    |    |    |    |    |    |    | /      |
    UI Server + sub-services    |    |    |    | .  | ...|....|....| .  | .  | ?  |    |    |    | \      |
    UI Server + Workflow Service|    |    |    |   .|  ..|..ox|    |    |    |    |    |    |    | /      |
    Cylc-8a1                                              ......o
    Cylc-8a2                                                               ......o
o-------------------------------o-----------------------------------------------------------o-------------o
"rose suite-run"                *JAN. FEB. MAR. APR. MAY. JUN. JUL. AUG. SEP. OCT. NOV. DEC.*JAN.| \  SEP.  
    migration to Cylc           | .  | .  | .  |  . |  . |  . |  . |  . |  . | ...|...o|    |    | /      | (MS,TP)
    cluster support             |    |    |    |    |    |    |    |  ..|....|...o|    |    |    | /      |
o-------------------------------o-----------------------------------------------------------o-------------o
ROSE                            *JAN. FEB. MAR. APR. MAY. JUN. JUL. AUG. SEP. OCT. NOV. DEC.*JAN.| /  SEP.  
  rosie disco Tornado           |   .|....|....|...x|    |    |    |    |    |    |    |    |    | \      |
  Python 3                      |   .|....|....|....|...x|    |    |    |    |    |    |    |    | /      |
  Setup.py, packaging, PyPi     |    |    |    |....| .. | .. |.o  |    |    |    |    |    |    | \      |
  WS UI Rose Config-Edit        |    |    |    |    |    |    |    | ?  |    |    |    |    |    | \      |
  WS UI Rosie Go                |    |    |    |    |    |    |    | ?  |    |    |    |    |    | \      |
o-------------------------------o-----------------------------------------------------------o-------------o
PRODUCTION (Cylc-8 + Rose-2)    *JAN. FEB. MAR. APR. MAY. JUN. JUL. AUG. SEP. OCT. NOV. DEC.*JAN.| /  SEP.  
  Testing and Refinement        |    |    |    |    |    |    |    |    |    |    |    |    |....|.\. ...o| (hopefully June)
o-------------------------------o-----------------------------------------------------------o-------------o

Notes and Details

Communication and Collaboration:

Summary page created here.

Documentation (Sadie) - DONE

Python 3 Migration

Cylc Hub

(Martin, Hilary, Bruno)

Primary question: can we use JupyterHub “out of the box” as UI Server spawner?

Update (March): primary functionality demonstrated, with no need to modify JupyterHub code. Still remains to be seen whether UI support for other-user views and site authorization can be done with vanilla JupyterHub.

Workflow Service (WS)

(Mostly Oliver)

UI Server (UIS)

Design options described here

Decision: implement “MODEL 1” (UIS as WS mirror)

Initial design, therefore:

Also:

UI Presentation Layer (JS framework)

General Authentication issues (Sujata Hilary, + Damian and Martin ?)

Authorization

Services (priority order)

INTEGRATION

Integration Tests

Orthogonal Stuff (ONLY if we have enough resource)

Rose (MO)