Skip to content

Commit 58291ca

Browse files
authored
Merge pull request #43 from common-workflow-language/data-link
Define data link. Also specify default interpretation of exit codes.
2 parents 091776b + 2c7b136 commit 58291ca

File tree

3 files changed

+37
-13
lines changed

3 files changed

+37
-13
lines changed

CommandLineTool.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ $graph:
7777
`DockerRequirement.dockerOutputDirectory` this it possible to
7878
control the locations of both input and output files when
7979
running in containers.
80+
* Specify default success/fail interpretation of exit codes when not given.
8081
8182
See also the [CWL Workflow Description, v1.2.0-dev4 changelog](Workflow.html#Changelog).
8283
For other changes since CWL v1.0, see the
@@ -702,20 +703,26 @@ $graph:
702703
doc: |
703704
Exit codes that indicate the process completed successfully.
704705
706+
If not specified, only exit code 0 is considered success.
707+
705708
- name: temporaryFailCodes
706709
type: int[]?
707710
doc: |
708711
Exit codes that indicate the process failed due to a possibly
709712
temporary condition, where executing the process with the same
710713
runtime environment and inputs may produce different results.
711714
715+
If not specified, no exit codes are considered temporary failure.
716+
712717
- name: permanentFailCodes
713718
type: int[]?
714719
doc:
715720
Exit codes that indicate the process failed due to a permanent logic
716721
error, where executing the process with the same runtime environment and
717722
same inputs is expected to always fail.
718723

724+
If not specified, all exit codes except 0 are considered permanent failure.
725+
719726

720727
- type: record
721728
name: DockerRequirement

Workflow.yml

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ $graph:
7070
* Specify behavior when `source` is a single-item list and no
7171
linkMerge is set.
7272
* Added discussion about handling different document versions.
73+
* Added definition of **data link**
7374
7475
See also the [CWL Command Line Tool Description, v1.2.0-dev4 changelog](CommandLineTool.html#Changelog).
7576
For other changes since CWL v1.0, see the
@@ -660,15 +661,21 @@ $graph:
660661
and may execute in any order or execute concurrently. A workflow is
661662
complete when all steps have been executed.
662663
663-
Dependencies between parameters are expressed using the `source` field on
664-
[workflow step input parameters](#WorkflowStepInput) and [workflow output
664+
Dependencies between parameters are expressed using the `source`
665+
field on [workflow step input parameters](#WorkflowStepInput) and
666+
`outputSource` field on [workflow output
665667
parameters](#WorkflowOutputParameter).
666668
667-
The `source` field expresses the dependency of one parameter on another
668-
such that when a value is associated with the parameter specified by
669-
`source`, that value is propagated to the destination parameter. When all
670-
data links inbound to a given step are fufilled, the step is ready to
671-
execute.
669+
The `source` field on each workflow step input parameter expresses
670+
the data links that contribute to the value of the step input
671+
parameter (the "sink"). A workflow step can only begin execution
672+
when every data link connected to a step has been fulfilled.
673+
674+
The `outputSource` field on each workflow step input parameter
675+
expresses the data links that contribute to the value of the
676+
workflow output parameter (the "sink"). Workflow execution cannot
677+
complete successfully until every data link connected to an output
678+
parameter has been fulfilled.
672679
673680
## Workflow success and failure
674681

concepts.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,13 @@ A **process** is a basic unit of computation which accepts input data,
7171
performs some computation, and produces output data. Examples include
7272
CommandLineTools, Workflows, and ExpressionTools.
7373

74-
An **input object** is an object describing the inputs to an invocation of
75-
a process.
74+
An **input object** is an object describing the inputs to an
75+
invocation of a process. The fields of the input object are referred
76+
to as "input parameters".
7677

77-
An **output object** is an object describing the output resulting from an
78-
invocation of a process.
78+
An **output object** is an object describing the output resulting from
79+
an invocation of a process. The fields of the output object are
80+
referred to as "output parameters".
7981

8082
An **input schema** describes the valid format (required fields, data types)
8183
for an input object.
@@ -389,6 +391,12 @@ the document. The responsibilities of the workflow platform may include
389391
scheduling process invocation, setting up the necessary runtime environment,
390392
making input data available, invoking the tool process, and collecting output.
391393

394+
A **data link** is a connection from a "Source" parameter to a "Sink"
395+
parameter. A data link expresses that when a value becomes available
396+
for the source parameter, that value should be copied to the "sink"
397+
parameter. Reflecting the direction of data flow, a data link is
398+
described as "outgoing" from the source and "inbound" to the sink.
399+
392400
A workflow platform may choose to only implement the Command Line Tool
393401
Description part of the CWL specification.
394402

@@ -412,8 +420,10 @@ of [process requirements](#Requirements_and_hints).
412420

413421
## Generic execution process
414422

415-
The generic execution sequence of a CWL process (including workflows and
416-
command line line tools) is as follows.
423+
The generic execution sequence of a CWL process (including workflows
424+
and command line line tools) is as follows. Processes are
425+
modeled as functions that consume an input object and produce an
426+
output object.
417427

418428
1. Load input object.
419429
1. Load, process and validate a CWL document, yielding one or more process objects.

0 commit comments

Comments
 (0)