Skip to content

Commit 2c7b136

Browse files
committed
Define data link. Also specify default interpretation of exit codes.
1 parent 8ea16bf commit 2c7b136

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
@@ -700,20 +701,26 @@ $graph:
700701
doc: |
701702
Exit codes that indicate the process completed successfully.
702703
704+
If not specified, only exit code 0 is considered success.
705+
703706
- name: temporaryFailCodes
704707
type: int[]?
705708
doc: |
706709
Exit codes that indicate the process failed due to a possibly
707710
temporary condition, where executing the process with the same
708711
runtime environment and inputs may produce different results.
709712
713+
If not specified, no exit codes are considered temporary failure.
714+
710715
- name: permanentFailCodes
711716
type: int[]?
712717
doc:
713718
Exit codes that indicate the process failed due to a permanent logic
714719
error, where executing the process with the same runtime environment and
715720
same inputs is expected to always fail.
716721

722+
If not specified, all exit codes except 0 are considered permanent failure.
723+
717724

718725
- type: record
719726
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
@@ -658,15 +659,21 @@ $graph:
658659
and may execute in any order or execute concurrently. A workflow is
659660
complete when all steps have been executed.
660661
661-
Dependencies between parameters are expressed using the `source` field on
662-
[workflow step input parameters](#WorkflowStepInput) and [workflow output
662+
Dependencies between parameters are expressed using the `source`
663+
field on [workflow step input parameters](#WorkflowStepInput) and
664+
`outputSource` field on [workflow output
663665
parameters](#WorkflowOutputParameter).
664666
665-
The `source` field expresses the dependency of one parameter on another
666-
such that when a value is associated with the parameter specified by
667-
`source`, that value is propagated to the destination parameter. When all
668-
data links inbound to a given step are fufilled, the step is ready to
669-
execute.
667+
The `source` field on each workflow step input parameter expresses
668+
the data links that contribute to the value of the step input
669+
parameter (the "sink"). A workflow step can only begin execution
670+
when every data link connected to a step has been fulfilled.
671+
672+
The `outputSource` field on each workflow step input parameter
673+
expresses the data links that contribute to the value of the
674+
workflow output parameter (the "sink"). Workflow execution cannot
675+
complete successfully until every data link connected to an output
676+
parameter has been fulfilled.
670677
671678
## Workflow success and failure
672679

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)