Cylc users: what do you think about the current, & proposed new, Cylc (G)UI?

We are currently working on Cylc 8, which will have some major differences from Cylc 7, based on modern technologies:

  • A new architecture (as in this schematic),
  • And an in-browser UI to replace the PyGTK desktop GUIs.

We have thought a lot about the new UI ourselves, but we would also like to get honest feedback from users on the current Cylc GUIs and/or our proposed UI design (as covered below).

If you have any thoughts or suggestions, please let us know by creating a new Discourse Topic under the ‘Cylc Development’ category with ‘UI Feedback:’ at the start of the title.

Disclaimer: we will consider all feedback, but please note that we are trying to design an interface to suit a large & diverse userbase, & we may not be able act on all suggestions. Current Cylc server internals - specifically the “task pool” - also limit our suite status display options to some extent (until Cylc 9).


The current (Cylc 7 & previous) GUIs (including Cylc Review)

This refers to any Cylc aspect that is outside of the command-line:

  • gcylc (including specific views: graph view, tree/text view, dot view);
  • gscan;
  • cylc graph;
  • Cylc Review (formerly Rose Bush).

including how they inter-relate. Feedback could include what you:

  • Find useful or useless (e.g. regularly or rarely/never use);
  • Like or dislike;
  • Find (un)clear, (un)readable, fast/slow, well-organised/cluttered…
  • Want to be able to do but can’t &/or workarounds you use in such cases;
  • Think would be a useful enhancement.

Comments could relate to factors such as:

  • functionality & services;
  • widgets (buttons, menus etc.);
  • style (layout, look-&-feel, themes, customisation potential…);
  • performance (speed, error or warning frequency & handling…);
  • accessibility.

Our proposal for the Cylc 8 UI

Our proposal, as of the time of posting (but evolving), as outlined here, is not a rigid plan but a draft for the new UI, which we hope to tweak in response to user feedback.

(Please do not let our proposal constrain your own thoughts for what an ideal Cylc UI would look like; if you envisage something completely different, please tell us about it!)

Here is a mock-up of our proposal for the Cylc 8 UI design, showing it as it would appear in a browser tab:

A more detailed document on our design plans (as of the time of posting) is also available; it opens from here to a PDF document. It contains further mock-ups & outlines proposed enhancements.

Key differences between our proposal & the current (most recent i.e. 7.8.X) GUIs (+ Cylc Review) are:

  • An integrated design incorporating all of the Cylc GUIs into one;
  • A simplified user interface;
  • The ability to quickly switch between suites in the same GUI window;
  • A responsive & mobile-friendly design;
  • Display “themes” for accessibility.

2 Likes

I’ve asked my colleagues to have a look, but I just want to give a :+1: to what you’ve got so far. I am impressed with your vision!

3 Likes

Thanks Jacinta! I’m glad (& it is useful) to hear that you like the proposals.

Nice! Really like the integrated tool, particularly as it is web based!

2 Likes

Hi, it certainly looks like you are heading in a good direction! Here is a bit of feedback for you… in no particular order:

  1. I love the multiple suites in one window idea. At the Met Office I used the little applet on my desktop when I was running multiple suites. This layout is a great replacement for that.

  2. At first glance everything looks very busy on the mock-ups (and more particular the pdf is too compactly full of stuff for me to really take it in), and I think it would be much more instructive to see examples with a full NWP suite rather than an extremely simple FOOBAR suite! E.g. the bit in the graph where the task squares go in across in a line - that’s all very well with two tasks in the family, but what will it look like with 20 tasks?

  3. It would be nice to see some “review” output - I personally dislike rose bush for various reasons, so would be interested to see what the replacement will look like

  4. The one thing that I have always wanted is the ability to “rerun all failed tasks in a family” - this would be particularly useful for rose stem

  5. I would be interested to know how the GUI will respond to a “rose suite-run --reload” - currently as I understand it, this fires up a new GUI if the suite feels that it needs it (e.g. if you change the walltime for a task) but that if you use an old gui window you have to “reload suite definition” to pick up the change.

  6. In terms of what I use, I always use the text view, I rarely use the graph view, but when I do it is because I need that functionality. I have never once used the dot view. I’ve never used two views simultaneously. I have used most of the other functionality under View and Control, apart from Nudge. Maybe there should be a survey of users to see what things people do or don’t find useful?

  7. Can we have a “heritage” colour scheme for those of us who like green=run? :wink:

  8. I can’t work out whether this is the case or not, but it will be really useful to be able to see dormant suites, and ones in the register which slow everything up but can easily accumulate if you don’t realise they are still hanging around. I think this will really help with that, if I read it correctly.

2 Likes

