Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cwltool does not support the specification in 3.7 #793

Open
tom-tan opened this issue Jun 14, 2018 · 0 comments
Open

cwltool does not support the specification in 3.7 #793

tom-tan opened this issue Jun 14, 2018 · 0 comments

Comments

@tom-tan
Copy link
Member

tom-tan commented Jun 14, 2018

In my understanding, Section 3.7 says that the platforms must look in several directories such as ~/.local/share/commonwl to search for CWL documents.
However, cwltool does not look in these directories.

How to reproduce

$ git clone [email protected]:common-workflow-language/common-workflow-language.git
$ cd common-workflow-language/v1.0/v1.0
$ mkdir -p ~/.local/share/commonwl
$ mv echo-tool-default.cwl ~/.local/share/commonwl
$ cwltool echo-wf-default.cwl

Expected Behavior

cwltool can find echo-tool-default.cwl for step step1 in echo-wf-default.cwl.

$ cwltool echo-wf-default.cwl
...
[workflow echo-wf-default.cwl] completed success
{
    "default_output": "workflow_default"
}
Final process status is success

Actual Behavior

cwltool failed to find echo-tool-default.cwl. It seems not to look in ~/.local/share/commonwl.

$ cwltool --debug echo-wf-default.cwl
/Users/tom-tan/.pyenv/versions/3.6.5/bin/cwltool 1.0.20180403145700
Resolved 'echo-wf-default.cwl' to 'file:///Users/tom-tan/common-workflow-language/v1.0/v1.0/echo-wf-default.cwl'
Tool definition failed validation:
echo-wf-default.cwl:7:1: checking field `steps`
echo-wf-default.cwl:8:3:   checking object `echo-wf-default.cwl#step1`
echo-wf-default.cwl:9:5:     Field `run` contains undefined reference to `file:///Users/tom-tan/common-workflow-language/v1.0/v1.0/echo-tool-default.cwl`
Traceback (most recent call last):
  File "/Users/tom-tan/.pyenv/versions/3.6.5/lib/python3.6/site-packages/cwltool/main.py", line 483, in main
    do_validate=args.do_validate)
  File "/Users/tom-tan/.pyenv/versions/3.6.5/lib/python3.6/site-packages/cwltool/load_tool.py", line 266, in validate_document
    processobj, new_metadata = document_loader.resolve_all(workflowobj, fileuri, checklinks=do_validate)
  File "/Users/tom-tan/.pyenv/versions/3.6.5/lib/python3.6/site-packages/schema_salad/ref_resolver.py", line 913, in resolve_all
    self.validate_links(document, u"", all_doc_ids)
  File "/Users/tom-tan/.pyenv/versions/3.6.5/lib/python3.6/site-packages/schema_salad/ref_resolver.py", line 1081, in validate_links
    raise errors[0]
schema_salad.validate.ValidationException: echo-wf-default.cwl:7:1: checking field `steps`
echo-wf-default.cwl:8:3:   checking object `echo-wf-default.cwl#step1`
echo-wf-default.cwl:9:5:     Field `run` contains undefined reference to `file:///Users/tom-tan/common-workflow-language/v1.0/v1.0/echo-tool-default.cwl`

Workflow Code

echo-wf-default.cwl

class: Workflow
cwlVersion: v1.0

inputs: []

steps:
  step1:
    run: echo-tool-default.cwl
    in:
      in: 
        default: workflow_default
    out: [out]
    
outputs:
    default_output:
      type: string
      outputSource: step1/out

echo-tool-default.cwl

#!/usr/bin/env cwl-runner

class: CommandLineTool
cwlVersion: v1.0
inputs:
  in:
    type: string
    default: tool_default
    inputBinding:
      position: 1
outputs:
  out:
    type: string
    outputBinding:
      glob: out.txt
      loadContents: true
      outputEval: $(self[0].contents)
baseCommand: [echo, -n]
stdout: out.txt

Full Traceback

Traceback (most recent call last):
  File "/Users/tom-tan/.pyenv/versions/3.6.5/lib/python3.6/site-packages/cwltool/main.py", line 483, in main
    do_validate=args.do_validate)
  File "/Users/tom-tan/.pyenv/versions/3.6.5/lib/python3.6/site-packages/cwltool/load_tool.py", line 266, in validate_document
    processobj, new_metadata = document_loader.resolve_all(workflowobj, fileuri, checklinks=do_validate)
  File "/Users/tom-tan/.pyenv/versions/3.6.5/lib/python3.6/site-packages/schema_salad/ref_resolver.py", line 913, in resolve_all
    self.validate_links(document, u"", all_doc_ids)
  File "/Users/tom-tan/.pyenv/versions/3.6.5/lib/python3.6/site-packages/schema_salad/ref_resolver.py", line 1081, in validate_links
    raise errors[0]
schema_salad.validate.ValidationException: echo-wf-default.cwl:7:1: checking field `steps`
echo-wf-default.cwl:8:3:   checking object `echo-wf-default.cwl#step1`
echo-wf-default.cwl:9:5:     Field `run` contains undefined reference to `file:///Users/tom-tan/common-workflow-language/v1.0/v1.0/echo-tool-default.cwl`

Your Environment

  • cwltool version:
$ cwltool --version
/Users/tom-tan/.pyenv/versions/3.6.5/bin/cwltool 1.0.20180403145700
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant