@@ -78,7 +78,10 @@ $graph:
78
78
79
79
Post v1.0 release changes to the spec.
80
80
81
- * 13 July 2016: Mark `baseCommand` as optional and update descriptive text.
81
+ * 13 July 2016: Mark `baseCommand` as optional and update descriptive
82
+ text.
83
+ * 14 November 2016: Clarify [SoftwareRequirement](#SoftwareRequirement)
84
+ `spec` fields.
82
85
83
86
## Purpose
84
87
@@ -693,26 +696,51 @@ $graph:
693
696
fields :
694
697
- name : package
695
698
type : string
696
- doc : " The common name of the software to be configured."
699
+ doc : |
700
+ The name of the software to be made available. If the name is
701
+ common, inconsistent, or otherwise ambiguous it should be combined with
702
+ one or more identifiers in the `specs` field.
697
703
- name : version
698
704
type : string[]?
699
- doc : " The (optional) version of the software to configured."
705
+ doc : |
706
+ The (optional) versions of the software that are known to be
707
+ compatible.
700
708
- name : specs
701
709
type : string[]?
702
710
doc : |
703
- Must be one or more IRIs identifying resources for installing or
704
- enabling the software. Implementations may provide resolvers which map
705
- well-known software spec IRIs to some configuration action.
706
-
707
- For example, an IRI `https://packages.debian.org/jessie/bowtie` could
708
- be resolved with `apt-get install bowtie`. An IRI
711
+ One or more IRIs identifying resources for installing or
712
+ enabling the software named in the `package` field. Implementations may
713
+ provide resolvers which map these software identifer IRIs to some
714
+ configuration action; or they can use only the name from the `package`
715
+ field on a best effort basis.
716
+
717
+ For example, the IRI `https://packages.debian.org/bowtie` could
718
+ be resolved with `apt-get install bowtie`. The IRI
709
719
`https://anaconda.org/bioconda/bowtie` could be resolved with `conda
710
720
install -c bioconda bowtie`.
711
721
712
- Tools may also provide IRIs to index entries such as
713
- [RRID](http://www.identifiers.org/rrid/), such as
714
- `http://identifiers.org/rrid/RRID:SCR_005476`
715
-
722
+ IRIs can also be system independent and used to map to a specific
723
+ software installation or selection mechanism.
724
+ Using [RRID](https://www.identifiers.org/rrid/) as an example:
725
+ `https://identifiers.org/rrid/RRID:SCR_005476` could be fulfilled using
726
+ the above mentioned Debian or bioconda package, a local installation
727
+ managed by [Environement Modules](http://modules.sourceforge.net/), or
728
+ any other mechanism the platform chooses.
729
+
730
+ A site specific IRI can be listed as well. For example, an academic
731
+ computing cluster using Environement Modules could list the IRI
732
+ `https://hpc.university.edu/modules/bowtie-tbb/1.22` to indicate that
733
+ `module load bowtie-tbb/1.1.2` should be executed to make available
734
+ `bowtie` version 1.1.2 with the TBB library prior to running the
735
+ accompanying Workflow or CommandLineTool. Note that the example IRI is
736
+ specific to a particular institution and computing environment as the
737
+ Environment Modules system does not have a common namespace.
738
+
739
+ This last example is the least portable and should only be used if
740
+ mechanisms based off of the `package` field or more generic IRIs are
741
+ unavailable or unsuitable. While harmless to other sites, site specific
742
+ software IRIs should be left out of shared CWL descriptions to avoid
743
+ clutter.
716
744
717
745
- name : Dirent
718
746
type : record
0 commit comments