Skip to content

Commit ce3c91a

Browse files
author
Kaushik Ghose
authored
Merge branch 'master' into inherited-requirements
2 parents 7eb53c0 + 3cf1664 commit ce3c91a

File tree

5 files changed

+53
-4
lines changed

5 files changed

+53
-4
lines changed

CommandLineTool.yml

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ $graph:
5050
5151
## Changelog
5252
53+
* Clarify behavior around `ENTRYPOINT` and `CMD` in containers
5354
* Clarify documentation around `valueFrom` and `null` inputs.
5455
* Default values for some fields are now expressed in the schema.
5556
* When defining record types with `CommandInputRecordSchema`, fields of
@@ -701,8 +702,9 @@ $graph:
701702
extends: ProcessRequirement
702703
doc: |
703704
Indicates that a workflow component should be run in a
704-
[Docker](http://docker.com) container, and specifies how to fetch or build
705-
the image.
705+
[Docker](http://docker.com) or Docker-compatible (such as
706+
[Singularity](https://www.sylabs.io/) and [udocker](https://github.com/indigo-dc/udocker)) container environment and
707+
specifies how to fetch or build the image.
706708
707709
If a CommandLineTool lists `DockerRequirement` under
708710
`hints` (or `requirements`), it may (or must) be run in the specified Docker
@@ -727,6 +729,22 @@ $graph:
727729
generated command line represents a valid command within the runtime
728730
environment of the container.
729731
732+
A container image may specify an
733+
[ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint)
734+
and/or
735+
[CMD](https://docs.docker.com/engine/reference/builder/#cmd).
736+
Command line arguments will be appended after all elements of
737+
ENTRYPOINT, and will override all elements specified using CMD (in
738+
other words, CMD is only used when the CommandLineTool definition
739+
produces an empty command line).
740+
741+
Use of implicit ENTRYPOINT or CMD are discouraged due to reproducibility
742+
concerns of the implicit hidden execution point (For further discussion, see
743+
[https://doi.org/10.12688/f1000research.15140.1](https://doi.org/10.12688/f1000research.15140.1)). Portable
744+
CommandLineTool wrappers in which use of a container is optional must not rely on ENTRYPOINT or CMD.
745+
CommandLineTools which do rely on ENTRYPOINT or CMD must list `DockerRequirement` in the
746+
`requirements` section.
747+
730748
## Interaction with other requirements
731749
732750
If [EnvVarRequirement](#EnvVarRequirement) is specified alongside a

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ Hello!
22

33
This repo represent the current working proposal for v1.1 of the Common Workflow Language standard.
44

5+
Proposed changes that aren't yet implemented are tracked at https://github.com/common-workflow-language/common-workflow-language/milestone/6
6+
57
You can render this using https://github.com/common-workflow-language/cwl-website/blob/master/website.sh
68

79
The current rendering is at https://www.commonwl.org/v1.1.0-dev1/

Workflow.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ $graph:
4949
## Changelog
5050
5151
* Clarify how Requirements are inherited by step processes
52+
* Document explicitly that CWL allows pass-through of workflow inputs to outputs
5253
* Default values for some fields are now expressed in the schema
5354
* When defining record types, fields of type `File` may now include
5455
`format`, `secondaryFiles`, and `streamable`.
@@ -184,8 +185,9 @@ $graph:
184185
docParent: "#Workflow"
185186
doc: |
186187
Describe an output parameter of a workflow. The parameter must be
187-
connected to one or more parameters defined in the workflow that will
188-
provide the value of the output parameter.
188+
connected to one or more parameters defined in the workflow that
189+
will provide the value of the output parameter. It is legal to
190+
connect a WorkflowInputParameter to a WorkflowOutputParameter.
189191
fields:
190192
- name: outputSource
191193
doc: |

conformance_tests.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2711,3 +2711,20 @@
27112711
}
27122712
]
27132713
}
2714+
2715+
- doc: Test that OutputBinding.glob accepts Directories
2716+
job: tests/empty.json
2717+
label: outputbinding_glob_directory
2718+
tool: tests/glob_directory.cwl
2719+
output:
2720+
directories:
2721+
- basename: "a_dir"
2722+
class: "Directory"
2723+
listing: []
2724+
- basename: "b_dir"
2725+
class: "Directory"
2726+
listing: []
2727+
- basename: "c_dir"
2728+
class: "Directory"
2729+
listing: []
2730+
tags: [ required, command_line_tool ]

tests/glob_directory.cwl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/usr/bin/env cwl-runner
2+
cwlVersion: v1.1.0-dev1
3+
class: CommandLineTool
4+
5+
inputs: []
6+
baseCommand: [mkdir, a_dir, b_dir, c_dir]
7+
outputs:
8+
directories:
9+
type: Directory[]
10+
outputBinding: { glob: '[a,b,c]_dir' }

0 commit comments

Comments
 (0)