add two link attributes#433
Conversation
50774b3 to
a0a5f9e
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
loichuder
left a comment
There was a problem hiding this comment.
There is no implementation for cache_non_required required in ewokscore?
Co-authored-by: Loïc Huder <42204205+loichuder@users.noreply.github.com>
Indeed. The engine does the caching. This is already the case for all our engines for required links. When you have two required links coming in, the task gets executed with parameters from both. This means the engine needs to cache and merge somehow. Only now we have the new parameter it becomes clear that this is an implicit behavior of DAGs which we don't think about. |
|
I think I have a better solution. Seems to have fixed a bug as well. It broke a test of this graph flowchart TD
start([start])
fan([fan])
always1([always1])
on_true1([on_true1])
on_error1([on_error1])
always2([always2])
on_true2([on_true2])
on_error2([on_error2])
merge([merge])
end_always([end_always])
end_on_error([end_on_error])
start --> fan
fan --> always1
fan -->|result == true| on_true1
fan -->|error| on_error1
always1 --> always2
on_true1 --> on_true2
on_error1 --> on_error2
always2 --> merge
on_true2 --> merge
on_error2 --> merge
merge --> end_always
on_error2 --> end_on_error
But the links always1->always2 and always2->merge are required and the test assumed they were not. |
…licit required=False
86be59c to
e06a2ac
Compare
loichuder
left a comment
There was a problem hiding this comment.
Looks good!
Some naming suggestions.
|
Can |
3693b6d to
a4d63e9
Compare
|
Whatever we decide in ewoks-kit/ewoksppf#162 (comment) should be added to the docs. |
I think yes. There will be some head-scratching for the UI (I can't use a simple checkbox since there are three states) but the value can be serialized/deserialized as Issue created at ewoks-kit/ewoksweb#852 |
|
Technical discussion + decision in node execution semantics: https://confluence.esrf.fr/display/AAWWK/Ewoks+graph+analysis%3A+input+caching Only affects the SPEC and |
04aee7b to
cbd5ae2
Compare
19a1ee0 to
cf6e5d5
Compare
cf6e5d5 to
3869a46
Compare
|
I keep modifying the examples. I now have two examples which I think covers all permutations of options and arrival orders. |
|
The main sections in the SPEC are now: |
|
I just realized that all engines other than |
8757c91 to
aafbeb5
Compare
|
I introduced I also realized that the sequential engine does not need to reject workflow with |
|
Actually no, scratch that: a workflow that does not handle the link attribute Edit: this was agreed upon during the workflow meeting
|
dfed2ae to
3869a46
Compare
|
@loichuder Original review suggestions were addressed and I improved the SPEC docs (including examples). |
| links are always cached. Only one non-required non-cached input is cached. Non-required cached imputs are cached | ||
| like required inputs. | ||
|
|
||
| Node execution semantics |
There was a problem hiding this comment.
I'd say it is more explanation than reference, according to diataxis but no need to delve into semantics
Co-authored-by: Loïc Huder <42204205+loichuder@users.noreply.github.com>
|
Thanks for the review! I will now adapt the associated ewoks-kit/ewoksppf#162. After that we can merge and make a major release. |
|
Should we use Some sentences to see whether this could cause confusion:
Edit: In the SPEC we use the word |
No hard stop for me. As long as we have clear about what we are talking about and it is written clearly in the spec |
|
Now we talk about "optional links" instead of "not required links" or "non required links". Added:
|
Use case: ewoks-kit/ewoksppf#162
cache_if_not_required: cache inputs from non-required links just like required links.required=False: for the link to be explicitly non-required.when all required inputs are provided at any point in time.