The main CWL document describes workflow inputs, steps, requirements, and outputs. Depending on the type of workflow, there could be just one CWL document or more. For example, in a nested workflow, the main description can refer to the sub-workflows (/steps) in external CWL files. The names of the inputs and outputs are exchanged within the CWL description to point back to the source CWL description of these variables and to use the same data entities throughout the workflow execution. CWL also supports the use of Docker-format software containers run by any compatible software container engine such as docker, singularity, or podman for the portability of analysis tools. Software containers serve as a software unit with all the code and its dependencies packaged together which can be executed in different computing environments .