-
Notifications
You must be signed in to change notification settings - Fork 9
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
Added optional expression tags #212
Conversation
Are there any edge cases that you know of that are intentionally left uncovered by these tests? |
Theoretically a soft-optional dependency could be included in more test cases, including alongside ORs, but that feature is, by design, not as reliable, and I didn't want to make the tests too fragile. |
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.
Some comments, mostly comment meta-comments.
Changes introduced with this PR
This PR adds two more ways of specifying inferred inputs/outputs:
!wait-optional
- Creates a completion dependency that still resolves if the referenced expression fails, but it will wait until either it resolves or it is marked unresolvable. This is the one intended for most use cases. For example, if you don't care if a step succeeds or crashes,!wait-optional
is the best one for that use case. But if you want the output to only resolve when the step is disabled or succeeds, but not if it crashes, you must use!ordisabled
.!soft-optional
- Creates an optional dependency that does not effect resolution of the object. There are no order guarantees, so this field is only intended for things that really do not matter strongly for the output.These expressions may only be used as fields properties within an object. The fields will be marked as optional.
By contributing to this repository, I agree to the contribution guidelines.