Skip to content

Commit fc03995

Browse files
committed
Squashed 'cwltool/schemas/' changes from 2cf0896..7a9bee2
7a9bee2 Add 'v1.1.0-dev1/salad/' from commit '98a5bea104672f9c652ad17ead5c6869a0da2cdf' 5853de0 refresh schema salad 762d534 update new draft documentation a33dd70 initial v1.1.0-dev1 2c85ac4 README update 3a5061d Add support for --junit-xml to run_test.sh d37ef31 Run tests with "cwltest" instead of "python -m cwltool.cwltest" cf28454 Add test for using initial work dir, docker, and secondary files. 98a5bea Update py3 setuptools pip wheel 8646e82 Run install-dep for py3 d866c53 pin ruamel py3 install 04dd72f Add ruamel.yaml to py3 jenkins testing. 56ddb9d Update requirements.txt again for CacheControl and lockfile. a5ac105 Update requirements.txt 5dff7db Add version constraint typing >= 3.5.2 so ruamel typechecks work. (#55) 6fb2969 Merge pull request #54 from common-workflow-language/newer-ruamel bc57aa0 adopt fixed ruamel.yaml 236b042 make mypy invocation py3 compat 61636e4 switch to latest ruamel.yaml with native types fefc957 install typed-ast during Jenkins tests c570b8a update to minimally required version of pip bada048 remove old setuptools wheel, then fix pip, then upgrade setuptools 454733c fix pip, then install setuptools a0c7d1a fix pip 9012e2b forcibly remove old setuptools 559f19a fix setuptools version specification typo 8a34425 update release test a833808 Merge pull request #52 from common-workflow-language/install-tests ac7341c last fix for the release test! 70dbadc also ship metaschema in source distribution ad0b913 add the Makefile to the source distribution 6df505c clarify module != package name 5890eb2 make tests installable and runnable after install 0514920 Merge pull request #51 from common-workflow-language/tighten-typecheck caa854a tweak travis/tox config b0c357b tighten up types ab9f395 Merge pull request #50 from common-workflow-language/type-docs 4ef0ed1 document how to expand Typeshed c646a62 Merge pull request #49 from common-workflow-language/schema-cache 14d51ca fix types 7dbffaf Add general http caching support. Applies to $import, $include and $schemas. f8297cc Cache external schemas after being loaded 1st time (doesn't cache to disk, though.) 2300cb0 Merge pull request #48 from common-workflow-language/fix-jsonld-context 449b5b8 Bump version c8305c0 Add default @id field to json-ld context if missing. ea983fd Merge pull request #47 from common-workflow-language/install-tests 7bd46e1 make tests installable and runnable after install 66b5ac6 update ruamel.yaml types 9e11a86 Merge pull request #46 from common-workflow-language/ruamel-yaml-bump 17fe62e re-pin ruamel.yaml fe7c49f Merge pull request #45 from common-workflow-language/improve-makerdf 3b414e7 replace variable shadowing with more meaningful names 1b1f58f replace Py3 exception passing to logger with py2 version b8ba072 update types 7008d94 Bugfix makerdf (helper function for converting to RDF). 94d9847 Merge pull request #44 from common-workflow-language/revert-optional-required 8a211bc Revert "make explicit optional and required fields" c9fc39f Name field is ambigous, so use list. f814cdb Can't distinguish between single SpecializeDef and mapSubject/mapPredicate, so disallow. 9f3927d update to v1.14 13061e5 Merge pull request #42 from common-workflow-language/specialize-refscope 750922d Can use refScope and mapSubject/mapPredicate on specialize. 9773208 Merge pull request #38 from common-workflow-language/mixin 5d1bda4 Merge pull request #40 from common-workflow-language/doc-map a6d6136 update type for typefmt() 41f414d Merge pull request #41 from common-workflow-language/rdfscomment c3ada96 update type for fetch() 2abc7f4 Doc generation understands mapSubject/mapPredicate -> map<> db8f409 sld:doc -> rdfs:comment aea5636 Add documentation about mixin. 63822d6 Remove spurious prints. 4217af8 Add mixin d626a74 Implement $mixin 93ed1fb pin ruamel.yaml to working version aa83430 Merge pull request #36 from common-workflow-language/explicit-optional a58b955 make explicit optional and required fields c509a07 Merge pull request #34 from common-workflow-language/unscoped_ids f857e9d type fixups 0407370 Allow idmaps for record fields. 5d9a08e Use makerdf for --print-rdf ce00252 Add test for non-scoped identifiers. ef27301 restore a dropped cast git-subtree-dir: cwltool/schemas git-subtree-split: 7a9bee2
1 parent 42f7318 commit fc03995

File tree

305 files changed

+121486
-79
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

305 files changed

+121486
-79
lines changed

cwltool/schemas/README.md

Lines changed: 58 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,80 @@
11
Common Workflow Language
22
========================
33

4-
The Common Workflow Language (CWL) is an informal, multi-vendor working group
5-
consisting of various organizations and individuals that have an interest in
6-
portability of data analysis workflows. Our goal is to create specifications
7-
that enable data scientists to describe analysis tools and workflows that are
8-
powerful, easy to use, portable, and support reproducibility.
4+
[![GitHub stars](https://img.shields.io/github/stars/common-workflow-language/common-workflow-language.svg)](https://github.com/common-workflow-language/common-workflow-language/stargazers) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/common-workflow-language/common-workflow-language?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
95

10-
CWL builds on technologies such as [JSON-LD](http://json-ld.org)
11-
for data modeling and [Docker](http://docker.com) for portable runtime\
12-
environments.
13-
14-
CWL is designed to express workflows for data-intensive science, such as
15-
Bioinformatics, Medical Imaging, Chemistry, Physics, and Astronomy.
6+
The Common Workflow Language (CWL) is a specification for describing analysis
7+
workflows and tools that are portable and scalable across a variety of software
8+
and hardware environments, from workstations to cluster, cloud, and high
9+
performance computing (HPC) environments. CWL is designed to meet the needs of
10+
data-intensive science, such as Bioinformatics, Medical Imaging, Astronomy,
11+
Physics, and Chemistry.
1612

17-
## CWL User Guide
13+
CWL is developed by an informal, multi-vendor working group consisting of
14+
organizations and individuals interested enabling scientists to share data
15+
analysis workflows. [The CWL project is on Github.](https://github.com/common-workflow-language/common-workflow-language)
1816

19-
[User guide for the current stable specification (v1.0)](http://www.commonwl.org/v1.0/UserGuide.html),
20-
provides a gentle introduction to writing CWL command line tool and workflow descriptions.
17+
CWL builds on technologies such as [JSON-LD](http://json-ld.org)
18+
for data modeling and [Docker](http://docker.com) for portable runtime
19+
environments.
2120

22-
## CWL Specification
21+
## User Guide
2322

24-
The current stable specification is [v1.0](http://www.commonwl.org/v1.0/):
23+
The [CWL user guide (v1.0)](http://www.commonwl.org/v1.0/UserGuide.html) provides a
24+
gentle introduction to learning how to write CWL command line tool and workflow
25+
descriptions.
2526

26-
http://www.commonwl.org/v1.0/
27+
## Specification
2728

28-
Older drafts: [draft-1](https://github.com/common-workflow-language/common-workflow-language/tree/master/draft-1), [draft-2](http://www.commonwl.org/draft-2/), [draft-3](http://www.commonwl.org/draft-3/)
29+
For developers and advanced users, the current
30+
[CWL specification (v1.0)](http://www.commonwl.org/v1.0/) provides
31+
authoritative documentation of the execution of CWL documents. Links older
32+
drafts:
33+
[draft-1](https://github.com/common-workflow-language/common-workflow-language/tree/master/draft-1),
34+
[draft-2](http://www.commonwl.org/draft-2/),
35+
[draft-3](http://www.commonwl.org/draft-3/)
2936

3037
### Citation
3138

3239
Please cite https://dx.doi.org/10.6084/m9.figshare.3115156.v2
3340

3441
## Implementations
3542

36-
Some of the software supporting running Common Workflow Language tools or workflows:
37-
38-
* [cwltool (reference implementation)](https://github.com/common-workflow-language/cwltool),
39-
[cwltool wiki page](https://github.com/common-workflow-language/common-workflow-language/wiki/cwltool-%28reference-implementation%29)
40-
* [Rabix](https://github.com/rabix/rabix),
41-
[Rabix wiki page](https://github.com/common-workflow-language/common-workflow-language/wiki/Rabix)
42-
* [Arvados](https://arvados.org),
43-
[Arvados wiki page](https://github.com/common-workflow-language/common-workflow-language/wiki/Arvados)
44-
* [Galaxy](https://github.com/common-workflow-language/Galaxy),
45-
[Galaxy wiki page](https://github.com/common-workflow-language/common-workflow-language/wiki/Galaxy)
46-
* [Parallel Recipes](https://github.com/yvdriess/precipes),
47-
[Parallel Recipes wiki page](https://github.com/common-workflow-language/common-workflow-language/wiki/Parallel-Recipes)
48-
* [Toil](https://github.com/BD2KGenomics/toil),
49-
[Toil wiki page](https://github.com/common-workflow-language/common-workflow-language/wiki/Toil)
50-
* [CancerCollaboratory](https://github.com/CancerCollaboratory),
51-
[CancerCollaboratory wiki page](https://github.com/common-workflow-language/common-workflow-language/wiki/CancerCollaboratory)
52-
* [Airflow (SciDAP)](https://github.com/SciDAP/scidap),
53-
[Airflow wiki page](https://github.com/common-workflow-language/common-workflow-language/wiki/SciDAP)
54-
* [cwl2script](https://github.com/common-workflow-language/cwl2script),
55-
[cwl2script page](https://github.com/common-workflow-language/common-workflow-language/wiki/cwl2script)
56-
* [Apache Taverna](http://taverna.incubator.apache.org/),
57-
[Apache Taverna wiki page](https://github.com/common-workflow-language/common-workflow-language/wiki/Taverna)
58-
59-
We continuously run the CWL conformance tests on several implementations:
60-
61-
https://ci.commonwl.org
62-
63-
## Examples
64-
65-
[Github repository of example tools and workflows.](https://github.com/common-workflow-language/workflows)
66-
67-
## Support
68-
69-
The best place to ask a question about all things CWL is on
43+
|Software|Description|CWL support|Platform support|Maturity|
44+
|--------|-----------|-----------|--------|--------|
45+
|[cwltool](https://github.com/common-workflow-language/cwltool)|Reference implementation of CWL|[![Build Status](https://ci.commonwl.org/job/cwltool-conformance/badge/icon)](http://ci.commonwl.org/job/cwltool-conformance/lastBuild/testReport/)|Linux, OS X, local execution only|Production|
46+
|[Arvados](https://arvados.org)|Distributed computing platform for data analysis on massive data sets. [Using CWL on Arvados](http://doc.arvados.org/user/cwl/cwl-runner.html)|[![Build Status](https://ci.commonwl.org/job/arvados-conformance/badge/icon)](http://ci.commonwl.org/job/arvados-conformance/lastBuild/testReport/)|AWS, GCP, Azure, Slurm|Production|
47+
|[Toil](https://github.com/BD2KGenomics/toil)|Toil is a workflow engine entirely written in Python.|[![Build Status](https://ci.commonwl.org/job/toil-conformance/badge/icon)](http://ci.commonwl.org/job/toil-conformance/lastBuild/testReport/)|AWS, GCP, Azure, OpenStack, Grid Engine, Mesos|Production|
48+
|[Apache Taverna](http://taverna.incubator.apache.org/)|Domain-independent Workflow Management System|[alpha](https://issues.apache.org/jira/browse/TAVERNA-900)|Java|Production|
49+
|[Galaxy](https://galaxyproject.org/)|Web-based platform for data intensive biomedical research.|[alpha](https://github.com/common-workflow-language/galaxy)|Python|Production|
50+
|[AWE](https://github.com/MG-RAST/AWE)|Workflow and resource management system for bioinformatics data analysis.|[alpha](https://github.com/wgerlach/AWE)|Go|Production|
51+
|[Funnel](https://github.com/bmeg/funnel)|Use Google Genomics Pipeline API with CWL|alpha|GCP|alpha|
52+
|[Rabix Bunny](https://github.com/rabix/bunny)|Reproducible Analyses for Bioinformatics|alpha|Java|alpha|
53+
54+
## Repositories of CWL Tools and Workflows
55+
56+
|Repository|Description|
57+
|----|-----------|
58+
|[Workflows repository](https://github.com/common-workflow-language/workflows)|Git repository of user contributed tools and workflows.|
59+
|[Dockstore tool registry](http://dockstore.org)|An open platform for sharing Docker-based tools described with the Common Workflow Language used by the GA4GH.|
60+
61+
## Software for working with CWL
62+
63+
|Software|Description|
64+
|--------|-----------|
65+
|[cwltest](https://github.com/common-workflow-language/cwltest)|CWL testing framework, automated testing of tools and workflows written with CWL|
66+
|[cwl-upgrader](https://github.com/common-workflow-language/cwl-upgrader)|Upgrade CWL documents from draft-3 to v1.0|
67+
|[argparse2cwl](https://github.com/common-workflow-language/gxargparse#argparse2cwl)|Generate CWL CommandLineTool wrapper from Python programs that use argparse. Also supports [click](http://click.pocoo.org/5/) argument parser.|
68+
|[cwl2argparse](https://github.com/common-workflow-language/cwl2argparse)|Generate Python argparse code from CWL CommandLineTool description.|
69+
|[pypi2cwl](https://github.com/common-workflow-language/pypi2cwl)|Automatically run argparse2cwl on any package in PyPi|
70+
|[cwlavro](https://github.com/common-workflow-language/cwlavro)|Java classes for loading CWL documents|
71+
72+
## Support, Community and Contributing
73+
74+
The recommended place to ask a question about all things CWL is on
7075
[Biostars](https://www.biostars.org/t/cwl/).
7176

72-
[![Biostars
73-
CWL](https://www.biostars.org/static/biostar2.logo.png)](https://www.biostars.org/t/cwl/)
74-
</a>
75-
76-
## Development and testing
77-
78-
[The CWL project is on Github.](https://github.com/common-workflow-language/common-workflow-language)
79-
80-
[![GitHub
81-
stars](https://img.shields.io/github/stars/common-workflow-language/common-workflow-language.svg)](https://github.com/common-workflow-language/common-workflow-language/stargazers)
82-
83-
There is a Jenkins server maintained by Curoverse that runs tests for the
84-
reference implementation, builds and uploads packages, and builds and uploads
85-
Docker images:
86-
87-
https://ci.curoverse.com/job/common-workflow-language/
88-
89-
Current build status: [![Build Status](https://ci.curoverse.com/buildStatus/icon?job=common-workflow-language)](https://ci.curoverse.com/job/common-workflow-language/)
90-
91-
## Community and Contributing
77+
[![Biostars CWL](https://www.biostars.org/static/biostar2.logo.png)](https://www.biostars.org/t/cwl/)
9278

9379
If you are interested in learning more or contributing ideas or code,
9480
[come chat with us on Gitter](https://gitter.im/common-workflow-language/common-workflow-language),
@@ -97,8 +83,6 @@ join the [mailing list common-workflow-language on Google Groups](https://groups
9783
[fork the repository](https://github.com/common-workflow-language/common-workflow-language)
9884
and send a pull request!
9985

100-
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/common-workflow-language/common-workflow-language?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
101-
10286
Your CWL Community Engineer, Michael R. Crusoe, publishes a blog about his work
10387
with updates at http://mrc.commonwl.org.
10488

cwltool/schemas/doc/add-new-draft.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
How to make a new draft version of the CWL spec
22

3-
1. Duplicate prior draft-n directory to draft-n+1 in a branch
3+
1. Duplicate prior directory to "vNewVersion-dev1" or "vExistingVersion-devN+1'
4+
in a branch
45
2. Update references to the new draft name.
56
3. Pull in the latest metaschema, where `schema_salad_repo` is the remote
67
repository for the schema salad tool.
78

89
git fetch --all
9-
git subtree add -P draft-4/salad schema_salad_repo/master
10+
git subtree add -P v1.1.0-dev1/salad schema_salad_repo/master
1011

1112
4. In the reference implementation (cwltool): make a new branch, and update the
1213
subtree checkout of the spec:
1314

14-
git subtree merge -P cwltool/schemas/ cwl_repo/draft-4
15+
git subtree merge -P cwltool/schemas/ cwl_repo/v1.1.0-dev1
1516

1617
Where `cwl_repo` is the remote repository for the CWL specifications.
1718
4. In the reference implementation, teach it about the new draft version:

cwltool/schemas/run_test.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ EOF
1313

1414
DRAFT=v1.0
1515
TEST_N=""
16+
JUNIT_XML=""
1617
RUNNER=cwl-runner
1718
PLATFORM=$(uname -s)
1819
COVERAGE="python"
@@ -35,6 +36,9 @@ do
3536
--only-tools)
3637
ONLY_TOOLS=--only-tools
3738
;;
39+
--junit-xml=*)
40+
JUNIT_XML=$arg
41+
;;
3842
*=*)
3943
eval $(echo $arg | cut -d= -f1)=\"$(echo $arg | cut -d= -f2-)\"
4044
;;
@@ -64,9 +68,9 @@ runtest() {
6468

6569
runs=$((runs+1))
6670
(cd $DRAFT
67-
${COVERAGE} -m cwltool.cwltest --tool "$1" \
71+
cwltest --tool "$1" \
6872
--test=conformance_test_${DRAFT}.yaml ${TEST_N} \
69-
${TEST_L} ${ONLY_TOOLS} --basedir ${DRAFT}
73+
${TEST_L} ${ONLY_TOOLS} ${JUNIT_XML} --basedir ${DRAFT}
7074
)
7175
checkexit
7276
}

cwltool/schemas/v1.0/conformance_test_v1.0.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -867,3 +867,19 @@
867867
}
868868
tool: "v1.0/js-expr-req-wf.cwl#wf"
869869
doc: Test that expressionLib requirement of individual tool step overrides expressionLib of workflow.
870+
871+
- job: v1.0/initialworkdirrequirement-docker-out-job.json
872+
output:
873+
OUTPUT:
874+
"checksum": "sha1$aeb3d11bdf536511649129f4077d5cda6a324118"
875+
"location": "ref.fasta"
876+
"secondaryFiles": [{
877+
"checksum": "sha1$da39a3ee5e6b4b0d3255bfef95601890afd80709",
878+
"location": "ref.fasta.fai",
879+
"class": "File",
880+
"size": 0
881+
}]
882+
"class": "File"
883+
"size": 12010
884+
tool: v1.0/initialworkdirrequirement-docker-out.cwl
885+
doc: Test output of InitialWorkDir
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"INPUT": {
3+
"class": "File",
4+
"location": "ref.fasta"
5+
}
6+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/usr/bin/env cwl-runner
2+
3+
cwlVersion: v1.0
4+
5+
requirements:
6+
- class: DockerRequirement
7+
dockerPull: debian:8
8+
- class: InitialWorkDirRequirement
9+
listing:
10+
- $(inputs.INPUT)
11+
12+
class: CommandLineTool
13+
14+
inputs:
15+
- id: INPUT
16+
type: File
17+
18+
outputs:
19+
- id: OUTPUT
20+
type: File
21+
outputBinding:
22+
glob: $(inputs.INPUT.basename)
23+
secondaryFiles:
24+
- .fai
25+
26+
arguments:
27+
- valueFrom: $(inputs.INPUT.basename).fai
28+
position: 0
29+
30+
baseCommand: [touch]
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- $import: Process.yml
2+
- $import: CommandLineTool.yml

0 commit comments

Comments
 (0)