(Duplication of https://github.com/common-workflow-language/common-workflow-language/pull/309)
I want to split out some off my settings to a central configuration file and decided to use the mixin keyword. I started out with this example: http://www.commonwl.org/v1.0/SchemaSalad.html#Mixin
workflow.yml
:
cwlVersion: "v1.0"
class: Workflow
inputs:
$mixin: settings.yml
inpFile:
type: File
...
settings.yml
:
java6:
type: string
default: "/opt/java6/bin/java"
java8:
type: string
default: "/opt/java8/bin/java"
Running this through cwltool (v1.0.20161110155008) I get the following error:
Tool definition failed validation:
While checking field `inputs`
While checking object `file:///DEEP_fhgfs/projects/karln/WGBS/161007.cwlPlayground/git/BS-seq-pipelines/CWL/pipelines/postMap/bisSNP-realignPipe.yml#$mixin`
Field `type` contains undefined reference to `../settings.yml`, tried [u'file:///DEEP_fhgfs/projects/karln/WGBS/161007.cwlPlayground/git/BS-seq-pipelines/CWL/pipelines/postMap/bisSNP-realignPipe.yml#../settings.yml']
My question is two-fold:
- What am I doing wrong? I assume that I'm formatting the settings.yml file wrongly. (Including the curly brackets from the example renders me another error)
- Is there a better way to provide global settings for multiple tools?
(Edit: after trying to figure it out for a while this is as far as I got. I also found an issue on the CWL-github page referring to something similar)
http://www.yamllint.com/
you can use that to check your yaml
Thanks for the site. Very useful.
Both files validate, but the tool helped me what could be the problem. The $mixin line is an entry in the inputs array. This leads to that the content of the settings.yml file becomes a subarray instead of being mixed in with the other elements.
It might be that I'm duplicating this:
https://github.com/common-workflow-language/common-workflow-language/pull/309