The work described in this document aims to:
rose suite-run and provide a new cylc command to replace it.This will complete cylc-flow #1885.
Implement basic platforms support. See platforms proposal.
Add new platforms features required to support rose suite-run functionality. See platforms proposal.
Define new cylc command to replace rose suite-run (and adapt rose suite-run to provide backwards compatibility). See below.
The remaining points can happen any time after 1) is complete although note that 2) and 3) are higher priority.
Support generation of cylc config reference documentation from the code and ensure all settings are documented. See cylc-doc #11. Alternatively, review and update the existing documentation.
Implement further enhancements to the platforms support. See platforms proposal. Note that these are not essential for Cylc 8.0.
Review all config settings and make any agreed changes. See cylc-flow #3422. Note that these are not essential for Cylc 8.0 although we should try to address any non-controversial changes.
Installation of suites on platforms and support for moving the share, work & log directories to different locations. This will be included in the platforms support.
cylc-run).
cylc-run) are both accessible on the host where the command is
run.localhost platform.--strict).
Handle rose-suite.conf functionality including optional configurations. See cylc-flow #3819 and rose #2412.
Utility to remove installed locations (on all platforms) on demand
(equivalent to rose suite-clean).
u-ab123/
run1
run2
rose prune functionality.
rose suite-run current supports this for Subversion only
(svn info + svn status + svn diff).cylc install - new command to install workflows.
cylc install will install the workflow found in $PWD into
~/cylc-run/$(basename $PWD)/runN (where runN = run1, run2 …).~/cylc-run/<flow_name> with a
_cylc-install diretory containing a source symlink to the source dir.~/cylc-run/<flow_name>/source symlink. Otherwise it would be possible
for run1 to come from a different source dir to run2.--run-name is not specified and run1 already exists it will install
into run2 (and so on).
Create a symlink runN pointing at the latest run.--run-name=my-run implies install into ~/cylc-run/$(basename $PWD)/my-run.
If the target directory already exists then fail.
Note that --run-name=_cylc-install is an error.--no-run-name implies install into ~/cylc-run/$(basename $PWD).--flow-name=my-flow implies install into ~/cylc-run/my-flow/runN.--directory=/path/to/flow (-C ...) implies install the workflow found in
/path/to/flow (rather than $PWD)..git or .svn directories.
Everything else will be copied.
.cylcignore file (future
enhancement).log, share, work or _cylc-install
exist in the source directory.suite.rc nor cylc.flow exist.~/cylc-run/my-flow/runN if ~/cylc-run/my-flow
already contains an installed suite.log, share, share/cycle and work directories will be created
following whatever symlink rules are defined for localhost
(over-ridable via command line options).
cylc play - new command to run an installed workflow
(replacing cylc run|start).
cylc run command but with no
[START_POINT] argument (already supported as an option).cylc release.cylc restart).cylc clean to clean out the log directory (and whatever other
directories you want removing) after which cylc play can be used.
Note that this means that cylc play must be able to use the command
line options from the previous run as stored in the private database.
There are 2 options:
--re-run option to enable this
(otherwise cylc play will fail if it finds an existing private database).log directory is found.cylc play will always load the latest workflow definition found in
the run directory and will respect any command line options (which may alter
the workflow definition). Therefore, continuing a workflow using cylc play
effectively implies a reload.
cylc.flow files will be kept so there will be a record of
any changes
(see also cylc-flow #3763).ROSE_SUITE_OPT_CONF_KEYS or the option --rose-opt-conf-key=KEY.cylc reinstall - new command to re-install workflows.
cylc install command except that this applies to a
previously installed workflow (i.e. you run this command in the directory of
the installed workflow, not in the source directory).--delete to ensure that any previously installed files
which have been removed from the source directory also get removed from the
installed workflow.
rose-suite.conf. They will get recreated by a subsequent reload or play but
could affect a running workflow.--dry-run option to report what would be changed?
rose suite-cmp-vc?cylc reload - no change from existing command.
cylc validate - as per existing command with the following changes:
cylc install then use any relevant
command line options specified as part of the install unless overridden on the
command line.rose-suite.conf files.--strict. Consider a new --cyclic-graph-validation option to enable this?
See cylc-flow #3869.Several combinations of the above commands will be commonly used. Propose to support these as separate commands:
cylc install-play (cylc ip for short?)cylc reinstall-reloadcylc pause|release - new commands with aliases pause = hold and
release = unpause = unhold.
cylc stop the scheduler will be modified to unpause
the workflow before stopping.
This means that a stopped workflow will not be paused when it is continued via
cylc play. On the other, a workflow which is continued for any other reason
(e.g. the server died) will retain its paused status.cylc register - remove: functionality no longer required.
cylc install will now perform the task of associating the source and run
directories via a symlink.cylc play has no need to do this since the workflow definition will now
always be found in the run directory.cylc clean - new command to replace rose suite-clean.
log directory this allows you to rerun a
workflow (keeping the existing data in share if that is what you want).
The default will be to remove everything including the top level directory.rose suite-run does but without tar gzipping the
directory). This would allow a workflow to be warm started without completely
losing the previous log files (this is an operational requirement at present
although we hope that re-flows will reduce or remove the need for this).
Note that we would not provide any further support for these archived log
directories (e.g. no support for accessing the logs via the UI).log/rose-suite-run.locs is currently required by rose suite-clean
but cylc clean should probably get this information from the database?For all commands which have been replaced (run, restart, register,etc) we will replace them with (hidden, not listed in CLI help) commands which simply report what commands should be used in their place.
Once the main CLI changes are in place we should do a complete review of the entire cylc command set to see whether there are further commands which should be retired or altered.
rose suite-cleanrose suite-cmp-vc - check whether we have a replacement for this in cylc firstrose suite-gcontrolrose suite-hook - has been deprecated for some time nowrose suite-log - need to check whether it is still in use with the --update or --archive optionsrose suite-restartrose suite-runrose suite-scanrose suite-shutdownrose stem.Related issues / notes:
cylc cleanProposed contents of the log directory in the run directory.
db - no changejob/ - no changescheduler/ - replaces suite/conf/ - replaces suiterc/ and rose-conf/*.conf (contains Cylc + Rose confs)
-install/ - installation logs
install/<timestamp>-install.log (replaces rose-suite-run.log)install/<timestamp>-vc.log (replaces rose-conf/*.version)