Ha ha, @jarich as you can see I just managed to post this above :smiley: Maybe you can delete this post. Sorry for the confusion!

1 Like

Hi Fiona,

Thank you very much for the detailed feedback, that is really helpful for us.

We’ve noted all of your comments, but just wanted to follow up on a few points to understand your thoughts further, & also elaborate on some question you raised.


  1. … it will be really useful to be able to see dormant suites, and ones in the register

Yes, sorry if it wasn’t fully clear, but we do plan to show these: if you look to the mock-up image from my initial post here, on the ‘gscan’-like side bar at the left there are some greyed-out suites listed at the bottom, with ‘stop’ symbols to the left, to indicate dormant suites. Otherwise, ‘play’ & ‘pause’ symbols for non-greyed-out suites listed convey running or held suites.

Saying that, others have suggested they wouldn’t want to see those because they have so many suites that are stopped, or registered but never run, that it would be undesired “clutter” to see them, so we will support a means to hide or filter out these, too.

  1. Can we have a “heritage” colour scheme for those of us who like green=run?

I am not sure if we will have a built-in colour theme with green for the running state, but we will still support customisation for colour themes so that you could easily customise the colours as you wish.

However, whether ‘green’ should indicate ‘running’ or ‘succeeded’ has emerged as a point of contention over the past years! I guess generally green indicates some sort of ‘happy’ state, hence either task state makes sense as green. If enough people indicate they prefer green for ‘running’, we could change the ‘Normal’ default colour theme as such.

  1. … Maybe there should be a survey of users to see what things people do or don’t find useful?

Results from something like this would certainly be helpful for us to know, but sadly we doubt we could get enough people to respond to such a survey to get any meaningful results. However, we will note preferences if expressed, such as your own, & may try out a survey at some point.

What we have already done, on a similar vein, is extracted the settings set by users across the Met Office in their gcylc.rc GUI configuration files, to gauge what they find useful enough to set as their default. That was low-hanging fruit, since we auto-generated that information via a script. The results are reported here, if you are interested to see.

  1. I would be interested to know how the GUI will respond to a “rose suite-run --reload” …

Firstly, the rose suite-run command itself will be migrated to Cylc, so that all suites (i.e. those managed using Rose, not just with Cylc standlone) will start up (or reload, or restart, etc., with previous such command options) with Cylc commands only.

With the above unification, & the new data provision and network layer as part of the architectural changes we are making to enable a UI in the browser, there should be no need to manually reload the suite definition. Any UI tabs open should automatically pick up on the reload.

  1. The one thing that I have always wanted is the ability to “rerun all failed tasks in a family” - this would be particularly useful for rose stem

I assume you mean to do so directly in the UI? On the command line (I have not been on the Cylc team for that long, so you probably know better than myself, but) I thought you could already do this) via the cylc trigger command (cylc trigger '*/MYFAMILY:failed')?

Relating this back to the UI, we plan to unify the UI & the command-line, so that they are more in sync, so if there is a command to interact with the suite in some way, we aim to make it so that there is a way the same can be directly from the UI (if it is in interactive mode, & not a ‘read-only’ mode we also plan to support).

  1. It would be nice to see some “review” output - I personally dislike rose bush for various reasons, so would be interested to see what the replacement will look like

Unfortunately, our thoughts for absorbing Cylc Review into the UI are very early stage. We haven’t decided how it will fit in yet, even on a higher level. We will be providing updates on our plans, so look out for these as eventually they will include a proposal for including Cylc Review. Given progress at the moment, it is possible that for the initial releases of Cylc 8, Cylc Review will remain a separate utiility.

We would like to follow up on your comment about Rose Bush (which is essentially Cylc Review under an old name, at the moment, as little has changed other than it being part of the Cylc codebase now). Do you mind elaborating on the reasons you dislike it (please don’t hold back, we are aiming to get honest feedback to help us improve in future)!

  1. At first glance everything looks very busy on the mock-ups (and more particular the pdf is too compactly full of stuff for me to really take it in), and I think it would be much more instructive to see examples with a full NWP suite rather than an extremely simple FOOBAR suite! E.g. the bit in the graph where the task squares go in across in a line - that’s all very well with two tasks in the family, but what will it look like with 20 tasks?

That’s a very good point (& sorry if the PDF is rather overwhelming, we wanted to get design concepts on a single document for ease of sharing & getting a feel for how it might fit together, but I appreciate it might not be the best format to digest).

It is difficult to balance a mock-up so that it shows essential features whilst displaying a vaguely realistic output, & we wanted to focus on the design elements, which we are hoping for feedback on, rather than attempting to display a more realistic-size suite, as it is a given that real-life suites (especially some of the mammoth ones we see here at the Met Office) will not display as nicely as a simplistic example. Also, there is only so much detail we want to, or could, manually draw out in Inkscape!

