diff env/lib/python3.7/site-packages/cwltool/schemas/v1.1.0-dev1/invocation.md @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400 (2020-06-01)
parents 79f47841a781
children
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/cwltool/schemas/v1.1.0-dev1/invocation.md	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-# Running a Command
-
-To accommodate the enormous variety in syntax and semantics for input, runtime
-environment, invocation, and output of arbitrary programs, a CommandLineTool
-defines an "input binding" that describes how to translate abstract input
-parameters to an concrete program invocation, and an "output binding" that
-describes how to generate output parameters from program output.
-
-## Input binding
-
-The tool command line is built by applying command line bindings to the
-input object.  Bindings are listed either as part of an [input
-parameter](#CommandInputParameter) using the `inputBinding` field, or
-separately using the `arguments` field of the CommandLineTool.
-
-The algorithm to build the command line is as follows.  In this algorithm,
-the sort key is a list consisting of one or more numeric or string
-elements.  Strings are sorted lexicographically based on UTF-8 encoding.
-
-  1. Collect `CommandLineBinding` objects from `arguments`.  Assign a sorting
-  key `[position, i]` where `position` is
-  [`CommandLineBinding.position`](#CommandLineBinding) and `i`
-  is the index in the `arguments` list.
-
-  2. Collect `CommandLineBinding` objects from the `inputs` schema and
-  associate them with values from the input object.  Where the input type
-  is a record, array, or map, recursively walk the schema and input object,
-  collecting nested `CommandLineBinding` objects and associating them with
-  values from the input object.
-
-  3. Create a sorting key by taking the value of the `position` field at
-  each level leading to each leaf binding object.  If `position` is not
-  specified, it is not added to the sorting key.  For bindings on arrays
-  and maps, the sorting key must include the array index or map key
-  following the position.  If and only if two bindings have the same sort
-  key, the tie must be broken using the ordering of the field or parameter
-  name immediately containing the leaf binding.
-
-  4. Sort elements using the assigned sorting keys.  Numeric entries sort
-  before strings.
-
-  5. In the sorted order, apply the rules defined in
-  [`CommandLineBinding`](#CommandLineBinding) to convert bindings to actual
-  command line elements.
-
-  6. Insert elements from `baseCommand` at the beginning of the command
-  line.
-
-## Runtime environment
-
-All files listed in the input object must be made available in the runtime
-environment.  The implementation may use a shared or distributed file
-system or transfer files via explicit download to the host.  Implementations
-may choose not to provide access to files not explicitly specified in the input
-object or process requirements.
-
-Output files produced by tool execution must be written to the
-**designated output directory**.  The initial current working
-directory when executing the tool must be the designated output
-directory.  The designated output directory should be empty, except
-for files or directories specified using
-[InitialWorkDirRequirement](InitialWorkDirRequirement).
-
-Files may also be written to the **designated temporary directory**.  This
-directory must be isolated and not shared with other processes.  Any files
-written to the designated temporary directory may be automatically deleted by
-the workflow platform immediately after the tool terminates.
-
-For compatibility, files may be written to the **system temporary directory**
-which must be located at `/tmp`.  Because the system temporary directory may be
-shared with other processes on the system, files placed in the system temporary
-directory are not guaranteed to be deleted automatically.  A tool
-must not use the system temporary directory as a backchannel communication with
-other tools.  It is valid for the system temporary directory to be the same as
-the designated temporary directory.
-
-When executing the tool, the tool must execute in a new, empty environment
-with only the environment variables described below; the child process must
-not inherit environment variables from the parent process except as
-specified or at user option.
-
-  * `HOME` must be set to the designated output directory.
-  * `TMPDIR` must be set to the designated temporary directory.
-  * `PATH` may be inherited from the parent process, except when run in a
-    container that provides its own `PATH`.
-  * Variables defined by [EnvVarRequirement](#EnvVarRequirement)
-  * The default environment of the container, such as when using
-    [DockerRequirement](#DockerRequirement)
-
-An implementation may forbid the tool from writing to any location in the
-runtime environment file system other than the designated temporary directory,
-system temporary directory, and designated output directory.  An implementation
-may provide read-only input files, and disallow in-place update of input files.
-The designated temporary directory, system temporary directory and designated
-output directory may each reside on different mount points on different file
-systems.
-
-An implementation may forbid the tool from directly accessing network
-resources.  Correct tools must not assume any network access.  Future versions
-of the specification may incorporate optional process requirements that
-describe the networking needs of a tool.
-
-The `runtime` section available in [parameter references](#Parameter_references)
-and [expressions](#Expressions) contains the following fields.  As noted
-earlier, an implementation may perform deferred resolution of runtime fields by providing
-opaque strings for any or all of the following fields; parameter references
-and expressions may only use the literal string value of the field and must
-not perform computation on the contents.
-
-  * `runtime.outdir`: an absolute path to the designated output directory
-  * `runtime.tmpdir`: an absolute path to the designated temporary directory
-  * `runtime.cores`:  number of CPU cores reserved for the tool process
-  * `runtime.ram`:    amount of RAM in mebibytes (2\*\*20) reserved for the tool process
-  * `runtime.outdirSize`: reserved storage space available in the designated output directory
-  * `runtime.tmpdirSize`: reserved storage space available in the designated temporary directory
-
-For `cores`, `ram`, `outdirSize` and `tmpdirSize`, if an implementation can't
-provide the actual number of reserved cores during the expression evaluation time,
-it should report back the minimal requested amount.
-
-See [ResourceRequirement](#ResourceRequirement) for details on how to
-describe the hardware resources required by a tool.
-
-The standard input stream and standard output stream may be redirected as
-described in the `stdin` and `stdout` fields.
-
-## Execution
-
-Once the command line is built and the runtime environment is created, the
-actual tool is executed.
-
-The standard error stream and standard output stream (unless redirected by
-setting `stdout` or `stderr`) may be captured by platform logging facilities
-for storage and reporting.
-
-Tools may be multithreaded or spawn child processes; however, when the
-parent process exits, the tool is considered finished regardless of whether
-any detached child processes are still running.  Tools must not require any
-kind of console, GUI, or web based user interaction in order to start and
-run to completion.
-
-The exit code of the process indicates if the process completed
-successfully.  By convention, an exit code of zero is treated as success
-and non-zero exit codes are treated as failure.  This may be customized by
-providing the fields `successCodes`, `temporaryFailCodes`, and
-`permanentFailCodes`.  An implementation may choose to default unspecified
-non-zero exit codes to either `temporaryFailure` or `permanentFailure`.
-
-The exit code of the process is available to expressions in
-`outputEval` as `runtime.exitCode`.
-
-## Output binding
-
-If the output directory contains a file named "cwl.output.json", that file
-must be loaded and used as the output object.  Otherwise, the output object
-must be generated by walking the parameters listed in `outputs` and
-applying output bindings to the tool output.  Output bindings are
-associated with output parameters using the `outputBinding` field.  See
-[`CommandOutputBinding`](#CommandOutputBinding) for details.