-
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
cylc set
: log warning when no outputs specified and task has no required outputs
#6505
base: master
Are you sure you want to change the base?
Conversation
I realised there was a slight mistake and the test was not quite what I wanted. @oliver-sanders Why, for task
is the auto-generated completion statement Shouldn't it be |
Hmm, that does seem wrong. Logically, it should be |
No, this is correct and as proposed (point 3). There are four "final" task states:
By default, outputs are associated with the success pathway. The task cannot be expected to complete these outputs in other scenarios as it hasn't necessarily run. Doing it as suggested above would prevent clean graph branching (e.g, in your example, you would need a suicide trigger to remove the task if it failed because it didn't produce the output "x"). Optional outputs as specified in the graph are used to configure the completion expression. The source of truth is in the completion expression itself. |
Can't say I understand this. In my example |
OK I can see that proposal point 3 does indeed lead to
but I'm no longer entirely convinced that that's correct.
You're saying failure is optional, and failure could occur early in execution, before That's true, but I think it's still legit to have a graph that requires the
It's conceivable that (Is that what you're saying @MetRonnie ?) |
Sorry to stoke an argument 🤭 I suggest we re-visit this after 8.4.0 is released. I will probably just stick |
Yep, and for this niche case, the user can configure a completion expression to achieve the desired behaviour:
But for the more common case where failure means that the task is not able to do what it was supposed to do, the current behavior avoids the need for suicide triggers whilst maintaining consistency with the handling of the other two final outputs,
Yes please. If we do need to revisit this, later, not now! |
It comes down to what should be the default completion condition vs what should require a user-defined one. Looking at succeed/fail alone, to my mind we've got it the wrong way around because the current default is not the most literal interpretation of the graph. Point taken on consistency with submit-failed and expired, but I'm not sure that matters. Succeed and fail are fundamentally different from those because they involve actually executing the job, so it's seems fine to me to treat them slightly differently on that basis. But OK, on the back-burner for post-8.4.0 revisit! |
Btw it seems like instead of logging a warning, we might as well do what skip mode does and just emit the "success pathway" outputs if a user does Arguably an enhancement so should go in 8.5.0 rather than 8.4.1? |
does nothing and currently produces no warning.
This change makes it log a warning.
https://cylc.discourse.group/t/cylc-set-for-a-task-with-multiple-outputs-doesnt-seem-to-do-anything/1074
Check List
CONTRIBUTING.md
and added my name as a Code Contributor.?.?.x
branch.