Really, to get a feel for what a realistic suite would display as, we would need to have an early-stage prototype & test it on some, ideally the most complex worst-case scenario suites we can get our hands on. That is the plan at the moment. We are currently approaching that development stage now, so it hopefully will not be long before we can do this, & we can share the results. If suites with the standard amount of tasks for a NWP suite are not viewable in the prototype in a clean, uncluttered & readable way, & can’t be interacted with in a simple, intuitive way, it will be a priority to improve the prototype to make them so.

Rest assured, “taming” the complexity of real-life suites in the UI has been one of our main concerns from the start. We also have further ideas to try to address this to be developed later along the line (not in initial Cylc 8 versions), such as a Matrix View (as detailed here, if you are interested).

  1. I love the multiple suites in one window idea. At the Met Office I used the little applet on my desktop when I was running multiple suites. This layout is a great replacement for that.

We’re glad to hear that you’d find that feature useful. We were aware that there was a desire in the community to be able to monitor & interact with multiple suites simultaneously, so tried to address that. We want to minimise the number of tabs (equivalent to separate GUI instances, as now) that people feel the need to open.


Hi Sadie,
That’s a very detailed response :grin:. Sounds all good to me.

Saying that, others have suggested they wouldn’t want to see those because they have so many suites that are stopped, or registered but never run, that it would be undesired “clutter” to see them, so we will support a means to hide or filter out these, too.

Ha! I had a lot too once and it slowed everything down so much Rose-Bush became almost unusable. Andy Clarke suggested I have a clean-up and everything went back to normal.

However, whether ‘green’ should indicate ‘running’ or ‘succeeded’ has emerged as a point of contention over the past years! I guess generally green indicates some sort of ‘happy’ state, hence either task state makes sense as green. If enough people indicate they prefer green for ‘running’, we could change the ‘Normal’ default colour theme as such.

I am not sure how much I care personally - that comment actually came from a passing colleague. I can see arguments both ways: all good vs traffic is flowing.

What we have already done, on a similar vein, is extracted the settings set by users across the Met Office in their gcylc.rc GUI configuration files, to gauge what they find useful enough to set as their default. That was low-hanging fruit, since we auto-generated that information via a script. The results are reported here, if you are interested to see.

Sounds like a good plan. I guess you could, in theory, try to note down how often people use particular commands from the gui too…

I do worry that things are always skewed by lack of response, but what can you do?

  1. The one thing that I have always wanted is the ability to “rerun all failed tasks in a family” - this would be particularly useful for rose stem
    I assume you mean to do so directly in the UI? On the command line (I have not been on the Cylc team for that long, so you probably know better than myself, but) I thought you could already do this) via the cylc trigger command (cylc trigger '*/MYFAMILY:failed')?

I have never used any cylc commands from the command line! At the start it was just too much and over the years I guess I just forgot it might give me more options (like I almost always use fcm commands rather than svn, other than for tricky merging). So thanks for that, I will try it :wink:. But yes, from the UI was what I meant.

. Do you mind elaborating on the reasons you dislike it (please don’t hold back, we are aiming to get honest feedback to help us improve in future)!

I have whinged at Matt about all of this over the years I am sure… I don’t like that the output spills off the side of the formatted box. I don’t like that it is hard to scroll across long lines of output. I don’t like that the “display options” box auto hides constantly. I would like to be able to remember my defaults for the time display (3 hours ago vs the actual time). I find it very unintuitive that if you click on a task name it takes you to a page with all the tasks of that name rather than the job.out of that task. Gets me every time (but that’s probably just me. Most people think I am crazy!). I don’t like the url organisation - I would like to be able to, e.g. In the url bar replace “tasks” with “cycle” and get to the other display, or delete it and get back to all my suites. Does that make sense? I have to run now am late for something!

Cheers,

Fiona

1 Like

Hi @Fiona_Smith,

Thanks for the feedback! A few additional comments (I think @sadie.bartholomew has covered most):

Maybe there should be a survey of users to see what things people do or don’t find useful?

That’s exactly what this “call for feedback” on the discussion forum is!

I have never once used the dot view.

The dot view gives a concise view of the suite spread over multiple cycle points, which is good for some suites in some situations, and we have received feedback that some users rely on it.

Can we have a “heritage” colour scheme for those of us who like green=run?

I have suggested to the team that we make a “heritage” theme available as an alternative. We have to make at least two themes anyway (standard, and color-blind) so another won’t be difficult.

I would be interested to know how the GUI will respond to a [reload]…

In a reload you ask (either via the CLI or the GUI) the suite server program to re-parse the suite definition and update its state accordingly. The GUI just displays status data that it receives from the server, so it isn’t involved in the reload beyond relaying the request to do it in the first place.

