common-workflow-language / common-workflow-language/cwl-v1.3

post-step output manipulation

Open
#39 1 comment 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.