Code Monkey home page Code Monkey logo

metomi / rose Goto Github PK

View Code? Open in Web Editor NEW
54.0 54.0 47.0 59.94 MB

:rose: Rose is a toolkit for writing, editing and running application configurations.

Home Page: https://metomi.github.io/rose/

License: GNU General Public License v3.0

Shell 45.20% Python 52.25% Emacs Lisp 0.20% Fortran 0.07% HTML 0.62% JavaScript 0.50% C 0.01% CSS 1.03% Roff 0.01% Makefile 0.04% Vim Script 0.08%
configuration cylc meteorological-suites python rose shell workflow

rose's People

Contributors

aosprey avatar arjclark avatar benfitzpatrick avatar datamel avatar dependabot[bot] avatar dpmatthews avatar dvalters avatar github-actions[bot] avatar harry-shepherd avatar hjoliver avatar jmancell avatar jonseddon avatar markgrahamdawson avatar martindix avatar matthewrmshin avatar metofcm avatar metronnie avatar oliver-sanders avatar paulcresswell avatar r-sharp avatar sadielbartholomew avatar scwhitehouse avatar steoxley avatar thomascolemanbom avatar tomektrzeciak avatar wxtim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rose's Issues

rose suite-run: ability to perform different actions on specific task hosts

There may be cases when we only want rose suite-run to
perform different actions on specified task hosts. E.g.:

  • A file to be installed may be large,
    and we only want to have it on the host requiring it.
  • A file of the same name may have host specific contents.
  • We want to set up a symbolic link to a file
    which only exists on a particular host.
  • (Need to handle host names defined in templates.)
  • Different hosts may need different root locations
    for their share/ and/or work/ directories.

rose config-edit: fine tune array widgets

Array widgets are among the most complex pieces of the configuration editor GUI code, and their behaviour and appearance needs further rationalisation and improvement. We need to make them more intuitive to use.

rosie go: open suite in view-only mode

rosie go should open a suite in view-only mode by default
(unless the suite is already checked out).

In view only mode, we'll svn export the suite to $TMPDIR,
and when rose edit finishes with the suite, it will delete it.

rose suite-hook

rose suite-hook to be created to handle possible suite hooks.

rose suite-hook: test battery

rose task-run and rose suite-hook should have test battery.

(The rose rug-brief-tour test battery already test the functionality of rose suite-log implicitly.)

cylc get-config: memory usage and reduce use from Rose

Calls to cylc get-config can kill the server. Need to investigate, and possibly further reduce our reliance on it.

This problem is less urgent now that we have reduced the number of calls of cylc get-config to 1 per task event. If and when we have the database for Cylc task event or status, we should be able to make further improvement to this.

rosie web: better info display

Currently, the main Rosie web page displays extra properties of a suite as a simple hover-over - this could be vastly improved by presenting them in a more sophisticated form, including translating the date property to a human-readable year-month-day-hour-minute-second form.

rosie go: address bar autocomplete

We can consider adding some auto completion in the address bar. Information for auto completion can come from 2 sources:

  • The user's query / search history.
  • Query / search history of the server. E.g. we can add a table to the database to store the last 1000? queries / searches.

Potentially, one could also offer autocomplete options based on a mask for query strings e.g. for commonly used query terms such as "and" or "contains"

rose metadata: value-titles

We may want to introduce titles for individual value choices (e.g. radiobuttons for '1', '2' and '3') so that we can display it within the config editor.

rose config-edit: drag and drop tabs

Now that we can use PyGTK 2.12 and greater for the config editor, we can make use of built-in tab detaching instead of our own implementation. This will allow dragging and dropping, and re-attaching detached tabs.

rose config-edit: advanced search

We need an advanced search dialog for the config editor that can drive searches by metadata and combinations of fields - e.g. find all integers with 'radiation' in their descriptions.

It would also be useful for large suites to have the option to only search a single configuration.

We should also consider whether to make the default search case sensitive or not.

rosie go: move data requests to a separate thread or process

We should prevent any hanging of the main rosie go process while results are being fetched or processed. This can easily be done by farming out the result requesting to a separate thread or process.

This means that the basic thread model is similar to the way cylc gui operates.

rose suite-run: allow installation of complete suites

We should support the ability to run another suite using a modified version of the rose-suite.conf file. (One possible use is for running rose stem suites which are stored with the source code.)