Hilary

1 Like

Hi Fiona,

Yes, you have. And I wish we had more time to devote to Rose Bush. Unfortunately, we have not been able to invest in Rose Bush as much as we should have. But given that it started its life as a replacement of the SCSUI HTML output, (and I am sure you remember those), it could also have been much worse.

Hopefully, Cylc 8 architecture and UI refresh will give us the perfect opportunity and the correct technology to put things in a better path.

I have always told you that users should not suffer (our) bad software in silence! So thanks for raising all these issues again.

Matt

1 Like

Hmmm, I’m gonna show some :heart: for Rose Bush (/Cylc Review)! It may not be perfect, but some of @Fiona_Smith’s criticisms could easily be argued the other way around IMO (e.g. clicking on a task name to get all cycle point instances of that task feels pretty intuitive to me!), and for quick access to thousands of job logs it is vastly better than anything we had before.

[And I’m not being defensive as I wasn’t involved in Rose Bush development!]

Hilary

1 Like

Thanks Fiona (& Hilary & Matt for elaborating).

We’'ll note your comments on Rose Bush & hopefully be able to address them in the updated Cylc edition, though as Hilary indicated others may have different views on what is good & bad about it & we have the difficult challenge to create a UI & system to suit everyone, or at least in practice suit as many (potential) users as possible as much as possible.

Sorry, looking back I did write you a bit of a novel for a response :smile:, but since you are, I believe, a “power” user & very kindly provided a lot of feedback I wanted to fill you on background in case you were interested.

I do worry that things are always skewed by lack of response, but what can you do?

Sure, we are aware of this & will take care not to assume it is a representative sample, but ultimately we can only work with the feedback we can get, & we don’t have separate UX research team to mine user feedback, nor renumeration to offer for it, nor sadly have too much time to devote to gathering it ourselves.

Saying that, we have managed to get some very good input so far & thank you again for adding significantly to the collection.

Unfortunately, we have not been able to invest in Rose Bush as much as we should have. But given that it started its life as a replacement of the SCSUI HTML output, (and I am sure you remember those), it could also have been much worse.

I wish I could say “I vaguely remember that in the dim and distant past” but parts of BoM’s operational suite are still SCS-driven :scream:

I have always told you that users should not suffer (our) bad software in silence! So thanks for raising all these issues again

I know you’re not fishing, and can confirm you’re not paying me to say this, but really, we are talking about very good software. There will always be something someone doesn’t like! I am a firm believer in talking constructively rather than muttering under one’s breath. There is usually a reason for the way things are - sometimes a good reason and often just that nobody has any time to work on it. Story of all our lives!

1 Like

@hilary.j.oliver it’s mostly good. The things I don’t like are all minor. The disappearing display options panel is the one thing that annoys me every day.

Ha! I am just the same as everyone else, it’s just that I can be bothered to give feedback :wink:

1 Like

Looks great! The web interface will be a game changer I think. Looking forward to having a go!

Jonny

3 Likes

The UI design looks fantastic for how we monitor our run and I’m very excited for it. That said, I don’t like seeing “SQLite” in the architecture diagram… I would suggest switching to an ORM (such as SQLAlchemy) or at least allow configuration of a proper DB so we can easily tap into the Cylc databases without relying on a lot of disk I/O to read a bunch of SQLite files. That would really help us integrate Cylc into our end-to-end monitoring.

Edit: and yes, I’ve seen bug #2800 on github and I disagree with the resolution! :slight_smile: SQLite incurs an I/O penalty when you’re querying 25+ suites on say GPFS, or at least our variant of GPFS. LustreFS wasn’t much better… Storing the cylc-run dir on a local disk was helpful but we don’t like the risk of that box dying and taking our entire run state with it.

1 Like

Thanks, it’s encouraging to hear people excited for the new UI.

On the database side, perhaps bump this to another thread to avoid sidetracking the GUI discussion but quickly…

I’m curious as to why you are querying the DBs of multiple suites. Are you trying to gather stats for multiple workflows to create a “total system” Cylc GUI? If so it would be great to capture these requirements for Cylc UI development. This sort of usage may intercept with some of our plans.

Otherwise:

  • Cylc provides event “hooks” for suites (e.g. startup, shutdown) and tasks (e.g. started, failed). Some use these hooks to drive end-to-end monitoring, I would have thought this would be the best solution (push vs pull).
  • Alternatively the Cylc UI Server in the new architecture may provide a good DB proxy for your usage. The query language is GraphQL rather than SQL, through the UI Server you could write requests which gather data from multiple suites.

Agreed! I’ll start this discussion to a new thread with more details.