-
Notifications
You must be signed in to change notification settings - Fork 94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Skip Mode #6039
base: master
Are you sure you want to change the base?
Skip Mode #6039
Conversation
b43d296
to
d26c315
Compare
d378e3a
to
e9c2e25
Compare
3d002ee
to
dd0a9fc
Compare
0d42eab
to
c37ef72
Compare
3839a8a
to
d7ee653
Compare
Co-authored-by: Ronnie Dutta <61982285+MetRonnie@users.noreply.github.com>
a78b95d
to
0c5e639
Compare
cylc/flow/task_outputs.py
Outdated
exclude: Exclude one possible required message, allowing | ||
specification of all required outputs if succeeded or failed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could this be explained better? I am not sure what this means (though judinging from the tests it is not as simple as just excluding the specified output from the return value, which was my first impression)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've had a go.
aeca3e4
to
2aa3f1c
Compare
2aa3f1c
to
51f6585
Compare
'disable task event handlers': | ||
rtconfig['skip']['disable task event handlers'], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, why add this to the platform dict instead of just accessing it on itask.tdef.rtconfig['simulation']['disable task event handlers']
? (Or maybe setting it on itask.mode_settings
for shorter access)
(disable task event handlers
is not a settable platform configuration in global.cylc
so this is slightly confusing)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This rtconfig object may include broadcasts. Broadcasts should apply to jobs submitted by a task, but should not modify the task proxy's definition. Hence this slight bodge.
Co-authored-by: Ronnie Dutta <61982285+MetRonnie@users.noreply.github.com>
* upstream/master: Update cylc/flow/rundb.py GH Actions shortlog: check out head ref Add Paul Armstrong to CONTRIBUTING.md Report the error if write attempts fail to the DB Functional tests: allow `grep_fail` to accept options (cylc#6463) Bump dev version Prepare release 8.3.6 Bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.2 Simplify task state deltas Refactor task killing Bump pypa/gh-action-pypi-publish from 1.10.3 to 1.11.0 (cylc#6455) [skip ci] Spawn parentless sequential xtriggered task on set outputs (cylc#6448) Delete changes.d/6404.fix.md Pass pre-install plugins the value of workflow rundir as options.against source, allowing re-install and validate against source to access previous CLI opts as stored in rose-suite-cylc-install.conf
""" | ||
if self.get_run_mode() in {RunMode.SIMULATION, RunMode.DUMMY}: | ||
if self.get_run_mode().value in WORKFLOW_ONLY_MODES: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It does not seem clear to me why you would not run event handlers in modes that apply to the workflow only, perhaps clearer to spell out the modes as before?
if self.get_run_mode().value in WORKFLOW_ONLY_MODES: | |
if self.get_run_mode() in {RunMode.SIMULATION, RunMode.DUMMY}: |
if not submit_func: | ||
# Return to nonlive. | ||
nonlive_mode = False | ||
else: | ||
nonlive_mode = submit_func( | ||
self, itask, rtconfig, workflow, now) | ||
|
||
if nonlive_mode: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if not submit_func: | |
# Return to nonlive. | |
nonlive_mode = False | |
else: | |
nonlive_mode = submit_func( | |
self, itask, rtconfig, workflow, now) | |
if nonlive_mode: | |
if submit_func and submit_func( | |
self, itask, rtconfig, workflow, now | |
): |
Closes #5641 (also fixes #5975, and fixes #5820 )
Skip Mode Proposal Doc
This branch includes (marked against skip mode proposal):
[runtime][<namespace>]run mode
.a. Broadcast can change
run mode
for future task job submissions.b. Cylc Validate and lint will warn about the setting not being live.
cylc set --out skip
sets outputs from skip mode.run mode = skip
respectsis_held
flag.Extras
7. Run Mode is available as an task attribute in the UI
8. When tasks are run in skip mode, the prerequisites which correspond to the outputs they generate should be marked as satisfied by skip mode rather than satisfied naturally for provenance reasons. For the purpose of cylc remove logic, satisfied by skip mode should be treated the same as satisfied naturally.
There are two extensions, which I haven't dealt with yet, because I want to ensure that the basic functionality works, and move to the substantial documentation PR which need follow this.
Check List
CONTRIBUTING.md
and added my name as a Code Contributor.setup.cfg
(andconda-environment.yml
if present).CHANGES.md
entry included if this is a change that can affect users