common-workflow-language / common-workflow-language/cwl-v1.3
post-step output manipulation
- Dominant language
- Common Workflow Language
- Stars
- 6
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
Want to be able to reshape outputs on the workflow step, e.g. similar to outputEval on CommandLineTool.
Should include a way to bind outputs from the 'run' process that are not propagated to the step output object, similar to #41
Example to take a output parameter called "tooloutput" which is a record and extract "field1" and produce a workflow step output called "myoutput".
```
steps:
step1:
out:
myoutput:
source: tooloutput
valueFrom: $(self.field1)
michelsoutput:
source: foo
propagate: false
petersoutput:
valueFrom: $(outputs.michalesoutput.abc)
davidsoutput:
valueFrom: $(outputs.michalesoutput.xzy)
sashasoutput:
source: bar
type: string
valueFrom: ${return {"quux": self + outputs.michalesoutput.def }; }
outputwithdefault:
source: anoptionaloutput
default: "the default value when this returns null"
```
Optionally declare expected type on 'out' parameters to suppress checker warnings. #42
The "in", "out" and "loop" should as much as possible have the same fields / order of operations / capabilities. Although, from discussion, we probably don't need multiple sources and linkMerge on 'loop' and 'out'.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the proposed step `out` fields and operation order in this issue, then read the related discussions in issues #41 and #42. Done means the workflow specification defines post-step output reshaping, binding of unpropagated run outputs, optional types, and defaults consistently with the stated examples.
Written by the indexing model from the issue text.
Assessment
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100