Comments (4)
Re DOIs, since we'll likely want more metadata for the underlying app, perhaps we can use a nested DOAP object:
class: CommandLineTool
label: "samtools sort"
application:
id: doi:10.1000/1234
doap:name: samtools
doap:description: "Samtools is..."
doap:license: spdx:MIT
doap:homepage: "http://samtools.sourceforge.net/"
doap:repository: "https://github.com/samtools/samtools"
doap:revision: "1.2"
Re version of the tool document, I'm not sure how to approach this. I'd prefer if the top-level identifier was a URL for the specific (immutable) revision of the document and use some other property to signify that e.g. "samtools_sort_0.1" and "samtools_sort_0.2" are different revisions of "samtools_sort". Perhaps use top-level doap:name
and doap:revision
for this purpose?
Re custom environment requirements, it should be done via custom value for the class
property in the requirements
list. For example:
class: CommandLineTool
label: wget
requirements:
- class: galaxy:AptPackageRequirement
galaxy:package_name: wget
For the above tool, a platform that doesn't recognize galaxy:AptPackageRequirement
should refuse to run it.
If you want to leave optional execution environment "hints", use the hints
property:
class: CommandLineTool
hints:
- class: galaxy:PreferredEC2InstanceType
value: m1.large
For the above tool, a platform that doesn't recognize galaxy:PreferredEC2InstanceType
can ignore it.
There's currently no way to specify alternate sets of requirements, but it feels like it's something we can add later while keeping backward-compatibility (e.g. though a OneOfRequirement type).
Regarding conditional outputs, personally, I don't think we should use them in the manner proposed in that issue. Rather, they could simply be UI hints.
from common-workflow-language.
From this week's call I think we identified a general need to specify how to extract a tool's version; should this be split out into its own issue?
from common-workflow-language.
Yeah, we should start splitting feature requests/ideas in own issues.
from common-workflow-language.
Somehow I feel that there are some things mixed up. A CWL command line describes just that. A command line may require a particular software to be installed or that executed tool already comes with the base installation on a particular platform. For instance above referenced wget does not need to get installed on Mac OS X, if I am not erroneous. The workflow shoud just work, then, and not be ignored.
The challenge is to clarify that the wget the workflow demands is the same that a distribution's cognate package provides. This is not always the case. For excample it is sheer luck that I was once the first to provide a package called muscle, which is also a communication thing. And we had a conflict with plink which is also in the package putty. All these subtle differences across platforms shall not be expressed in the command line description itself. Instead, the command should refer to an abstract namespace/registry to identify the means to install a software that will provide the right binary.
Different platforms then make different proposals on how to install the command. And one platform could inherit such proposals from another. This will come particularly handy for cloud images that will differ in their wealth of packages that these already provide, but a particular resource may declare to be a derivative of Debian stable, such that anything not already provided would then be installed the same way that it would on any other Debian stable release.
from common-workflow-language.
Related Issues (20)
- Register CWL as an "identified ICT standard" for EU public procurement HOT 4
- rename/alias dockerImageId to dockerImageName HOT 1
- error: error while writing Hello: /var/spool/cwl/Hello.class HOT 16
- $graph: extend schema to represent that cwlVersion must be present at the root?
- conformance tests should not depend on the contents of the 'location' field in Files, Directories
- Gather implementation guidance
- Some tools behave differently if stdin is a plain file versus a device
- Allow not only bind-mounts as inputs but also named volume mounts HOT 2
- Create a "CWL linter" tool HOT 2
- enums as URIs: enhance documentation, fix behaviour
- More custom data types HOT 1
- channels concept HOT 7
- Extract tool and version for cwl provenance
- Support local paths for dockerLoad & dockerImport
- conditional step with `pickValue` method in inputs crashes when condition does not apply HOT 1
- Request for Multiple docker images HOT 1
- cwltool --print-deps fails with workflows having namespaced location steps HOT 1
- schema: explore removing the other values from cwlVersion (except the current version)
- [Output Directory] Output the file on a specific directory
- +yaml is now valid for IANA media types HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from common-workflow-language.