Skip to content

Commit c9ef5fd

Browse files
authored
Merge pull request #28 from common-workflow-language/software-requirements
Software Requirements Lesson
2 parents 6a67f62 + 172a614 commit c9ef5fd

File tree

3 files changed

+59
-0
lines changed

3 files changed

+59
-0
lines changed

_episodes/20-software-requirements.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
---
2+
title: "Specifying Software Requirements"
3+
teaching: 10
4+
exercises: 0
5+
questions:
6+
- "How do I specify requirements/dependencies for a job?"
7+
- "What level of detail should I provide for a software requirement?"
8+
objectives:
9+
- "Learn how to write software requirement descriptions."
10+
- "Learn how to use SciCrunch to retrieve a unique identifier for a tool/version
11+
that is required."
12+
keypoints:
13+
- "Software requirements should be specified under `hints:SoftwareRequirement`."
14+
---
15+
Often tool descriptions will be written for a specific version of a software. To
16+
make it easier for others to make use of your descriptions, you can include a
17+
`SoftwareRequirement` field in the `hints` section.
18+
This may also help to avoid confusion about which version of a tool the
19+
description was written for.
20+
21+
~~~
22+
{% include cwl/custom-types.cwl %}
23+
~~~
24+
{: .source}
25+
26+
In this example, the software requirement being described is InterProScan
27+
version 5.21-60.
28+
29+
~~~
30+
hints:
31+
SoftwareRequirement:
32+
packages:
33+
interproscan:
34+
specs: [ "https://identifiers.org/rrid/RRID:SCR_005829" ]
35+
version: [ "5.21-60" ]
36+
~~~
37+
{: .source}
38+
39+
Depending on your CWL runner, these hints may be used to check
40+
that required software is installed and available before the job is run. To enable
41+
these checks with the reference implementation, use the [dependency resolvers configuration][dependencies].
42+
43+
As well as a version number, a unique resource identifier (URI) for the tool is
44+
given in the form of an [RRID][rrid]. Resources with RRIDs can be looked up in the
45+
[SciCrunch][scicrunch] registry, which provides a portal for finding, tracking,
46+
and referring to scientific resources consistently. If you want to specify a
47+
tool as a `SoftwareRequirement`, search for the tool on SciCrunch and use the
48+
RRID that it has been assigned in the registry. (Follow [this tutorial][scicrunch-add-tool]
49+
if you want to add a tool to SciCrunch.) You can use this RRID to refer
50+
to the tool (via [identifiers.org][identifiers]) in the `specs` field of your
51+
requirement description. Other good choices, in order of preference, are to
52+
include the DOI for the main tool citation and the URL to the tool.
53+
54+
55+
[rrid]: https://scicrunch.org/resources/about/resource
56+
[scicrunch]: https://scicrunch.org/
57+
[dependencies]: https://github.com/common-workflow-language/cwltool#leveraging-softwarerequirements-beta
58+
[identifiers]: https://identifiers.org/
59+
[scicrunch-add-tool]: https://scicrunch.org/page/tutorials/336
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)