The idea is that you would define a suite containing a rose-suite.conf file (+ maybe a rose-suite.info file) which would contain an entry to install another suite, e.g:

[file:.]
source=/my/path/to/rose-stem

This doesn't work at present (because the top level suite dir contains other directories?). Another problem is that the suite you want to install may contain rose-suite.conf & rose-suite.info files which clash with the local versions.

rose housekeep and install utilities

We need to agree a strategy for a common environment and utilities to:

  1. 'Install' files retrieved from the archive, or elsewhere (ie. files not put in place by the suite install mechanism, such as those required on a cycle-by-cycle basis or for a cold-start).
  2. 'Archive' and 'housekeep' items generated by suites. This should include:
    • distributing files elsewhere on the system, or to a remote file system.
    • housekeeping on a 'cycle directory' basis, or on a 'pattern match' basis, when files are no longer required.

rose mpi-launch: extra diagnostics

rose mpi-launch should accept standard CLI options of most Rose utilities, e.g. --verbose, --quiet, --debug. It should also generate a log file with a verbosity level equivalent to the -v -v mode.

rose config-edit: drag and drop configurations

It would be relatively simple to implement a drag and drop of a tree panel node, as its configuration text, into an outside programs such as text editor or terminal. This would increase the transparency of information within the GUI.

It would be more useful to drag and drop configurations between 2 suites.

rose edit: saved sessions

It would be very useful to have saved sessions for rose config-edit, along with any other Rose GUIs we may develop.

rosie db: store prefix and idx together

We should give people a better idea of what the full id of their suite is - definitely in the idx column.

We have also agreed that the database entry will have to store the prefix.

rose: internationalise

We need to make sure our fixed strings (e.g. the menu title 'View' in config-edit) are all easily configurable. We should look into support for Unicode.

rose config-edit: fix save blank variable

In the config editor, if a new variable is added, not given a name, and then the application is saved, the config editor will crash and the application will contain a line that looks like "null1348096126_56=". We should warn people that they should either delete the variable or give it a name before they can save.

rose suite-run: test battery

rose suite-run should have test battery.

(The rose rug-brief-tour test battery already test the functionality of rose suite-run implicitly.)

configuration metadata: location and installation

An application configuration metadata will normally live with the repository of the individual system who owns the application.

How does Rose search for them?

We'll introduce a Rose site configuration:

  • etc/rose-meta-search.conf?

It can do one of the following:

  1. Point to a set of paths in the file system.
  2. Point to a set of repository locations.
    Rose post-commit hook to install them to live with
    our installation of Rose.

Who should edit the file?

  • Rose team only (like FCM site location keywords)?
  • System managers to do it themselves?
    (A bit like GHUI, but version controlled!)

Upgrade macros will be discussed in a separate ticket.

rose.reporter: use where possible

We should have better integration of event handling in Rose/Rosie utilities - for example the config editor uses different code to rosie.vc.

We should remember to use reporter for the rose macro output as well.

rose config-edit: status panel

It may be useful to have an optional status panel at the bottom of the config editor window to display macro output, actions undertaken by the config editor, and any interface with external programs. It could also be configured to automatically display help information for pages or variables (as in gconf-editor), and so on.

rosie: Filter remove cleanup

At present, when a filter is deleted/removed from the GUI an entry remains in a master list. As a result of the history browser a lot of filter adding and deleting will occur. This will result in unnecessary (and possibly problematic?) memory overheads when using rosie go.

rose suite-run: support alternate Cylc installation

rose suite-run should support alternate Cylc installations.
To do:

  1. Introduce an option or configuration to specify the
    location of an alternate installation.
  2. Ensure that the correct Cylc installation is used to launch
    cylc run, especially for a remote cylc run.
  3. Pass a Rose jinja2 constant to suite.rc
    to allow users to design their suite for tasks
    to use the correct Cylc installation.
  4. Write the Cylc installation location in a file that
    can later be used by rose suite-gcontrol.

rose config-edit: check and save button

We may want a check configurations then save button and menuitem. This would invoke fail-if, warn-if, and any custom validator macros. This might need an advanced mode to choose which checkers to use.

rose config-edit: code improvement and restructuring

The config editor code has been developed relatively rapidly and in parallel with evolving specifications and user requirements.

When time becomes available, the code needs to be rationalised, restructured, and improved in style and documentation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.