11# Best Practices
22
3- Below are a set of recommended good practices to keep in mind when writing a
3+ The following are a set of recommended good practices to keep in mind when writing a
44Common Workflow Language description for a tool or workflow. These guidelines
5- are presented for consideration on a scale of usefulness: more is better, not
5+ are presented for consideration on a scale of usefulness: although more is better, not
66all are required.
77
88- No ` type: string ` parameters for names of input or reference
99 files/directories; use ` type: File ` or ` type: Directory ` as appropriate.
1010
1111- A CWL document (in conjunction with any external components like ` Dockerfile ` s) is software code.
1212 Workflow developers should be aware that the usual rules of software licensing apply to this
13- document. For example if the workflow is shared publicly, licensing terms have to be clear so that
14- a future user can understand under what conditions they can run the workflow, modify it and/or
15- combine it with other workflows. For this reason please consider including a license field in the
13+ document. For example, if the workflow is shared publicly, licensing terms must be clear so that
14+ a future user understands under what conditions they can run the workflow, modify it and/or
15+ combine it with other workflows. For this reason, please consider including a license field in the
1616 document. The authors of this guide urge you to choose a pre-existing license rather than trying
1717 to write your own (see the link below to learn more about choosing a license), and our recommended
1818 practice is to choose a license that allows for re-use by anyone, e.g. [ Apache 2.0] [ apache-license ] .
1919
2020 If possible, the license should be specified with its corresponding [ SPDX identifier] [ spdx ] .
21- Construct the metadata field for the licence by providing a URL of the form
21+ Construct the metadata field for the license by providing a URL of the form
2222 ` https://spdx.org/licenses/[SPDX-ID] ` where ` SPDX-ID ` is taken from the list of identifiers
2323 linked above. See the example snippet below for guidance. For non-standard licenses without an SPDX
2424 identifier, provide a URL to the license.
@@ -38,7 +38,7 @@ all are required.
3838 [ the Metadata and Authorship section of this User Guide] ( ../topics/metadata-and-authorship.md ) .
3939
4040- Include [ attribution information] [ license-example ] for the author(s) of
41- the CWL tool or workflow description. Use unambiguous identifiers like
41+ the CWL tool or workflow description. Use unambiguous identifiers like
4242 [ ORCID] [ orcid ] .
4343
4444- In tool descriptions, list dependencies using short name(s) under
@@ -60,23 +60,23 @@ all are required.
6060 See also ` iana:text/plain ` , ` iana:text/tab-separated-values ` with
6161 ` $namespaces: { iana: "https://www.iana.org/assignments/media-types/" } ` .
6262 [ Full IANA media type list] [ iana-types ] (also known as MIME types). For
63- non-bioinformatics tools use or build an appropriate ontology/controlled
63+ non-bioinformatics tools, use or build an appropriate ontology/controlled
6464 vocabulary in the same way. Please edit this page to let us know about it.
6565
6666- Mark all input and output ` File ` s that are read from or written to in a
6767 streaming compatible way (only once, no random-access), as ` streamable: true ` .
6868
6969- Each ` CommandLineTool ` description should focus on a single operation
7070 only, even if the (sub)command is capable of more. Don't overcomplicate your
71- tool descriptions with options that you don't need/ use.
71+ tool descriptions with options that you don't need or use.
7272
7373- Custom types should be defined with one external YAML per type
7474 definition for re-use.
7575
76- - Include a top level short ` label ` summarising the tool/workflow.
76+ - Include a top- level short ` label ` summarising the tool/workflow.
7777
78- - If useful, include a top level ` doc ` as well. This should provide a
79- longer, more detailed description than was provided in the top level ` label `
78+ - If useful, include a top- level ` doc ` as well. This should provide a
79+ longer, more detailed description than was provided in the top- level ` label `
8080 (see above).
8181
8282- Use ` type: enum ` instead of ` type: string ` for elements with a fixed
0 commit comments