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-reload
cylc 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-clean
rose suite-cmp-vc
- check whether we have a replacement for this in cylc firstrose suite-gcontrol
rose 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-restart
rose suite-run
rose suite-scan
rose suite-shutdown
rose stem
.Related issues / notes:
cylc clean
Proposed 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)