hjoliver/cylc — Issue #31: Allow alternate family trigger semantics
Author: hjoliver
Created: 2012-02-07 23:39:17+00:00
State: open
Labels: feature request

Cylc automatically replaces family names in the graph with trigger expressions involving the family members. E.g. for a family FAM with members m1, m2, m3:
```
"FAM => foo" --> "m1 & m2 & m3 => foo"
```
i.e. "family succeeded" is equivalent to "all members succeeded". And:
```
"FAM:fail => foo" --> "(m1:fail|m2:fail) & (m1|m1:fail) & (m2|m2:fai ) & (m3|m3:fail) => foo"
```
i.e. "family failed" is equivalent to "all members finished (either succeeded or failed) and at least one member failed".

If the above meaning of family success or failure is not what you need, then you currently have to use family members in the graph. For instance, to trigger a task after "all members finished and at least one member succeeded":
```
( m1 | m2 | m3 ) & ( m1 | m1:fail ) & ( m2 | m2:fail ) & ( m3 | m3:fail ) => foo
```
If cylc allowed us to redefine family success as "all members finished and at least one member succeeded" instead of the default "all members succeeded", then this expression could be written as just "FAM => foo". And similarly for other possible meanings of success and failure for families (e.g. FAM:fail could mean "all members failed" instead of "at least one member failed")