├── .editorconfig ├── .github ├── dependabot.yml └── workflows │ ├── ci-tests.yml │ ├── codeql.yml │ ├── documentation-links.yaml │ └── gh-pages.yaml ├── .gitignore ├── .readthedocs.yaml ├── .zenodo.json ├── AUTHORS.md ├── CITATION.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.md ├── Makefile ├── README.md ├── cwl ├── doc │ ├── __init__.py │ └── graphs.py └── sphinx │ ├── __init__.py │ └── runcmd.py ├── locales ├── ca │ └── LC_MESSAGES │ │ ├── sphinx.po │ │ └── user_guide.po ├── es │ └── LC_MESSAGES │ │ ├── sphinx.po │ │ └── user_guide.po ├── ja │ └── LC_MESSAGES │ │ ├── sphinx.po │ │ └── user_guide.po ├── pt_BR │ └── LC_MESSAGES │ │ ├── sphinx.po │ │ └── user_guide.po ├── pt_PT │ └── LC_MESSAGES │ │ ├── sphinx.po │ │ └── user_guide.po ├── sphinx.pot ├── user_guide.pot ├── zgh │ └── LC_MESSAGES │ │ ├── sphinx.po │ │ └── user_guide.po ├── zh_CN └── zh_Hans │ └── LC_MESSAGES │ ├── sphinx.po │ └── user_guide.po ├── make.bat ├── pyproject.toml └── src ├── LICENSE.md ├── _includes ├── cwl │ ├── additional-arguments-and-parameters │ │ ├── Hello.class │ │ ├── Hello.java │ │ ├── arguments-job.yml │ │ └── arguments.cwl │ ├── creating-files-at-runtime │ │ ├── createfile.cwl │ │ └── echo-job.yml │ ├── custom-types │ │ ├── InterProScan-apps.yml │ │ ├── biom-convert-table.yaml │ │ ├── custom-types.cwl │ │ ├── custom-types.yml │ │ ├── rich_sparse_otu_table.biom │ │ └── test_proteins.fasta │ ├── cwl_tests.yml │ ├── echo.cwl │ ├── environment-variables │ │ ├── echo-job.yml │ │ └── env.cwl │ ├── expressions │ │ ├── custom-functions.js │ │ ├── empty.yml │ │ ├── expression.cwl │ │ ├── hello-world-expressionlib-external.cwl │ │ ├── hello-world-expressionlib-inline.cwl │ │ └── hello-world-expressionlib.cwl │ ├── file-formats │ │ ├── file-formats.bam │ │ ├── metadata_example.cwl │ │ └── sample.yml │ ├── hello_world-job.json │ ├── hello_world.cwl │ ├── inputs │ │ ├── array-inputs-job.yml │ │ ├── array-inputs.cwl │ │ ├── exclusive-parameter-expressions.cwl │ │ ├── inp-job.yml │ │ ├── inp.cwl │ │ ├── record-job1.yml │ │ ├── record-job2.yml │ │ ├── record-job3.yml │ │ ├── record.cwl │ │ └── whale.txt │ ├── metadata-and-authorship │ │ ├── file-formats.bam │ │ ├── metadata_example2.cwl │ │ ├── metadata_example3.cwl │ │ └── sample.yml │ ├── operations │ │ ├── echo.cwl │ │ └── operations.cwl │ ├── outputs │ │ ├── array-outputs-job.yml │ │ ├── array-outputs.cwl │ │ ├── baz.txt │ │ ├── echo-job.yml │ │ ├── foo.txt │ │ ├── hello.tar │ │ ├── hello.txt │ │ ├── stdout.cwl │ │ ├── tar-job.yml │ │ └── tar.cwl │ ├── parameter-references │ │ ├── goodbye.txt │ │ ├── hello.tar │ │ ├── tar-param-job.yml │ │ └── tar-param.cwl │ ├── specifying-software-requirements │ │ ├── InterProScan-apps.yml │ │ ├── custom-types.cwl │ │ ├── custom-types.yml │ │ └── test_proteins.fasta │ ├── staging-input-files │ │ ├── Hello.class │ │ ├── Hello.java │ │ ├── arguments-job.yml │ │ └── linkfile.cwl │ ├── troubleshooting │ │ ├── troubleshooting-wf1-stepb-fixed.cwl │ │ └── troubleshooting-wf1.cwl │ ├── true.cwl │ ├── true_shebang.cwl │ ├── using-containers │ │ ├── docker-job.yml │ │ ├── docker.cwl │ │ └── hello.js │ └── workflows │ │ ├── 1st-workflow-job.yml │ │ ├── 1st-workflow.cwl │ │ ├── Hello.class │ │ ├── arguments.cwl │ │ ├── hello.tar │ │ ├── hello_world.cwl │ │ ├── hello_world_to_stdout.cwl │ │ ├── nestedworkflows.cwl │ │ ├── scatter-job.yml │ │ ├── scatter-nested-workflow.cwl │ │ ├── scatter-two-steps.cwl │ │ ├── scatter-workflow.cwl │ │ ├── tar-param.cwl │ │ └── wc-tool.cwl ├── favicons.html └── what-is-cwl.md ├── _static ├── css │ └── custom.css ├── images │ ├── favicons │ │ └── cwl │ │ │ ├── android-icon-144x144.png │ │ │ ├── android-icon-192x192.png │ │ │ ├── android-icon-36x36.png │ │ │ ├── android-icon-48x48.png │ │ │ ├── android-icon-72x72.png │ │ │ ├── android-icon-96x96.png │ │ │ ├── apple-icon-180x180.png │ │ │ ├── apple-icon-precomposed.png │ │ │ ├── apple-icon.png │ │ │ ├── apple-touch-icon-114x114.png │ │ │ ├── apple-touch-icon-120x120.png │ │ │ ├── apple-touch-icon-144x144.png │ │ │ ├── apple-touch-icon-152x152.png │ │ │ ├── apple-touch-icon-57x57.png │ │ │ ├── apple-touch-icon-60x60.png │ │ │ ├── apple-touch-icon-72x72.png │ │ │ ├── apple-touch-icon-76x76.png │ │ │ ├── favicon-128.png │ │ │ ├── favicon-16x16.png │ │ │ ├── favicon-196x196.png │ │ │ ├── favicon-32x32.png │ │ │ ├── favicon-96x96.png │ │ │ ├── favicon.ico │ │ │ ├── ms-icon-144x144.png │ │ │ ├── ms-icon-150x150.png │ │ │ ├── ms-icon-310x310.png │ │ │ └── ms-icon-70x70.png │ └── logos │ │ └── cwl │ │ ├── CWL-Logo-HD-cropped2.png │ │ └── cwl-icon.png └── switcher.json ├── _templates └── project-links.html ├── assets ├── favicons │ ├── cp │ │ ├── apple-touch-icon-114x114.png │ │ ├── apple-touch-icon-120x120.png │ │ ├── apple-touch-icon-144x144.png │ │ ├── apple-touch-icon-152x152.png │ │ ├── apple-touch-icon-57x57.png │ │ ├── apple-touch-icon-60x60.png │ │ ├── apple-touch-icon-72x72.png │ │ ├── apple-touch-icon-76x76.png │ │ ├── favicon-128.png │ │ ├── favicon-16x16.png │ │ ├── favicon-196x196.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── favicon.ico │ │ ├── mstile-144x144.png │ │ ├── mstile-150x150.png │ │ ├── mstile-310x150.png │ │ ├── mstile-310x310.png │ │ └── mstile-70x70.png │ ├── cwl │ │ ├── android-icon-144x144.png │ │ ├── android-icon-192x192.png │ │ ├── android-icon-36x36.png │ │ ├── android-icon-48x48.png │ │ ├── android-icon-72x72.png │ │ ├── android-icon-96x96.png │ │ ├── apple-icon-180x180.png │ │ ├── apple-icon-precomposed.png │ │ ├── apple-icon.png │ │ ├── apple-touch-icon-114x114.png │ │ ├── apple-touch-icon-120x120.png │ │ ├── apple-touch-icon-144x144.png │ │ ├── apple-touch-icon-152x152.png │ │ ├── apple-touch-icon-57x57.png │ │ ├── apple-touch-icon-60x60.png │ │ ├── apple-touch-icon-72x72.png │ │ ├── apple-touch-icon-76x76.png │ │ ├── favicon-128.png │ │ ├── favicon-16x16.png │ │ ├── favicon-196x196.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── favicon.ico │ │ ├── ms-icon-144x144.png │ │ ├── ms-icon-150x150.png │ │ ├── ms-icon-310x310.png │ │ └── ms-icon-70x70.png │ ├── dc │ │ ├── apple-touch-icon-114x114.png │ │ ├── apple-touch-icon-120x120.png │ │ ├── apple-touch-icon-144x144.png │ │ ├── apple-touch-icon-152x152.png │ │ ├── apple-touch-icon-57x57.png │ │ ├── apple-touch-icon-60x60.png │ │ ├── apple-touch-icon-72x72.png │ │ ├── apple-touch-icon-76x76.png │ │ ├── favicon-128.png │ │ ├── favicon-16x16.png │ │ ├── favicon-196x196.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── favicon.ico │ │ ├── mstile-144x144.png │ │ ├── mstile-150x150.png │ │ ├── mstile-310x150.png │ │ ├── mstile-310x310.png │ │ └── mstile-70x70.png │ ├── lc │ │ ├── apple-touch-icon-114x114.png │ │ ├── apple-touch-icon-120x120.png │ │ ├── apple-touch-icon-144x144.png │ │ ├── apple-touch-icon-152x152.png │ │ ├── apple-touch-icon-57x57.png │ │ ├── apple-touch-icon-60x60.png │ │ ├── apple-touch-icon-72x72.png │ │ ├── apple-touch-icon-76x76.png │ │ ├── favicon-128.png │ │ ├── favicon-16x16.png │ │ ├── favicon-196x196.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── favicon.ico │ │ ├── mstile-144x144.png │ │ ├── mstile-150x150.png │ │ ├── mstile-310x150.png │ │ ├── mstile-310x310.png │ │ └── mstile-70x70.png │ └── swc │ │ ├── apple-touch-icon-114x114.png │ │ ├── apple-touch-icon-120x120.png │ │ ├── apple-touch-icon-144x144.png │ │ ├── apple-touch-icon-152x152.png │ │ ├── apple-touch-icon-57x57.png │ │ ├── apple-touch-icon-60x60.png │ │ ├── apple-touch-icon-72x72.png │ │ ├── apple-touch-icon-76x76.png │ │ ├── favicon-128.png │ │ ├── favicon-16x16.png │ │ ├── favicon-196x196.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── favicon.ico │ │ ├── mstile-144x144.png │ │ ├── mstile-150x150.png │ │ ├── mstile-310x150.png │ │ ├── mstile-310x310.png │ │ └── mstile-70x70.png ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 └── img │ ├── cp-logo-blue.svg │ ├── cwl-icon.png │ ├── cwl-logo-white.png │ ├── dc-icon-black.svg │ ├── dc-logo-black.svg │ ├── lc-icon-black.png │ ├── lc-icon-black.svg │ ├── lc-logo-black.png │ ├── lc-logo-black.svg │ ├── swc-icon-blue.svg │ ├── swc-logo-blue.png │ ├── swc-logo-blue.svg │ ├── swc-logo-white.png │ └── swc-logo-white.svg ├── browserconfig.xml ├── conf.py ├── episodes.md ├── faq.md ├── favicon.ico ├── index.md ├── introduction ├── basic-concepts.md ├── index.md ├── prerequisites.md └── quick-start.md ├── manifest.json ├── setup.md ├── topics ├── additional-arguments-and-parameters.md ├── best-practices.md ├── command-line-tool.md ├── creating-files-at-runtime.md ├── custom-types.md ├── environment-variables.md ├── expression-tool.md ├── expressions.md ├── file-formats.md ├── index.md ├── inputs.md ├── metadata-and-authorship.md ├── operations.md ├── outputs.md ├── parameter-references.md ├── requirements-and-hints.md ├── specifying-software-requirements.md ├── staging-input-files.md ├── troubleshooting.md ├── using-containers.md ├── workflows.md └── yaml-guide.md └── tutorials.md /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | insert_final_newline = true 6 | trim_trailing_whitespace = true 7 | 8 | [*.md] 9 | indent_size = 2 10 | indent_style = space 11 | max_line_length = 100 # Please keep this in sync with bin/lesson_check.py! 12 | 13 | [*.r] 14 | max_line_length = 80 15 | 16 | [*.py] 17 | indent_size = 4 18 | indent_style = space 19 | max_line_length = 79 20 | 21 | [*.sh] 22 | end_of_line = lf 23 | 24 | [Makefile] 25 | indent_style = tab 26 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "pip" # See documentation for possible values 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "daily" 12 | # Maintain dependencies for GitHub Actions 13 | - package-ecosystem: "github-actions" 14 | directory: "/" 15 | schedule: 16 | interval: "daily" 17 | -------------------------------------------------------------------------------- /.github/workflows/ci-tests.yml: -------------------------------------------------------------------------------- 1 | name: CI Tests 2 | 3 | # Migrated from .travis.yml, based on cwltool's ci-tests.yml. 4 | # See .travis.yml in git history for previous changes and configurations. 5 | 6 | on: 7 | push: 8 | branches: [ main ] 9 | pull_request: 10 | branches: [ main ] 11 | workflow_dispatch: 12 | 13 | concurrency: 14 | group: build-${{ github.event.pull_request.number || github.ref }} 15 | cancel-in-progress: true 16 | 17 | jobs: 18 | 19 | ci_tests: 20 | name: CI Tests 21 | runs-on: ubuntu-latest 22 | strategy: 23 | matrix: 24 | py-ver-major: [ 3 ] 25 | py-ver-minor: [ 9, 10, 11 ] 26 | 27 | env: 28 | py-semver: ${{ format('{0}.{1}', matrix.py-ver-major, matrix.py-ver-minor) }} 29 | 30 | steps: 31 | - uses: actions/checkout@v4 32 | 33 | - name: Set up Python 34 | uses: actions/setup-python@v5 35 | with: 36 | python-version: ${{ env.py-semver }} 37 | cache: pip 38 | cache-dependency-path: | 39 | **/setup.cfg 40 | 41 | - run: pip install -U pip setuptools wheel typing 42 | - run: pip install -e ".[all]" 43 | 44 | - run: make RUNNER=cwltool unittest-examples 45 | -------------------------------------------------------------------------------- /.github/workflows/codeql.yml: -------------------------------------------------------------------------------- 1 | name: "CodeQL" 2 | 3 | on: 4 | push: 5 | branches: [ "main", "gh-pages", "release" ] 6 | pull_request: 7 | branches: [ "main" ] 8 | schedule: 9 | - cron: "59 14 * * 5" 10 | 11 | jobs: 12 | analyze: 13 | name: Analyze 14 | runs-on: ubuntu-latest 15 | permissions: 16 | actions: read 17 | contents: read 18 | security-events: write 19 | 20 | strategy: 21 | fail-fast: false 22 | matrix: 23 | language: [ javascript, python ] 24 | 25 | steps: 26 | - name: Checkout 27 | uses: actions/checkout@v4 28 | 29 | - name: Initialize CodeQL 30 | uses: github/codeql-action/init@v3 31 | with: 32 | languages: ${{ matrix.language }} 33 | queries: +security-and-quality 34 | 35 | - name: Autobuild 36 | uses: github/codeql-action/autobuild@v3 37 | if: ${{ matrix.language == 'javascript' || matrix.language == 'python' }} 38 | 39 | - name: Perform CodeQL Analysis 40 | uses: github/codeql-action/analyze@v3 41 | with: 42 | category: "/language:${{ matrix.language }}" 43 | -------------------------------------------------------------------------------- /.github/workflows/documentation-links.yaml : -------------------------------------------------------------------------------- 1 | # https://github.com/readthedocs/actions/tree/v1/preview#how-to-use-it 2 | name: Read the Docs Pull Request Preview 3 | on: 4 | pull_request_target: 5 | types: 6 | - opened 7 | 8 | permissions: 9 | pull-requests: write 10 | 11 | jobs: 12 | documentation-links: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: readthedocs/actions/preview@v1 16 | with: 17 | project-slug: "common-workflow-languageuser-guide" 18 | project-language: "en" 19 | # message-template: ? 20 | platform: "community" 21 | -------------------------------------------------------------------------------- /.github/workflows/gh-pages.yaml: -------------------------------------------------------------------------------- 1 | name: GitHub Pages sphinx deployment 2 | 3 | on: 4 | push: 5 | branches: 6 | - release 7 | workflow_dispatch: 8 | 9 | # NOTE: If you modify this file to install a package with pip or apt, please 10 | # verify if we need the same package added to our readthedocs build. 11 | jobs: 12 | # Ref: https://stackoverflow.com/questions/57989790/using-github-actions-to-publish-documentation 13 | deploy: 14 | runs-on: ubuntu-latest 15 | permissions: 16 | contents: write 17 | steps: 18 | - uses: actions/checkout@v4 19 | 20 | - name: Install apt packages 21 | run: | 22 | sudo apt-get install -y graphviz tree 23 | 24 | - name: Set up Python 25 | uses: actions/setup-python@v5 26 | with: 27 | python-version: '3.9' 28 | cache: pip 29 | 30 | - name: Install dependencies 31 | run: python3 -m pip install -U -e ".[all]" 32 | 33 | - name: pre-pull container images 34 | run: make container-pull 35 | 36 | - name: Build documentation 37 | run: | 38 | mkdir -p _build/html 39 | make html 40 | for lang in en es pt_BR pt_PT ja zh_Hans; do 41 | make html BUILDDIR=_build/${lang} SPHINXOPTS="-D language=${lang} -j auto" 42 | mv _build/${lang}/html _build/html/${lang} 43 | done 44 | 45 | - name: Deploy 46 | uses: peaceiris/actions-gh-pages@v4 47 | with: 48 | github_token: ${{ secrets.GITHUB_TOKEN }} 49 | publish_dir: ./_build/html/ 50 | publish_branch: gh-pages 51 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *~ 3 | .DS_Store 4 | .ipynb_checkpoints 5 | .sass-cache 6 | .jekyll-cache/ 7 | __pycache__ 8 | _site 9 | .Rproj.user 10 | .Rhistory 11 | .RData 12 | _build/ 13 | build/ 14 | *.egg-info/ 15 | 16 | src/_includes/cwl/**/output.txt 17 | venv/ 18 | -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | # NOTE: If you modify this file to install a package with pip or apt, please 4 | # verify if we need the same package added to our CI. 5 | build: 6 | os: ubuntu-22.04 7 | tools: 8 | python: "3.9" 9 | nodejs: "16" 10 | apt_packages: 11 | - graphviz 12 | - tree 13 | 14 | sphinx: 15 | configuration: src/conf.py 16 | builder: html 17 | 18 | python: 19 | install: 20 | - method: pip 21 | path: . 22 | extra_requirements: 23 | - all 24 | -------------------------------------------------------------------------------- /.zenodo.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Common Workflow Language User Guide", 3 | "license": "CC-BY-4.0", 4 | "title": "Common Workflow Language User Guide", 5 | "upload_type": "publication", 6 | "publication_type": "softwaredocumentation", 7 | "creators": [ 8 | { 9 | "name": "Alain Domissy" 10 | }, 11 | { 12 | "name": "Andrew Jesaitis" 13 | }, 14 | { 15 | "name": "Bamiwo Aluko" 16 | }, 17 | { 18 | "orcid": "https://orcid.org/0000-0002-6206-4638", 19 | "name": "Benjamin Carr" 20 | }, 21 | { 22 | "name": "Michele Mastropietro", 23 | "orcid": "https://orcid.org/0000-0002-6324-5713" 24 | }, 25 | { 26 | "name": "Emannuel Fernandes de Oliveira Carvalho" 27 | }, 28 | { 29 | "name": "Eugene Miloslavsky" 30 | }, 31 | { 32 | "name": "Robin Long", 33 | "orcid": "https://orcid.org/0000-0003-2249-645X" 34 | }, 35 | { 36 | "name": "Ngumih Fien" 37 | }, 38 | { 39 | "name": "Mary Gathoni" 40 | }, 41 | { 42 | "name": "Henry Liu" 43 | }, 44 | { 45 | "name": "Marijke J. van Baren" 46 | }, 47 | { 48 | "name": "jessMaia" 49 | }, 50 | { 51 | "name": "Bruno P. Kinoshita", 52 | "orcid": "https://orcid.org/0000-0001-8250-4074" 53 | }, 54 | { 55 | "name": "Kaushik Ghose", 56 | "orcid": "https://orcid.org/0000-0003-2933-1260" 57 | }, 58 | { 59 | "name": "Konstantin Taletskiy", 60 | "orcid": "https://orcid.org/0000-0001-6846-9815" 61 | }, 62 | { 63 | "name": "Kushal Beniwal" 64 | }, 65 | { 66 | "name": "Mark A. Jensen", 67 | "orcid": "https://orcid.org/0000-0001-5215-101X" 68 | }, 69 | { 70 | "name": "Levai Mackenzie Ágbàrà" 71 | }, 72 | { 73 | "name": "Manabu Ishii", 74 | "orcid": "https://orcid.org/0000-0002-5843-4712" 75 | }, 76 | { 77 | "name": "medcelerate" 78 | }, 79 | { 80 | "name": "Michael R. Crusoe", 81 | "orcid": "https://orcid.org/0000-0002-2961-9670", 82 | "affiliation": "Common Workflow Language project" 83 | }, 84 | { 85 | "name": "Ruth B. McCole", 86 | "orcid": "https://orcid.org/0000-0002-1861-7055" 87 | }, 88 | { 89 | "name": "sersorrel" 90 | }, 91 | { 92 | "name": "Adrian Sharma" 93 | }, 94 | { 95 | "name": "Steffen Möller", 96 | "orcid": "https://orcid.org/0000-0002-7187-4683" 97 | }, 98 | { 99 | "name": "Oghenemaro Akpobi" 100 | }, 101 | { 102 | "name": "Stian Soiland-Reyes", 103 | "orcid": "https://orcid.org/0000-0001-9842-9718" 104 | }, 105 | { 106 | "name": "Luka Stojanovic" 107 | }, 108 | { 109 | "name": "Sarah Wait Zaranek", 110 | "orcid": "https://orcid.org/0000-0003-4716-9121" 111 | }, 112 | { 113 | "name": "Peter Amstutz", 114 | "orcid": "https://orcid.org/0000-0003-3566-7705" 115 | }, 116 | { 117 | "name": "Toby Hodges", 118 | "affiliation": "European Molecular Biology Laboratory", 119 | "orcid": "https://orcid.org/0000-0003-1766-456X" 120 | }, 121 | { 122 | "name": "Tomoya Tanjo", 123 | "orcid": "https://orcid.org/0000-0002-4421-9659" 124 | }, 125 | { 126 | "name": "Daiki Tsuchiya", 127 | "orcid": "https://orcid.org/0000-0003-2112-9316" 128 | }, 129 | { 130 | "name": "Wolfgang Gerlach", 131 | "orcid": "https://orcid.org/0000-0002-1480-1242" 132 | }, 133 | { 134 | "name": "Zipho Mashologu" 135 | } 136 | ], 137 | "access_right": "open", 138 | "related_identifiers": [ 139 | { 140 | "scheme": "url", 141 | "identifier": "https://github.com/common-workflow-language/user_guide", 142 | "relation": "isSupplementTo" 143 | }, 144 | { 145 | "scheme": "doi", 146 | "identifier": "10.5281/zenodo.840129", 147 | "relation": "isPartOf" 148 | } 149 | ] 150 | } 151 | -------------------------------------------------------------------------------- /AUTHORS.md: -------------------------------------------------------------------------------- 1 | Thank you to the following contributors (in alphabetical order by user name): 2 | * Alain Domissy (@alaindomissy) 3 | * Andrew Jesaitis (@andrewjesaitis) 4 | * Bamiwo Aluko (@bamiwoaluko) 5 | * Benjamin Carr (@BenjaminHCCarr) 6 | * Michele Mastropietro (@elehcim) 7 | * Emannuel Fernandes de Oliveira Carvalho (@emannuelOC) 8 | * Eugene Miloslavsky (@emiloslavsky) 9 | * Robin Long (@longr) 10 | * Ngumih Fien (@Fienne) 11 | * Mary Gathoni (@gathoni-k) 12 | * Henry Liu (@HenryLiu0) 13 | * Marijke J. van Baren (@Jeltje) 14 | * @jessMaia 15 | * Bruno P. Kinoshita (@kinow) 16 | * Kaushik Ghose (@kghose) 17 | * Konstantin Taletskiy (@ktaletsk) 18 | * Kushal Beniwal (@KushalBeniwal) 19 | * Mark A. Jensen (@majensen) 20 | * Levai Mackenzie Ágbàrà (@Mackenzie-OO7) 21 | * Manabu Ishii (@manabuishii) 22 | * @medcelerate 23 | * Michael Crusoe (@mr-c) 24 | * Ruth B. McCole (@rmccole) 25 | * @sersorrel 26 | * Adrian Sharma (@sharmatime) 27 | * Steffen Möller (@smoe) https://orcid.org/0000-0002-7187-4683 28 | * Oghenemaro Akpobi (@Smyja) 29 | * Stian Soiland-Reyes (@stain) 30 | * Luka Stojanovic (@StarvingMarvin) 31 | * Sarah Wait Zaranek (@swzCuroverse) https://orcid.org/0000-0003-4716-9121 32 | * Peter Amstutz (@tetron) 33 | * Toby Hodges (@tobyhodges) 34 | * Tomoya Tanjo (@tom-tan) 35 | * Daiki Tsuchiya (@tsuchi8) 36 | * Wolfgang Gerlach (@wgerlach) 37 | * Zipho Mashologu (@zipho) 38 | 39 | Thanks to: 40 | * [Common Workflow Language community](https://www.commonwl.org/community/) 41 | and the members of the CWL forums and chat rooms. 42 | * [ELIXIR](https://elixir-europe.org/), and ELIXIR Netherlands 43 | * CZI Essential Open Source Software for Science (EOSS) 44 | -------------------------------------------------------------------------------- /CITATION.md: -------------------------------------------------------------------------------- 1 | # Citation 2 | 3 | To cite the Common Workflow Language project in a scholary work, please use: 4 | 5 | Michael R. Crusoe, Sanne Abeln, Alexandru Iosup, Peter Amstutz, John Chilton, Nebojša Tijanić, 6 | Hervé Ménager, Stian Soiland-Reyes, Bogdan Gavrilović, Carole Goble, and The CWL Community. 2022. 7 | Methods Included: Standardizing Computational Reuse and Portability with the Common Workflow Language. 8 | Commun. ACM 65, 6 (June 2022), 54–63. https://doi.org/10.1145/3486897 9 | 10 | ``` 11 | @article{10.1145/3486897, 12 | author = {Crusoe, Michael R. and Abeln, Sanne and Iosup, Alexandru and Amstutz, Peter and Chilton, John and Tijani\'{c}, Neboj\v{s}a and M\'{e}nager, Herv\'{e} and Soiland-Reyes, Stian and Gavrilovi\'{c}, Bogdan and Goble, Carole and Community, The CWL}, 13 | title = {Methods Included: Standardizing Computational Reuse and Portability with the Common Workflow Language}, 14 | year = {2022}, 15 | issue_date = {June 2022}, 16 | publisher = {Association for Computing Machinery}, 17 | address = {New York, NY, USA}, 18 | volume = {65}, 19 | number = {6}, 20 | issn = {0001-0782}, 21 | url = {https://doi.org/10.1145/3486897}, 22 | doi = {10.1145/3486897}, 23 | abstract = {Standardizing computational reuse and portability with the Common Workflow Language.}, 24 | journal = {Commun. ACM}, 25 | month = {may}, 26 | pages = {54–63}, 27 | numpages = {10} 28 | } 29 | ``` 30 | 31 | To cite just the CWL standards themselves, please use the following inclusive of the DOI: 32 | 33 | Amstutz, Peter; Crusoe, Michael R; Tijanić, Nebojša; Chapman, Brad; 34 | Chilton, John; Heuer, Michael; Kartashov, Andrey; Kern, John; Leehr, Dan; 35 | Ménager, Hervé; Nedeljkovich, Maya; Scales, Matt; Soiland-Reyes, Stian; 36 | Stojanovic, Luka (2016): Common Workflow Language, v1.0. Specification, 37 | Common Workflow Language working group. https://w3id.org/cwl/v1.0/ 38 | https://dx.doi.org/10.6084/m9.figshare.3115156.v2 39 | 40 | ``` 41 | @data{cwl, 42 | doi = {10.6084/m9.figshare.3115156.v2}, 43 | url = {https://doi.org/10.6084/m9.figshare.3115156.v2}, 44 | author = {Peter Amstutz; Michael R. Crusoe; Nebojša Tijanić; Brad Chapman; 45 | John Chilton; Michael Heuer; Andrey Kartashov; John Kern; Dan Leehr; 46 | Hervé Ménager; Maya Nedeljkovich; Matt Scales; Stian Soiland-Reyes; 47 | Luka Stojanovic 48 | }, 49 | publisher = {Figshare}, 50 | institution = {Common Workflow Language working group}, 51 | title = {Common Workflow Language, v1.0}, 52 | year = {2016} 53 | } 54 | ``` 55 | 56 | [//]: # (the above is from https://github.com/common-workflow-language/common-workflow-language/blob/main/CITATION.cff) 57 | 58 | Our preferred DOI for the "CWL User Guide" is http://doi.org/10.5281/zenodo.840129 59 | 60 | The latest DOI for the "CWL User Guide" is: 61 | [![DOI](https://zenodo.org/badge/89621457.svg)](https://zenodo.org/badge/latestdoi/89621457) 62 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | As contributors and maintainers of this project, 4 | we pledge to respect all people who contribute through reporting issues, 5 | posting feature requests, 6 | updating documentation, 7 | submitting pull requests or patches, 8 | and other activities. 9 | 10 | The CWL Project is dedicated to providing a harassment-free experience for 11 | everyone, regardless of gender, gender identity and expression, sexual 12 | orientation, disability, physical appearance, body size, age, race, or religion. 13 | We do not tolerate harassment of participants in any form. 14 | 15 | This code of conduct applies to all CWL Project spaces, including the Google 16 | Group, the Gitter chat room, the Google Hangouts chats, both online and off. 17 | Anyone who violates this code of conduct may be sanctioned or expelled from 18 | these spaces at the discretion of the leadership team. 19 | 20 | For more details, see the [complete CWL project code of conduct](https://github.com/common-workflow-language/common-workflow-language/blob/master/CODE_OF_CONDUCT.md). 21 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # Licenses 2 | 3 | ## Instructional Material 4 | 5 | All Common Workflow Language project instructional material and changes 6 | to the structure are also made available under the [Creative Commons Attribution 7 | license][cc-by-human]. The following is a human-readable summary of 8 | (and not a substitute for) the [full legal text of the CC BY 4.0 9 | license][cc-by-legal]. 10 | 11 | You are free: 12 | 13 | * to **Share**---copy and redistribute the material in any medium or format 14 | * to **Adapt**---remix, transform, and build upon the material 15 | 16 | for any purpose, even commercially. 17 | 18 | The licensor cannot revoke these freedoms as long as you follow the 19 | license terms: 20 | 21 | 22 | 23 | * **Attribution**---You must give appropriate credit (mentioning that 24 | your work is derived from work that is Copyright © the Common Workflow 25 | Language project, and, where practical, linking to 26 | https://www.commonwl.org/ ), provide a [link to the 27 | license][cc-by-human], and indicate if changes were made. You may do 28 | so in any reasonable manner, but not in any way that suggests the 29 | licensor endorses you or your use. 30 | 31 | * **No additional restrictions**---You may not apply legal terms or 32 | technological measures that legally restrict others from doing 33 | anything the license permits. With the understanding that: 34 | 35 | * You do not have to comply with the license for elements of the 36 | material in the public domain or where your use is permitted by an 37 | applicable exception or limitation. 38 | * No warranties are given. The license may not give you all of the 39 | permissions necessary for your intended use. For example, other 40 | rights such as publicity, privacy, or moral rights may limit how you 41 | use the material. 42 | 43 | ## Software 44 | 45 | Except where otherwise noted, the example programs and other software 46 | provided by Common Workflow Language project are made available under the 47 | [OSI][osi]-approved 48 | [Apache 2.0 license][apache-2.0-license]. 49 | 50 | Unless required by applicable law or agreed to in writing, software 51 | distributed under the License is distributed on an "AS IS" BASIS, 52 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 53 | See the License for the specific language governing permissions and 54 | limitations under the License. 55 | 56 | 57 | 58 | 59 | [cc-by-human]: https://creativecommons.org/licenses/by/4.0/ 60 | [cc-by-legal]: https://creativecommons.org/licenses/by/4.0/legalcode 61 | [apache-2.0-license]: https://opensource.org/licenses/Apache-2.0 62 | [mit-license]: https://opensource.org/licenses/mit-license.html 63 | [osi]: https://opensource.org 64 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS = # was "-W" (turn warnings into errors) 7 | SPHINXBUILD = sphinx-build 8 | SOURCEDIR = src 9 | BUILDDIR = _build 10 | RUNNER = cwl-runner 11 | 12 | # User-friendly check for sphinx-build 13 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 14 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from https://sphinx-doc.org/) 15 | endif 16 | 17 | # Put it first so that "make" without argument is like "make help". 18 | help: 19 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 20 | 21 | clean: 22 | @$(SPHINXBUILD) -M clean "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 23 | 24 | watch: clean 25 | @echo 26 | @echo "Building and watching for changes in the documentation." 27 | sphinx-autobuild "$(SOURCEDIR)" "$(BUILDDIR)" \ 28 | -b html \ 29 | --ignore='**venv' \ 30 | --ignore='**.github' \ 31 | --ignore='*.egg-info' \ 32 | --ignore='**_includes/**/*.txt' \ 33 | --watch='cwl' \ 34 | $(SPHINXOPTS) $(O) 35 | 36 | ## unittest-examples : 37 | unittest-examples: 38 | cd src/_includes/cwl; cwltest --test=cwl_tests.yml --tool=${RUNNER} 39 | 40 | ## check-json : 41 | check-json: 42 | python -m json.tool < src/.zenodo.json >> /dev/null && exit 0 || echo "NOT valid JSON"; exit 1 43 | 44 | container-pull: 45 | for container in $$(git grep dockerPull $$(git ls-files *.cwl) | awk '-F: ' '{print $$3}'); do docker pull $${container}; done 46 | 47 | update_translations: gettext 48 | sphinx-intl update -p _build/gettext 49 | 50 | 51 | .PHONY: help clean watch unittest-examples check-json Makefile 52 | 53 | # Catch-all target : route all unknown targets to Sphinx using the new 54 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 55 | %: Makefile 56 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 57 | 58 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![DOI for the latest version](https://zenodo.org/badge/89621457.svg)](https://zenodo.org/badge/latestdoi/89621457) 2 | 3 | [![CI Tests](https://github.com/common-workflow-language/user_guide/actions/workflows/ci-tests.yml/badge.svg?branch=main)](https://github.com/common-workflow-language/user_guide/actions/workflows/ci-tests.yml) 4 | 5 | [![Translation status](https://hosted.weblate.org/widgets/commonwl/-/user-guide/svg-badge.svg)](https://hosted.weblate.org/engage/commonwl/) 6 | 7 | This is the source of the official user guide for the Common Workflow Language standards. 8 | 9 | Releases are published at from the `release` branch. 10 | 11 | Preview of the next release is published at 12 | based upon the default branch (`main`) using the Read The Docs (RTD) service. 13 | 14 | Original source: 15 | https://github.com/common-workflow-language/common-workflow-language/blob/a2a8a08b8c8d56f8f2ca6284ca4e9cbf23d19346/v1.0/UserGuide.yml 16 | 17 | ## Contributing 18 | 19 | We welcome all contributions to improve the materials! Maintainers will do their best to help you if you have any 20 | questions, concerns, or experience any difficulties along the way. 21 | To edit the user guide: 22 | 23 | We'd like to ask you to familiarize yourself with our [Contribution Guide](CONTRIBUTING.md). 24 | 25 | ## Authors 26 | 27 | A list of contributors to these materials can be found in [AUTHORS](AUTHORS.md) 28 | 29 | ## Citation 30 | 31 | To cite these materials, please consult with [CITATION](CITATION.md) 32 | 33 | -------------------------------------------------------------------------------- /cwl/doc/__init__.py: -------------------------------------------------------------------------------- 1 | __version__='0.1' 2 | -------------------------------------------------------------------------------- /cwl/doc/graphs.py: -------------------------------------------------------------------------------- 1 | from cwl_utils.parser.cwl_v1_2 import Process 2 | from math import ceil 3 | 4 | def create_processing_units_graph(): 5 | processing_units = [pu.__qualname__ for pu in Process.__subclasses__()] 6 | processing_units.sort() 7 | # We want to have an elbow-edge between Process and its subclasses. So 8 | # first we decide whether we have an odd number of if we need one new 9 | # invisible node to balance the graph. 10 | hidden_nodes = ['n{}'.format(i) for i in range(0, len(processing_units))] 11 | extra_node_needed = len(processing_units) % 2 == 0 12 | if extra_node_needed: 13 | hidden_nodes.append('n{}'.format(len(processing_units))) 14 | node_in_the_middle = f'n{ceil(len(processing_units) / 2)}' 15 | nodes_links = hidden_nodes.copy() 16 | if extra_node_needed: 17 | nodes_links.remove(node_in_the_middle) 18 | 19 | # Template for the graphviz Sphinx directive. 20 | return f'''```{{graphviz}} 21 | :name: processing-units-graph 22 | :caption: The processing units available in the CWL objects model. 23 | :align: center 24 | 25 | digraph "A GraphViz graph with the CWL processing units, e.g. Process, Workflow, CommandLineTool, etc." {{ 26 | rankdir="TB"; 27 | graph [splines=false]; 28 | 29 | node [fontname="Verdana", fontsize="10", shape=box]; 30 | edge [fontname="Verdana", fontsize="10"]; 31 | Process; {'; '.join([pu for pu in processing_units])}; 32 | 33 | node[label="", width=0, height=0]; 34 | edge[arrowhead=none]; 35 | n1; 36 | 37 | {{rank=same; {'; '.join([node for node in processing_units])};}} 38 | Process -> n1 [arrowhead=normal, dir=back]; 39 | {'; '.join([f'n1 -> {node}' for node in processing_units])}; 40 | }} 41 | ```''' 42 | 43 | 44 | __all__ = [ 45 | create_processing_units_graph 46 | ] 47 | -------------------------------------------------------------------------------- /cwl/sphinx/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/cwl/sphinx/__init__.py -------------------------------------------------------------------------------- /locales/ca/LC_MESSAGES/sphinx.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) 2013, CWL Project Team 3 | # This file is distributed under the same license as the Common Workflow Language User Guide package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: Common Workflow Language User Guide\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2023-01-25 14:33+0100\n" 11 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 12 | "Last-Translator: Automatically generated\n" 13 | "Language-Team: none\n" 14 | "Language: ca\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | 19 | #: ../../src/_templates/sidebar-nav-bs.html:1 20 | #: d65b012160e9455eb4d2628279fffc42 21 | msgid "Main navigation" 22 | msgstr "" 23 | 24 | #: ../../src/_templates/sidebar-nav-bs.html:3 25 | #: 4b3441eb77f448daa60718b7bfa862db 26 | msgid "Section Navigation" 27 | msgstr "" 28 | -------------------------------------------------------------------------------- /locales/es/LC_MESSAGES/sphinx.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) 2013, CWL Project Team 3 | # This file is distributed under the same license as the Common Workflow 4 | # Language User Guide package. 5 | # FIRST AUTHOR , 2023. 6 | # 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: Common Workflow Language User Guide\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2023-01-25 14:33+0100\n" 12 | "PO-Revision-Date: 2023-01-26 13:55+0000\n" 13 | "Last-Translator: Michael Crusoe \n" 14 | "Language-Team: Spanish \n" 16 | "Language: es\n" 17 | "MIME-Version: 1.0\n" 18 | "Content-Type: text/plain; charset=utf-8\n" 19 | "Content-Transfer-Encoding: 8bit\n" 20 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 21 | "X-Generator: Weblate 4.16-dev\n" 22 | "Generated-By: Babel 2.10.3\n" 23 | 24 | #: ../../src/_templates/sidebar-nav-bs.html:1 d65b012160e9455eb4d2628279fffc42 25 | msgid "Main navigation" 26 | msgstr "Navegación principal" 27 | 28 | #: ../../src/_templates/sidebar-nav-bs.html:3 4b3441eb77f448daa60718b7bfa862db 29 | msgid "Section Navigation" 30 | msgstr "Sección Navegación" 31 | -------------------------------------------------------------------------------- /locales/ja/LC_MESSAGES/sphinx.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) 2013, CWL Project Team 3 | # This file is distributed under the same license as the Common Workflow Language User Guide package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: Common Workflow Language User Guide\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2023-01-25 14:33+0100\n" 11 | "PO-Revision-Date: 2024-02-13 04:02+0000\n" 12 | "Last-Translator: Manabu ISHII \n" 13 | "Language-Team: Japanese \n" 15 | "Language: ja\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=1; plural=0;\n" 20 | "X-Generator: Weblate 5.4-dev\n" 21 | 22 | #: ../../src/_templates/sidebar-nav-bs.html:1 23 | #: d65b012160e9455eb4d2628279fffc42 24 | msgid "Main navigation" 25 | msgstr "メインナビゲーション" 26 | 27 | #: ../../src/_templates/sidebar-nav-bs.html:3 28 | #: 4b3441eb77f448daa60718b7bfa862db 29 | msgid "Section Navigation" 30 | msgstr "セクションナビゲーション" 31 | -------------------------------------------------------------------------------- /locales/pt_BR/LC_MESSAGES/sphinx.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) 2013, CWL Project Team 3 | # This file is distributed under the same license as the Common Workflow 4 | # Language User Guide package. 5 | # FIRST AUTHOR , 2023. 6 | # 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: Common Workflow Language User Guide\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2023-01-25 14:33+0100\n" 12 | "PO-Revision-Date: 2023-01-26 13:55+0000\n" 13 | "Last-Translator: Michael Crusoe \n" 14 | "Language-Team: none\n" 15 | "Language: pt_BR\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=n > 1;\n" 20 | "X-Generator: Weblate 4.16-dev\n" 21 | "Generated-By: Babel 2.10.3\n" 22 | 23 | #: ../../src/_templates/sidebar-nav-bs.html:1 d65b012160e9455eb4d2628279fffc42 24 | msgid "Main navigation" 25 | msgstr "Navegação principal" 26 | 27 | #: ../../src/_templates/sidebar-nav-bs.html:3 4b3441eb77f448daa60718b7bfa862db 28 | msgid "Section Navigation" 29 | msgstr "Seção Navegação" 30 | -------------------------------------------------------------------------------- /locales/pt_PT/LC_MESSAGES/sphinx.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) 2013, CWL Project Team 3 | # This file is distributed under the same license as the Common Workflow Language User Guide package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: Common Workflow Language User Guide\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2023-01-25 14:33+0100\n" 11 | "PO-Revision-Date: 2024-07-14 10:09+0000\n" 12 | "Last-Translator: ssantos \n" 13 | "Language-Team: Portuguese (Portugal) \n" 15 | "Language: pt_PT\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=n > 1;\n" 20 | "X-Generator: Weblate 5.7-dev\n" 21 | 22 | #: ../../src/_templates/sidebar-nav-bs.html:1 23 | #: d65b012160e9455eb4d2628279fffc42 24 | msgid "Main navigation" 25 | msgstr "Navegação principal" 26 | 27 | #: ../../src/_templates/sidebar-nav-bs.html:3 28 | #: 4b3441eb77f448daa60718b7bfa862db 29 | msgid "Section Navigation" 30 | msgstr "" 31 | -------------------------------------------------------------------------------- /locales/sphinx.pot: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) 2013, CWL Project Team 3 | # This file is distributed under the same license as the Common Workflow Language User Guide package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: Common Workflow Language User Guide \n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2023-01-25 14:33+0100\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | 19 | #: ../../src/_templates/sidebar-nav-bs.html:1 20 | #: d65b012160e9455eb4d2628279fffc42 21 | msgid "Main navigation" 22 | msgstr "" 23 | 24 | #: ../../src/_templates/sidebar-nav-bs.html:3 25 | #: 4b3441eb77f448daa60718b7bfa862db 26 | msgid "Section Navigation" 27 | msgstr "" 28 | -------------------------------------------------------------------------------- /locales/zgh/LC_MESSAGES/sphinx.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) 2013, CWL Project Team 3 | # This file is distributed under the same license as the Common Workflow Language User Guide package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: Common Workflow Language User Guide\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2023-01-25 14:33+0100\n" 11 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 12 | "Last-Translator: Automatically generated\n" 13 | "Language-Team: none\n" 14 | "Language: zgh\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | 19 | #: ../../src/_templates/sidebar-nav-bs.html:1 20 | #: d65b012160e9455eb4d2628279fffc42 21 | msgid "Main navigation" 22 | msgstr "" 23 | 24 | #: ../../src/_templates/sidebar-nav-bs.html:3 25 | #: 4b3441eb77f448daa60718b7bfa862db 26 | msgid "Section Navigation" 27 | msgstr "" 28 | -------------------------------------------------------------------------------- /locales/zh_CN: -------------------------------------------------------------------------------- 1 | zh_Hans/ -------------------------------------------------------------------------------- /locales/zh_Hans/LC_MESSAGES/sphinx.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) 2013, CWL Project Team 3 | # This file is distributed under the same license as the Common Workflow Language User Guide package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: Common Workflow Language User Guide\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2023-01-25 14:33+0100\n" 11 | "PO-Revision-Date: 2023-04-26 11:48+0000\n" 12 | "Last-Translator: Zoë Ma \n" 13 | "Language-Team: Chinese (Simplified) \n" 15 | "Language: zh_Hans\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=1; plural=0;\n" 20 | "X-Generator: Weblate 4.18-dev\n" 21 | 22 | #: ../../src/_templates/sidebar-nav-bs.html:1 23 | #: d65b012160e9455eb4d2628279fffc42 24 | msgid "Main navigation" 25 | msgstr "主导航" 26 | 27 | #: ../../src/_templates/sidebar-nav-bs.html:3 28 | #: 4b3441eb77f448daa60718b7bfa862db 29 | msgid "Section Navigation" 30 | msgstr "章节导航" 31 | -------------------------------------------------------------------------------- /make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=. 11 | set BUILDDIR=_build 12 | 13 | %SPHINXBUILD% >NUL 2>NUL 14 | if errorlevel 9009 ( 15 | echo. 16 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 17 | echo.installed, then set the SPHINXBUILD environment variable to point 18 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 19 | echo.may add the Sphinx directory to PATH. 20 | echo. 21 | echo.If you don't have Sphinx installed, grab it from 22 | echo.https://www.sphinx-doc.org/ 23 | exit /b 1 24 | ) 25 | 26 | if "%1" == "" goto help 27 | 28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 29 | goto end 30 | 31 | :help 32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 33 | 34 | :end 35 | popd 36 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["setuptools>=61.2"] 3 | build-backend = "setuptools.build_meta" 4 | 5 | [project] 6 | name = "cwl-user-guide" 7 | description = "CWL User Guide" 8 | license = {text = "GPL"} 9 | classifiers = [ 10 | "Environment :: Console", 11 | "Environment :: Web Environment", 12 | "Intended Audience :: Developers", 13 | "Intended Audience :: System Administrators", 14 | "Intended Audience :: Science/Research", 15 | "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", 16 | "Operating System :: POSIX :: Linux", 17 | "Programming Language :: Python", 18 | "Programming Language :: Python :: 3.6", 19 | "Programming Language :: Python :: 3.7", 20 | "Programming Language :: Python :: 3.8", 21 | "Programming Language :: Python :: 3.9", 22 | "Programming Language :: Python :: 3 :: Only", 23 | "Programming Language :: Python :: Implementation :: CPython", 24 | ] 25 | requires-python = ">=3.6" 26 | dependencies = [ 27 | "cwltool", 28 | "cwlref-runner", 29 | "cwl-utils==0.*", 30 | "myst-parser==3.*", 31 | "pydata-sphinx-theme==0.*", 32 | "sphinx==7.*", 33 | "sphinx-reredirects==0.1.*", 34 | "sphinxcontrib-runcmd==0.2.*", 35 | "sphinx-favicon", 36 | "python-Levenshtein", 37 | "sphinx-intl", 38 | ] 39 | dynamic = ["version"] 40 | 41 | [project.readme] 42 | file = "README.md" 43 | content-type = "text/markdown" 44 | 45 | [project.urls] 46 | Homepage = "https://www.commonwl.org/user_guide/" 47 | Documentation = "https://www.commonwl.org/user_guide/" 48 | Source = "https://github.com/common-workflow-language/user_guide" 49 | Tracker = "https://github.com/common-workflow-language/user_guide/issues" 50 | 51 | [project.optional-dependencies] 52 | test = [ 53 | "cwltest==2.*", 54 | "cwltool==3.1.*", 55 | ] 56 | watch = ["sphinx-autobuild==2024.10.*"] 57 | rtd = ["udocker"] 58 | all = ["cwl-user-guide[test,watch,rtd]"] 59 | 60 | [tool.setuptools] 61 | include-package-data = true 62 | platforms = ["any"] 63 | 64 | [tool.setuptools.packages.find] 65 | include = ["cwl*"] 66 | namespaces = true 67 | 68 | [tool.setuptools.dynamic] 69 | version = {attr = "cwl.doc.__version__"} 70 | -------------------------------------------------------------------------------- /src/LICENSE.md: -------------------------------------------------------------------------------- 1 | ```{include} ../LICENSE.md 2 | ``` 3 | -------------------------------------------------------------------------------- /src/_includes/cwl/additional-arguments-and-parameters/Hello.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_includes/cwl/additional-arguments-and-parameters/Hello.class -------------------------------------------------------------------------------- /src/_includes/cwl/additional-arguments-and-parameters/Hello.java: -------------------------------------------------------------------------------- 1 | public class Hello {} 2 | -------------------------------------------------------------------------------- /src/_includes/cwl/additional-arguments-and-parameters/arguments-job.yml: -------------------------------------------------------------------------------- 1 | src: 2 | class: File 3 | path: Hello.java 4 | -------------------------------------------------------------------------------- /src/_includes/cwl/additional-arguments-and-parameters/arguments.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | label: Example trivial wrapper for Java 9 compiler 5 | hints: 6 | DockerRequirement: 7 | dockerPull: openjdk:9.0.1-11-slim 8 | baseCommand: javac 9 | arguments: ["-d", $(runtime.outdir)] 10 | inputs: 11 | src: 12 | type: File 13 | inputBinding: 14 | position: 1 15 | outputs: 16 | classfile: 17 | type: File 18 | outputBinding: 19 | glob: "*.class" 20 | -------------------------------------------------------------------------------- /src/_includes/cwl/creating-files-at-runtime/createfile.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | baseCommand: ["sh", "example.sh"] 5 | 6 | requirements: 7 | InitialWorkDirRequirement: 8 | listing: 9 | - entryname: example.sh 10 | entry: |- 11 | PREFIX='Message is:' 12 | MSG="\${PREFIX} $(inputs.message)" 13 | echo \${MSG} 14 | 15 | inputs: 16 | message: string 17 | outputs: 18 | example_out: 19 | type: stdout 20 | stdout: output.txt 21 | -------------------------------------------------------------------------------- /src/_includes/cwl/creating-files-at-runtime/echo-job.yml: -------------------------------------------------------------------------------- 1 | message: Hello world! 2 | -------------------------------------------------------------------------------- /src/_includes/cwl/custom-types/InterProScan-apps.yml: -------------------------------------------------------------------------------- 1 | type: enum 2 | name: apps 3 | symbols: 4 | - TIGRFAM 5 | - SFLD 6 | - SUPERFAMILY 7 | - Gene3D 8 | - Hamap 9 | - Coils 10 | - ProSiteProfiles 11 | - SMART 12 | - CDD 13 | - PRINTS 14 | - PIRSF 15 | - ProSitePatterns 16 | - Pfam 17 | - ProDom 18 | - MobiDBLite 19 | -------------------------------------------------------------------------------- /src/_includes/cwl/custom-types/biom-convert-table.yaml: -------------------------------------------------------------------------------- 1 | type: enum 2 | name: table_type 3 | label: The type of the table to produce 4 | symbols: 5 | - OTU table 6 | - Pathway table 7 | - Function table 8 | - Ortholog table 9 | - Gene table 10 | - Metabolite table 11 | - Taxon table 12 | - Table 13 | -------------------------------------------------------------------------------- /src/_includes/cwl/custom-types/custom-types.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | 5 | requirements: 6 | InlineJavascriptRequirement: {} 7 | ResourceRequirement: 8 | coresMax: 1 9 | ramMin: 100 # just a default, could be lowered 10 | SchemaDefRequirement: 11 | types: 12 | - $import: biom-convert-table.yaml 13 | 14 | hints: 15 | DockerRequirement: 16 | dockerPull: 'quay.io/biocontainers/biom-format:2.1.15' 17 | SoftwareRequirement: 18 | packages: 19 | biom-format: 20 | specs: [ "https://doi.org/10.1186/2047-217X-1-7" ] 21 | version: [ "2.1.15" ] 22 | 23 | inputs: 24 | biom: 25 | type: File 26 | format: edam:format_3746 # BIOM 27 | inputBinding: 28 | prefix: --input-fp 29 | table_type: 30 | type: biom-convert-table.yaml#table_type 31 | inputBinding: 32 | prefix: --table-type 33 | 34 | header_key: 35 | type: string? 36 | doc: | 37 | The observation metadata to include from the input BIOM table file when 38 | creating a tsv table file. By default no observation metadata will be 39 | included. 40 | inputBinding: 41 | prefix: --header-key 42 | 43 | baseCommand: [ biom, convert ] 44 | 45 | arguments: 46 | - valueFrom: $(inputs.biom.nameroot).hdf5 47 | prefix: --output-fp 48 | - --to-hdf5 49 | 50 | outputs: 51 | result: 52 | type: File 53 | outputBinding: { glob: "$(inputs.biom.nameroot)*" } 54 | 55 | $namespaces: 56 | edam: http://edamontology.org/ 57 | s: https://schema.org/ 58 | 59 | $schemas: 60 | - http://edamontology.org/EDAM_1.16.owl 61 | - https://schema.org/version/latest/schemaorg-current-http.rdf 62 | 63 | s:license: https://spdx.org/licenses/Apache-2.0 64 | s:copyrightHolder: "EMBL - European Bioinformatics Institute" 65 | -------------------------------------------------------------------------------- /src/_includes/cwl/custom-types/custom-types.yml: -------------------------------------------------------------------------------- 1 | biom: 2 | class: File 3 | format: http://edamontology.org/format_3746 4 | path: rich_sparse_otu_table.biom 5 | table_type: OTU table 6 | -------------------------------------------------------------------------------- /src/_includes/cwl/custom-types/rich_sparse_otu_table.biom: -------------------------------------------------------------------------------- 1 | { 2 | "id":"w00asdt", 3 | "format": "1.0.0", 4 | "format_url": "http://biom-format.org", 5 | "type": "OTU table", 6 | "generated_by": "QIIME revision XYZ", 7 | "date": "2011-12-19T19:00:00", 8 | "rows":[ 9 | {"id":"GG_OTU_1", "metadata":{"taxonomy":["k__Bacteria", "p__Proteobacteria", "c__Gammaproteobacteria", "o__Enterobacteriales", "f__Enterobacteriaceae", "g__Escherichia", "s__"]}}, 10 | {"id":"GG_OTU_2", "metadata":{"taxonomy":["k__Bacteria", "p__Cyanobacteria", "c__Nostocophycideae", "o__Nostocales", "f__Nostocaceae", "g__Dolichospermum", "s__"]}}, 11 | {"id":"GG_OTU_3", "metadata":{"taxonomy":["k__Archaea", "p__Euryarchaeota", "c__Methanomicrobia", "o__Methanosarcinales", "f__Methanosarcinaceae", "g__Methanosarcina", "s__"]}}, 12 | {"id":"GG_OTU_4", "metadata":{"taxonomy":["k__Bacteria", "p__Firmicutes", "c__Clostridia", "o__Halanaerobiales", "f__Halanaerobiaceae", "g__Halanaerobium", "s__Halanaerobiumsaccharolyticum"]}}, 13 | {"id":"GG_OTU_5", "metadata":{"taxonomy":["k__Bacteria", "p__Proteobacteria", "c__Gammaproteobacteria", "o__Enterobacteriales", "f__Enterobacteriaceae", "g__Escherichia", "s__"]}} 14 | ], 15 | "columns":[ 16 | {"id":"Sample1", "metadata":{ 17 | "BarcodeSequence":"CGCTTATCGAGA", 18 | "LinkerPrimerSequence":"CATGCTGCCTCCCGTAGGAGT", 19 | "BODY_SITE":"gut", 20 | "Description":"human gut"}}, 21 | {"id":"Sample2", "metadata":{ 22 | "BarcodeSequence":"CATACCAGTAGC", 23 | "LinkerPrimerSequence":"CATGCTGCCTCCCGTAGGAGT", 24 | "BODY_SITE":"gut", 25 | "Description":"human gut"}}, 26 | {"id":"Sample3", "metadata":{ 27 | "BarcodeSequence":"CTCTCTACCTGT", 28 | "LinkerPrimerSequence":"CATGCTGCCTCCCGTAGGAGT", 29 | "BODY_SITE":"gut", 30 | "Description":"human gut"}}, 31 | {"id":"Sample4", "metadata":{ 32 | "BarcodeSequence":"CTCTCGGCCTGT", 33 | "LinkerPrimerSequence":"CATGCTGCCTCCCGTAGGAGT", 34 | "BODY_SITE":"skin", 35 | "Description":"human skin"}}, 36 | {"id":"Sample5", "metadata":{ 37 | "BarcodeSequence":"CTCTCTACCAAT", 38 | "LinkerPrimerSequence":"CATGCTGCCTCCCGTAGGAGT", 39 | "BODY_SITE":"skin", 40 | "Description":"human skin"}}, 41 | {"id":"Sample6", "metadata":{ 42 | "BarcodeSequence":"CTAACTACCAAT", 43 | "LinkerPrimerSequence":"CATGCTGCCTCCCGTAGGAGT", 44 | "BODY_SITE":"skin", 45 | "Description":"human skin"}} 46 | ], 47 | "matrix_type": "sparse", 48 | "matrix_element_type": "int", 49 | "shape": [5, 6], 50 | "data":[[0,2,1], 51 | [1,0,5], 52 | [1,1,1], 53 | [1,3,2], 54 | [1,4,3], 55 | [1,5,1], 56 | [2,2,1], 57 | [2,3,4], 58 | [2,5,2], 59 | [3,0,2], 60 | [3,1,1], 61 | [3,2,1], 62 | [3,5,1], 63 | [4,1,1], 64 | [4,2,1] 65 | ] 66 | } 67 | -------------------------------------------------------------------------------- /src/_includes/cwl/custom-types/test_proteins.fasta: -------------------------------------------------------------------------------- 1 | >Q97R95 2 | MKYKRIVFKVGTSSLTNEDGSLSRSKVKDITQQLAMLHEAGHELILVSSGAIAAGFGALG 3 | FKKRPTKIADKQASAAVGQGLLLEEYTTNLLLRQIVSAQILLTQDDFVDKRRYKNAHQAL 4 | SVLLNRGAIPIINENDSVVIDELKVGDNDTLSAQVAAMVQADLLVFLTDVDGLYTGNPNS 5 | DPRAKRLERIETINREIIDMAGGAGSSNGTGGMLTKIKAATIATESGVPVYICSSLKSDS 6 | MIEAAEETEDGSYFVAQEKGLRTQKQWLAFYAQSQGSIWVDKGAAEALSQYGKSLLLSGI 7 | VEAEGVFSYGDIVTVFDKESGKSLGKGRVQFGASALEDMLRSQKAKGVLIYRDDWISITP 8 | EIQLLFTEF 9 | >A2VDN9 10 | MEVKGKKKLTGKGTKMSQEKSKFHKNNDSGSSKTFPKKVVKEGGPKITSKNFEKTATKPGKKGVKQFKNKQQGDRIPKNK 11 | FQQANKFNQKRKFQPDSKSDESAAKKPKWDEFKKKKKELKQSRQLSDKTNYDIVIRAKQIWEILRRKDCDKEKRVKLMSD 12 | LQKLIQGKIKTIAFAHDSTRVIQCYIQFGNEEQRKQAFEELRGDLVELSKAKYSRNIVKKFLMYGSKAQIAEIIRSFKGH 13 | VRKLLRHAEASAIVEYAYNDKAILEQRNMLTEELYGNTFQLYKSADHPTLDKVLEVQPEKLELIMDEMKQILTPMAQKEA 14 | VIKHSLVHKVFLDFFTYAPPKLRSEMIEAIREAVVYLAHTHDGARVAMYCLWHGTPKDRKVIVKTMKTYIEKVANGQYSH 15 | LVLLAAFDCIDDTKLVKQIIISEIINSLPNIVNDKYGRKVLLYLLSPRDPAHTVREIIEVLQKGDGNAHSKKDTEIRRRE 16 | LLESISPALLSYLQGHAQEVVLDKSACVLVADILGTATGDVQPAMDAVASLAAAELHPGGKDGELHIAEHPAGHLVLKWL 17 | IEQDKKMKERGREGCFAKTLIERVGVKNLKSWASVNRGAIILSSLLQSSDQEVANKVKAGLKSLIPALEKSKNTSKGIEM 18 | LLEKLTA 19 | >A2YIW7 20 | MAAEEGVVIACHNKDEFDAQMTKAKEAGKVVIIDFTASWCGPCRFIAPVFAEYAKKFPGAVFLKVDVDELKEVAEKYNVE 21 | AMPTFLFIKDGAEADKVVGARKDDLQNTIVKHVGATAASASA 22 | >P22298 23 | GRGLLPFVLLALGIXAPWAVEGAENALKGGACPPRKIVQCLRYEKPKCTSDWQCPDKKKC 24 | CRDTCAIKCLNPVAITNPVKVKPGKCPVVYGQCMMLNPPNHCKTDSQCLGDLKCCKSMCG 25 | KVCLTPVKA 26 | >A0B6J9 27 | MSKIGKSIRLERIIDRKTRKTVIVPMDHGLTVGPIPGLIDLAAAVDKVAEGGANAVLGHM 28 | GLPLYGHRGYGKDVGLIIHLSASTSLGPDANHKVLVTRVEDAIRVGADGVSIHVNVGAED 29 | EAEMLRDLGMVARRCDLWGMPLLAMMYPRGAKVRSEHSVEYVKHAARVGAELGVDIVKTN 30 | YTGSPETFREVVRGCPAPVVIAGGPKMDTEADLLQMVYDAMQAGAAGISIGRNIFQAENP 31 | TLLTRKLSKIVHEGYTPEEAARLKL 32 | >P02939 33 | MNRTKLVLGAVILGSTLLAGCSSNAKIDQLSTDVQTLNAKVDQLSNDVTAIRSDVQAAKD 34 | DAARANQRLDNQAHSYRK -------------------------------------------------------------------------------- /src/_includes/cwl/echo.cwl: -------------------------------------------------------------------------------- 1 | cwlVersion: v1.2 2 | class: CommandLineTool 3 | 4 | baseCommand: echo 5 | 6 | stdout: output.txt 7 | 8 | inputs: 9 | message: 10 | type: string 11 | inputBinding: {} 12 | outputs: 13 | out: 14 | type: string 15 | outputBinding: 16 | glob: output.txt 17 | loadContents: true 18 | outputEval: $(self[0].contents) 19 | -------------------------------------------------------------------------------- /src/_includes/cwl/environment-variables/echo-job.yml: -------------------------------------------------------------------------------- 1 | message: Hello world! 2 | -------------------------------------------------------------------------------- /src/_includes/cwl/environment-variables/env.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | baseCommand: env 5 | requirements: 6 | EnvVarRequirement: 7 | envDef: 8 | HELLO: $(inputs.message) 9 | inputs: 10 | message: string 11 | outputs: 12 | example_out: 13 | type: stdout 14 | stdout: output.txt 15 | -------------------------------------------------------------------------------- /src/_includes/cwl/expressions/custom-functions.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Capitalize each word passed. Will split the text by spaces. 3 | * For instance, given "hello world", it returns "Hello World". 4 | * 5 | * @param {String} message - The input message. 6 | * @return {String} the message with each word with its initial letter capitalized. 7 | */ 8 | function capitalizeWords (message) { 9 | if (message === undefined || message === null || typeof message !== 'string' || message.trim().length === 0) { 10 | return ''; 11 | } 12 | return message 13 | .split(' ') 14 | .map(function (token) { 15 | return token.charAt(0).toUpperCase() + token.slice(1); 16 | }) 17 | .join(' '); 18 | } 19 | -------------------------------------------------------------------------------- /src/_includes/cwl/expressions/empty.yml: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/_includes/cwl/expressions/expression.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | baseCommand: echo 5 | 6 | requirements: 7 | InlineJavascriptRequirement: {} 8 | 9 | inputs: [] 10 | outputs: 11 | example_out: 12 | type: stdout 13 | stdout: output.txt 14 | arguments: 15 | - prefix: -A 16 | valueFrom: $(1+1) 17 | - prefix: -B 18 | valueFrom: $("/foo/bar/baz".split('/').slice(-1)[0]) 19 | - prefix: -C 20 | valueFrom: | 21 | ${ 22 | var r = []; 23 | for (var i = 10; i >= 1; i--) { 24 | r.push(i); 25 | } 26 | return r; 27 | } 28 | -------------------------------------------------------------------------------- /src/_includes/cwl/expressions/hello-world-expressionlib-external.cwl: -------------------------------------------------------------------------------- 1 | cwlVersion: v1.2 2 | class: CommandLineTool 3 | requirements: 4 | - class: InlineJavascriptRequirement 5 | expressionLib: 6 | - { $include: custom-functions.js } 7 | 8 | baseCommand: echo 9 | 10 | inputs: 11 | message: 12 | type: string 13 | 14 | arguments: [$( capitalizeWords(inputs.message) )] 15 | 16 | outputs: [] 17 | -------------------------------------------------------------------------------- /src/_includes/cwl/expressions/hello-world-expressionlib-inline.cwl: -------------------------------------------------------------------------------- 1 | cwlVersion: v1.2 2 | class: CommandLineTool 3 | requirements: 4 | - class: InlineJavascriptRequirement 5 | expressionLib: 6 | - | 7 | /** 8 | * Capitalize each word passed. Will split the text by spaces. 9 | * For instance, given "hello world", it returns "Hello World". 10 | * 11 | * @param {String} message - The input message. 12 | * @return {String} the message with each word with its initial letter capitalized. 13 | */ 14 | function capitalizeWords (message) { 15 | if (message === undefined || message === null || typeof message !== 'string' || message.trim().length === 0) { 16 | return ''; 17 | } 18 | return message 19 | .split(' ') 20 | .map(function (token) { 21 | return token.charAt(0).toUpperCase() + token.slice(1); 22 | }) 23 | .join(' '); 24 | } 25 | 26 | baseCommand: echo 27 | 28 | inputs: 29 | message: 30 | type: string 31 | 32 | arguments: [$( capitalizeWords(inputs.message) )] 33 | 34 | outputs: [] 35 | -------------------------------------------------------------------------------- /src/_includes/cwl/expressions/hello-world-expressionlib.cwl: -------------------------------------------------------------------------------- 1 | cwlVersion: v1.2 2 | class: CommandLineTool 3 | requirements: 4 | - class: InlineJavascriptRequirement 5 | expressionLib: 6 | - { $include: custom-functions.js } 7 | - | 8 | /** 9 | * A merely illustrative example function that uses a function 10 | * from the included custom-functions.js file to create a 11 | * Hello World message. 12 | * 13 | * @param {Object} message - CWL document input message 14 | */ 15 | var createHelloWorldMessage = function (message) { 16 | return capitalizeWords(message); 17 | }; 18 | 19 | baseCommand: echo 20 | 21 | inputs: 22 | message: 23 | type: string 24 | 25 | arguments: [$( createHelloWorldMessage(inputs.message) )] 26 | 27 | outputs: [] 28 | -------------------------------------------------------------------------------- /src/_includes/cwl/file-formats/file-formats.bam: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_includes/cwl/file-formats/file-formats.bam -------------------------------------------------------------------------------- /src/_includes/cwl/file-formats/metadata_example.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | 5 | label: An example tool demonstrating metadata. 6 | 7 | inputs: 8 | aligned_sequences: 9 | type: File 10 | label: Aligned sequences in BAM format 11 | format: edam:format_2572 12 | inputBinding: 13 | position: 1 14 | 15 | baseCommand: [ wc, -l ] 16 | 17 | stdout: output.txt 18 | 19 | outputs: 20 | report: 21 | type: stdout 22 | format: edam:format_1964 23 | label: A text file that contains a line count 24 | 25 | $namespaces: 26 | edam: http://edamontology.org/ 27 | $schemas: 28 | - http://edamontology.org/EDAM_1.18.owl 29 | -------------------------------------------------------------------------------- /src/_includes/cwl/file-formats/sample.yml: -------------------------------------------------------------------------------- 1 | aligned_sequences: 2 | class: File 3 | format: http://edamontology.org/format_2572 4 | path: file-formats.bam 5 | -------------------------------------------------------------------------------- /src/_includes/cwl/hello_world-job.json: -------------------------------------------------------------------------------- 1 | { 2 | "message": "こんにちは世界" 3 | } 4 | -------------------------------------------------------------------------------- /src/_includes/cwl/hello_world.cwl: -------------------------------------------------------------------------------- 1 | cwlVersion: v1.2 2 | 3 | # What type of CWL process we have in this document. 4 | class: CommandLineTool 5 | # This CommandLineTool executes the linux "echo" command-line tool. 6 | baseCommand: echo 7 | 8 | # The inputs for this process. 9 | inputs: 10 | message: 11 | type: string 12 | # A default value that can be overridden, e.g. --message "Hola mundo" 13 | default: "Hello World" 14 | # Bind this message value as an argument to "echo". 15 | inputBinding: 16 | position: 1 17 | outputs: [] 18 | -------------------------------------------------------------------------------- /src/_includes/cwl/inputs/array-inputs-job.yml: -------------------------------------------------------------------------------- 1 | filesA: [one, two, three] 2 | filesB: [four, five, six] 3 | filesC: [seven, eight, nine] 4 | -------------------------------------------------------------------------------- /src/_includes/cwl/inputs/array-inputs.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | inputs: 5 | filesA: 6 | type: string[] 7 | inputBinding: 8 | prefix: -A 9 | position: 1 10 | 11 | filesB: 12 | type: 13 | type: array 14 | items: string 15 | inputBinding: 16 | prefix: -B= 17 | separate: false 18 | inputBinding: 19 | position: 2 20 | 21 | filesC: 22 | type: string[] 23 | inputBinding: 24 | prefix: -C= 25 | itemSeparator: "," 26 | separate: false 27 | position: 4 28 | 29 | outputs: 30 | example_out: 31 | type: stdout 32 | stdout: output.txt 33 | baseCommand: echo 34 | -------------------------------------------------------------------------------- /src/_includes/cwl/inputs/exclusive-parameter-expressions.cwl: -------------------------------------------------------------------------------- 1 | cwlVersion: v1.2 2 | class: CommandLineTool 3 | 4 | inputs: 5 | file_format: 6 | type: 7 | - 'null' 8 | - name: format_choices 9 | type: enum 10 | symbols: 11 | - auto 12 | - fasta 13 | - fastq 14 | - fasta.gz 15 | - fastq.gz 16 | inputBinding: 17 | position: 0 18 | prefix: '--format' 19 | outputs: 20 | text_output: 21 | type: string 22 | outputBinding: 23 | outputEval: $(inputs.file_format) 24 | 25 | baseCommand: 'true' 26 | -------------------------------------------------------------------------------- /src/_includes/cwl/inputs/inp-job.yml: -------------------------------------------------------------------------------- 1 | example_flag: true 2 | example_string: hello 3 | example_int: 42 4 | example_file: 5 | class: File 6 | path: whale.txt 7 | -------------------------------------------------------------------------------- /src/_includes/cwl/inputs/inp.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | baseCommand: echo 5 | inputs: 6 | example_flag: 7 | type: boolean 8 | inputBinding: 9 | position: 1 10 | prefix: -f 11 | example_string: 12 | type: string 13 | inputBinding: 14 | position: 3 15 | prefix: --example-string 16 | example_int: 17 | type: int 18 | inputBinding: 19 | position: 2 20 | prefix: -i 21 | separate: false 22 | example_file: 23 | type: File? 24 | inputBinding: 25 | prefix: --file= 26 | separate: false 27 | position: 4 28 | 29 | outputs: [] 30 | -------------------------------------------------------------------------------- /src/_includes/cwl/inputs/record-job1.yml: -------------------------------------------------------------------------------- 1 | dependent_parameters: 2 | itemA: one 3 | exclusive_parameters: 4 | itemC: three 5 | -------------------------------------------------------------------------------- /src/_includes/cwl/inputs/record-job2.yml: -------------------------------------------------------------------------------- 1 | dependent_parameters: 2 | itemA: one 3 | itemB: two 4 | exclusive_parameters: 5 | itemC: three 6 | itemD: four 7 | -------------------------------------------------------------------------------- /src/_includes/cwl/inputs/record-job3.yml: -------------------------------------------------------------------------------- 1 | dependent_parameters: 2 | itemA: one 3 | itemB: two 4 | exclusive_parameters: 5 | itemD: four 6 | -------------------------------------------------------------------------------- /src/_includes/cwl/inputs/record.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | inputs: 5 | dependent_parameters: 6 | type: 7 | type: record 8 | name: dependent_parameters 9 | fields: 10 | itemA: 11 | type: string 12 | inputBinding: 13 | prefix: -A 14 | itemB: 15 | type: string 16 | inputBinding: 17 | prefix: -B 18 | exclusive_parameters: 19 | type: 20 | - type: record 21 | name: itemC 22 | fields: 23 | itemC: 24 | type: string 25 | inputBinding: 26 | prefix: -C 27 | - type: record 28 | name: itemD 29 | fields: 30 | itemD: 31 | type: string 32 | inputBinding: 33 | prefix: -D 34 | outputs: 35 | example_out: 36 | type: stdout 37 | stdout: output.txt 38 | baseCommand: echo 39 | -------------------------------------------------------------------------------- /src/_includes/cwl/inputs/whale.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_includes/cwl/inputs/whale.txt -------------------------------------------------------------------------------- /src/_includes/cwl/metadata-and-authorship/file-formats.bam: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_includes/cwl/metadata-and-authorship/file-formats.bam -------------------------------------------------------------------------------- /src/_includes/cwl/metadata-and-authorship/metadata_example2.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | 5 | label: An example tool demonstrating metadata. 6 | doc: Note that this is an example and the metadata is not necessarily consistent. 7 | 8 | inputs: 9 | aligned_sequences: 10 | type: File 11 | label: Aligned sequences in BAM format 12 | format: edam:format_2572 13 | inputBinding: 14 | position: 1 15 | 16 | baseCommand: [ wc, -l ] 17 | 18 | stdout: output.txt 19 | 20 | outputs: 21 | report: 22 | type: stdout 23 | format: edam:format_1964 24 | label: A text file that contains a line count 25 | 26 | s:author: 27 | - class: s:Person 28 | s:identifier: https://orcid.org/0000-0002-6130-1021 29 | s:email: mailto:dyuen@oicr.on.ca 30 | s:name: Denis Yuen 31 | 32 | s:contributor: 33 | - class: s:Person 34 | s:identifier: http://orcid.org/0000-0002-7681-6415 35 | s:email: mailto:briandoconnor@gmail.com 36 | s:name: Brian O'Connor 37 | 38 | s:citation: https://dx.doi.org/10.6084/m9.figshare.3115156.v2 39 | s:codeRepository: https://github.com/common-workflow-language/common-workflow-language 40 | s:dateCreated: "2016-12-13" 41 | s:license: https://spdx.org/licenses/Apache-2.0 42 | 43 | $namespaces: 44 | s: https://schema.org/ 45 | edam: http://edamontology.org/ 46 | 47 | $schemas: 48 | - https://schema.org/version/latest/schemaorg-current-https.rdf 49 | - http://edamontology.org/EDAM_1.18.owl 50 | -------------------------------------------------------------------------------- /src/_includes/cwl/metadata-and-authorship/metadata_example3.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | 5 | label: An example tool demonstrating metadata. 6 | doc: Note that this is an example and the metadata is not necessarily consistent. 7 | 8 | hints: 9 | ResourceRequirement: 10 | coresMin: 4 11 | 12 | inputs: 13 | aligned_sequences: 14 | type: File 15 | label: Aligned sequences in BAM format 16 | format: edam:format_2572 17 | inputBinding: 18 | position: 1 19 | 20 | baseCommand: [ wc, -l ] 21 | 22 | stdout: output.txt 23 | 24 | outputs: 25 | report: 26 | type: stdout 27 | format: edam:format_1964 28 | label: A text file that contains a line count 29 | 30 | s:author: 31 | - class: s:Person 32 | s:identifier: https://orcid.org/0000-0002-6130-1021 33 | s:email: mailto:dyuen@oicr.on.ca 34 | s:name: Denis Yuen 35 | 36 | s:contributor: 37 | - class: s:Person 38 | s:identifier: http://orcid.org/0000-0002-7681-6415 39 | s:email: mailto:briandoconnor@gmail.com 40 | s:name: Brian O'Connor 41 | 42 | s:citation: https://dx.doi.org/10.6084/m9.figshare.3115156.v2 43 | s:codeRepository: https://github.com/common-workflow-language/common-workflow-language 44 | s:dateCreated: "2016-12-13" 45 | s:license: https://spdx.org/licenses/Apache-2.0 46 | 47 | s:keywords: edam:topic_0091 , edam:topic_0622 48 | s:programmingLanguage: C 49 | 50 | $namespaces: 51 | s: https://schema.org/ 52 | edam: http://edamontology.org/ 53 | 54 | $schemas: 55 | - https://schema.org/version/latest/schemaorg-current-https.rdf 56 | - http://edamontology.org/EDAM_1.18.owl 57 | -------------------------------------------------------------------------------- /src/_includes/cwl/metadata-and-authorship/sample.yml: -------------------------------------------------------------------------------- 1 | aligned_sequences: 2 | class: File 3 | format: http://edamontology.org/format_2572 4 | path: file-formats.bam 5 | bamstats_report: 6 | class: File 7 | path: /tmp/bamstats_report.zip 8 | -------------------------------------------------------------------------------- /src/_includes/cwl/operations/echo.cwl: -------------------------------------------------------------------------------- 1 | cwlVersion: v1.2 2 | 3 | # What type of CWL process we have in this document. 4 | class: CommandLineTool 5 | # This CommandLineTool executes the linux "echo" command-line tool. 6 | baseCommand: echo 7 | 8 | # The inputs for this process. 9 | inputs: 10 | message: 11 | type: string 12 | # A default value that can be overridden, e.g. --message "Hola mundo" 13 | default: "Hello World" 14 | # Bind this message value as an argument to "echo". 15 | inputBinding: 16 | position: 1 17 | outputs: [] 18 | -------------------------------------------------------------------------------- /src/_includes/cwl/operations/operations.cwl: -------------------------------------------------------------------------------- 1 | cwlVersion: v1.2 2 | class: Workflow 3 | 4 | 5 | inputs: 6 | message: string 7 | outputs: [] 8 | 9 | steps: 10 | echo: 11 | run: ../echo.cwl 12 | in: 13 | message: message 14 | out: [out] 15 | # Here you know you want an operation that changes the case of 16 | # the previous step, but you do not have an implementation yet. 17 | uppercase: 18 | run: 19 | class: Operation 20 | inputs: 21 | message: string 22 | outputs: 23 | uppercase_message: string 24 | in: 25 | message: 26 | source: echo/out 27 | out: [uppercase_message] 28 | -------------------------------------------------------------------------------- /src/_includes/cwl/outputs/array-outputs-job.yml: -------------------------------------------------------------------------------- 1 | touchfiles: 2 | - foo.txt 3 | - bar.dat 4 | - baz.txt 5 | -------------------------------------------------------------------------------- /src/_includes/cwl/outputs/array-outputs.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | baseCommand: touch 5 | inputs: 6 | touchfiles: 7 | type: 8 | type: array 9 | items: string 10 | inputBinding: 11 | position: 1 12 | outputs: 13 | output: 14 | type: 15 | type: array 16 | items: File 17 | outputBinding: 18 | glob: "*.txt" 19 | -------------------------------------------------------------------------------- /src/_includes/cwl/outputs/baz.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_includes/cwl/outputs/baz.txt -------------------------------------------------------------------------------- /src/_includes/cwl/outputs/echo-job.yml: -------------------------------------------------------------------------------- 1 | message: Hello world! 2 | -------------------------------------------------------------------------------- /src/_includes/cwl/outputs/foo.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_includes/cwl/outputs/foo.txt -------------------------------------------------------------------------------- /src/_includes/cwl/outputs/hello.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_includes/cwl/outputs/hello.txt -------------------------------------------------------------------------------- /src/_includes/cwl/outputs/stdout.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | baseCommand: echo 5 | stdout: output.txt 6 | inputs: 7 | message: 8 | type: string 9 | inputBinding: 10 | position: 1 11 | outputs: 12 | example_out: 13 | type: stdout 14 | -------------------------------------------------------------------------------- /src/_includes/cwl/outputs/tar-job.yml: -------------------------------------------------------------------------------- 1 | tarfile: 2 | class: File 3 | path: hello.tar 4 | -------------------------------------------------------------------------------- /src/_includes/cwl/outputs/tar.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | baseCommand: [tar, --extract] 5 | inputs: 6 | tarfile: 7 | type: File 8 | inputBinding: 9 | prefix: --file 10 | outputs: 11 | example_out: 12 | type: File 13 | outputBinding: 14 | glob: hello.txt 15 | -------------------------------------------------------------------------------- /src/_includes/cwl/parameter-references/goodbye.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_includes/cwl/parameter-references/goodbye.txt -------------------------------------------------------------------------------- /src/_includes/cwl/parameter-references/tar-param-job.yml: -------------------------------------------------------------------------------- 1 | tarfile: 2 | class: File 3 | path: hello.tar 4 | extractfile: goodbye.txt 5 | -------------------------------------------------------------------------------- /src/_includes/cwl/parameter-references/tar-param.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | baseCommand: [tar, --extract] 5 | inputs: 6 | tarfile: 7 | type: File 8 | inputBinding: 9 | prefix: --file 10 | extractfile: 11 | type: string 12 | inputBinding: 13 | position: 1 14 | outputs: 15 | extracted_file: 16 | type: File 17 | outputBinding: 18 | glob: $(inputs.extractfile) 19 | -------------------------------------------------------------------------------- /src/_includes/cwl/specifying-software-requirements/InterProScan-apps.yml: -------------------------------------------------------------------------------- 1 | type: enum 2 | name: apps 3 | symbols: 4 | - TIGRFAM 5 | - SFLD 6 | - SUPERFAMILY 7 | - Gene3D 8 | - Hamap 9 | - Coils 10 | - ProSiteProfiles 11 | - SMART 12 | - CDD 13 | - PRINTS 14 | - PIRSF 15 | - ProSitePatterns 16 | - Pfam 17 | - ProDom 18 | - MobiDBLite 19 | -------------------------------------------------------------------------------- /src/_includes/cwl/specifying-software-requirements/custom-types.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | 5 | label: "InterProScan: protein sequence classifier" 6 | 7 | doc: | 8 | Version 5.21-60 can be downloaded here: 9 | https://interproscan-docs.readthedocs.io/en/latest/HowToDownload.html 10 | 11 | Documentation on how to run InterProScan 5 can be found here: 12 | https://interproscan-docs.readthedocs.io/en/latest/HowToRun.html 13 | 14 | requirements: 15 | ResourceRequirement: 16 | ramMin: 10240 17 | coresMin: 3 18 | SchemaDefRequirement: 19 | types: 20 | - $import: InterProScan-apps.yml 21 | 22 | hints: 23 | SoftwareRequirement: 24 | packages: 25 | interproscan: 26 | specs: [ "https://identifiers.org/rrid/RRID:SCR_005829" ] 27 | version: [ "5.21-60" ] 28 | 29 | inputs: 30 | proteinFile: 31 | type: File 32 | inputBinding: 33 | prefix: --input 34 | applications: 35 | type: InterProScan-apps.yml#apps[]? 36 | inputBinding: 37 | itemSeparator: ',' 38 | prefix: --applications 39 | 40 | baseCommand: interproscan.sh 41 | 42 | arguments: 43 | - valueFrom: $(inputs.proteinFile.nameroot).i5_annotations 44 | prefix: --outfile 45 | - valueFrom: TSV 46 | prefix: --formats 47 | - --disable-precalc 48 | - --goterms 49 | - --pathways 50 | - valueFrom: $(runtime.tmpdir) 51 | prefix: --tempdir 52 | 53 | 54 | outputs: 55 | i5Annotations: 56 | type: File 57 | format: iana:text/tab-separated-values 58 | outputBinding: 59 | glob: $(inputs.proteinFile.nameroot).i5_annotations 60 | 61 | $namespaces: 62 | iana: https://www.iana.org/assignments/media-types/ 63 | s: https://schema.org/ 64 | $schemas: 65 | - https://schema.org/version/latest/schemaorg-current-http.rdf 66 | 67 | s:license: https://spdx.org/licenses/Apache-2.0 68 | s:copyrightHolder: "EMBL - European Bioinformatics Institute" 69 | -------------------------------------------------------------------------------- /src/_includes/cwl/specifying-software-requirements/custom-types.yml: -------------------------------------------------------------------------------- 1 | proteinFile: 2 | class: File 3 | path: test_proteins.fasta 4 | -------------------------------------------------------------------------------- /src/_includes/cwl/specifying-software-requirements/test_proteins.fasta: -------------------------------------------------------------------------------- 1 | >Q97R95 2 | MKYKRIVFKVGTSSLTNEDGSLSRSKVKDITQQLAMLHEAGHELILVSSGAIAAGFGALG 3 | FKKRPTKIADKQASAAVGQGLLLEEYTTNLLLRQIVSAQILLTQDDFVDKRRYKNAHQAL 4 | SVLLNRGAIPIINENDSVVIDELKVGDNDTLSAQVAAMVQADLLVFLTDVDGLYTGNPNS 5 | DPRAKRLERIETINREIIDMAGGAGSSNGTGGMLTKIKAATIATESGVPVYICSSLKSDS 6 | MIEAAEETEDGSYFVAQEKGLRTQKQWLAFYAQSQGSIWVDKGAAEALSQYGKSLLLSGI 7 | VEAEGVFSYGDIVTVFDKESGKSLGKGRVQFGASALEDMLRSQKAKGVLIYRDDWISITP 8 | EIQLLFTEF 9 | >A2VDN9 10 | MEVKGKKKLTGKGTKMSQEKSKFHKNNDSGSSKTFPKKVVKEGGPKITSKNFEKTATKPGKKGVKQFKNKQQGDRIPKNK 11 | FQQANKFNQKRKFQPDSKSDESAAKKPKWDEFKKKKKELKQSRQLSDKTNYDIVIRAKQIWEILRRKDCDKEKRVKLMSD 12 | LQKLIQGKIKTIAFAHDSTRVIQCYIQFGNEEQRKQAFEELRGDLVELSKAKYSRNIVKKFLMYGSKAQIAEIIRSFKGH 13 | VRKLLRHAEASAIVEYAYNDKAILEQRNMLTEELYGNTFQLYKSADHPTLDKVLEVQPEKLELIMDEMKQILTPMAQKEA 14 | VIKHSLVHKVFLDFFTYAPPKLRSEMIEAIREAVVYLAHTHDGARVAMYCLWHGTPKDRKVIVKTMKTYIEKVANGQYSH 15 | LVLLAAFDCIDDTKLVKQIIISEIINSLPNIVNDKYGRKVLLYLLSPRDPAHTVREIIEVLQKGDGNAHSKKDTEIRRRE 16 | LLESISPALLSYLQGHAQEVVLDKSACVLVADILGTATGDVQPAMDAVASLAAAELHPGGKDGELHIAEHPAGHLVLKWL 17 | IEQDKKMKERGREGCFAKTLIERVGVKNLKSWASVNRGAIILSSLLQSSDQEVANKVKAGLKSLIPALEKSKNTSKGIEM 18 | LLEKLTA 19 | >A2YIW7 20 | MAAEEGVVIACHNKDEFDAQMTKAKEAGKVVIIDFTASWCGPCRFIAPVFAEYAKKFPGAVFLKVDVDELKEVAEKYNVE 21 | AMPTFLFIKDGAEADKVVGARKDDLQNTIVKHVGATAASASA 22 | >P22298 23 | GRGLLPFVLLALGIXAPWAVEGAENALKGGACPPRKIVQCLRYEKPKCTSDWQCPDKKKC 24 | CRDTCAIKCLNPVAITNPVKVKPGKCPVVYGQCMMLNPPNHCKTDSQCLGDLKCCKSMCG 25 | KVCLTPVKA 26 | >A0B6J9 27 | MSKIGKSIRLERIIDRKTRKTVIVPMDHGLTVGPIPGLIDLAAAVDKVAEGGANAVLGHM 28 | GLPLYGHRGYGKDVGLIIHLSASTSLGPDANHKVLVTRVEDAIRVGADGVSIHVNVGAED 29 | EAEMLRDLGMVARRCDLWGMPLLAMMYPRGAKVRSEHSVEYVKHAARVGAELGVDIVKTN 30 | YTGSPETFREVVRGCPAPVVIAGGPKMDTEADLLQMVYDAMQAGAAGISIGRNIFQAENP 31 | TLLTRKLSKIVHEGYTPEEAARLKL 32 | >P02939 33 | MNRTKLVLGAVILGSTLLAGCSSNAKIDQLSTDVQTLNAKVDQLSNDVTAIRSDVQAAKD 34 | DAARANQRLDNQAHSYRK -------------------------------------------------------------------------------- /src/_includes/cwl/staging-input-files/Hello.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_includes/cwl/staging-input-files/Hello.class -------------------------------------------------------------------------------- /src/_includes/cwl/staging-input-files/Hello.java: -------------------------------------------------------------------------------- 1 | public class Hello {} 2 | -------------------------------------------------------------------------------- /src/_includes/cwl/staging-input-files/arguments-job.yml: -------------------------------------------------------------------------------- 1 | src: 2 | class: File 3 | path: Hello.java 4 | -------------------------------------------------------------------------------- /src/_includes/cwl/staging-input-files/linkfile.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | hints: 5 | DockerRequirement: 6 | dockerPull: openjdk:9.0.1-11-slim 7 | baseCommand: javac 8 | 9 | requirements: 10 | InitialWorkDirRequirement: 11 | listing: 12 | - $(inputs.src) 13 | 14 | inputs: 15 | src: 16 | type: File 17 | inputBinding: 18 | position: 1 19 | valueFrom: $(self.basename) 20 | 21 | outputs: 22 | classfile: 23 | type: File 24 | outputBinding: 25 | glob: "*.class" 26 | -------------------------------------------------------------------------------- /src/_includes/cwl/troubleshooting/troubleshooting-wf1-stepb-fixed.cwl: -------------------------------------------------------------------------------- 1 | cwlVersion: v1.2 2 | class: Workflow 3 | 4 | inputs: 5 | text: 6 | type: string 7 | default: 'Hello World' 8 | outputs: 9 | reversed_message: 10 | type: string 11 | outputSource: step_b/reversed_message 12 | 13 | steps: 14 | step_a: 15 | run: 16 | class: CommandLineTool 17 | stdout: stdout.txt 18 | inputs: 19 | text: string 20 | outputs: 21 | step_a_stdout: 22 | type: File 23 | outputBinding: 24 | glob: 'stdout.txt' 25 | baseCommand: echo 26 | arguments: [ '-n', '$(inputs.text)' ] 27 | in: 28 | text: text 29 | out: [step_a_stdout] 30 | step_b: 31 | run: 32 | class: CommandLineTool 33 | stdout: stdout.txt 34 | inputs: 35 | step_a_stdout: File 36 | outputs: 37 | reversed_message: 38 | type: string 39 | outputBinding: 40 | glob: stdout.txt 41 | loadContents: true 42 | outputEval: $(self[0].contents) 43 | baseCommand: rev 44 | arguments: [ $(inputs.step_a_stdout) ] 45 | in: 46 | step_a_stdout: 47 | source: step_a/step_a_stdout 48 | out: [reversed_message] 49 | -------------------------------------------------------------------------------- /src/_includes/cwl/troubleshooting/troubleshooting-wf1.cwl: -------------------------------------------------------------------------------- 1 | cwlVersion: v1.2 2 | class: Workflow 3 | 4 | inputs: 5 | text: 6 | type: string 7 | default: 'Hello World' 8 | outputs: 9 | reversed_message: 10 | type: string 11 | outputSource: step_b/reversed_message 12 | 13 | steps: 14 | step_a: 15 | run: 16 | class: CommandLineTool 17 | stdout: stdout.txt 18 | inputs: 19 | text: string 20 | outputs: 21 | step_a_stdout: 22 | type: File 23 | outputBinding: 24 | glob: 'stdout.txt' 25 | arguments: ['echo', '-n', '$(inputs.text)'] 26 | in: 27 | text: text 28 | out: [step_a_stdout] 29 | step_b: 30 | run: 31 | class: CommandLineTool 32 | stdout: stdout.txt 33 | inputs: 34 | step_a_stdout: File 35 | outputs: 36 | reversed_message: 37 | type: string 38 | outputBinding: 39 | glob: stdout.txt 40 | loadContents: true 41 | outputEval: $(self[0].contents) 42 | baseCommand: revv 43 | arguments: [ $(inputs.step_a_stdout) ] 44 | in: 45 | step_a_stdout: 46 | source: step_a/step_a_stdout 47 | out: [reversed_message] 48 | -------------------------------------------------------------------------------- /src/_includes/cwl/true.cwl: -------------------------------------------------------------------------------- 1 | cwlVersion: v1.2 2 | class: CommandLineTool 3 | inputs: [] 4 | outputs: [] 5 | # `true` is a Linux command that exits with exit code `0` (success). 6 | baseCommand: "true" 7 | -------------------------------------------------------------------------------- /src/_includes/cwl/true_shebang.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | 3 | cwlVersion: v1.2 4 | class: CommandLineTool 5 | inputs: [] 6 | outputs: [] 7 | # `true` is a Linux command that exits with exit code `0` (success). 8 | baseCommand: "true" 9 | -------------------------------------------------------------------------------- /src/_includes/cwl/using-containers/docker-job.yml: -------------------------------------------------------------------------------- 1 | src: 2 | class: File 3 | path: hello.js 4 | -------------------------------------------------------------------------------- /src/_includes/cwl/using-containers/docker.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | baseCommand: node 5 | hints: 6 | DockerRequirement: 7 | dockerPull: node:slim 8 | inputs: 9 | src: 10 | type: File 11 | inputBinding: 12 | position: 1 13 | outputs: 14 | example_out: 15 | type: stdout 16 | stdout: output.txt 17 | -------------------------------------------------------------------------------- /src/_includes/cwl/using-containers/hello.js: -------------------------------------------------------------------------------- 1 | console.log("Hello World"); 2 | -------------------------------------------------------------------------------- /src/_includes/cwl/workflows/1st-workflow-job.yml: -------------------------------------------------------------------------------- 1 | tarball: 2 | class: File 3 | path: hello.tar 4 | name_of_file_to_extract: Hello.java 5 | -------------------------------------------------------------------------------- /src/_includes/cwl/workflows/1st-workflow.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: Workflow 4 | inputs: 5 | tarball: File 6 | name_of_file_to_extract: string 7 | 8 | outputs: 9 | compiled_class: 10 | type: File 11 | outputSource: compile/classfile 12 | 13 | steps: 14 | untar: 15 | run: tar-param.cwl 16 | in: 17 | tarfile: tarball 18 | extractfile: name_of_file_to_extract 19 | out: [extracted_file] 20 | 21 | compile: 22 | run: arguments.cwl 23 | in: 24 | src: untar/extracted_file 25 | out: [classfile] 26 | -------------------------------------------------------------------------------- /src/_includes/cwl/workflows/Hello.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_includes/cwl/workflows/Hello.class -------------------------------------------------------------------------------- /src/_includes/cwl/workflows/arguments.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | label: Example trivial wrapper for Java 9 compiler 5 | hints: 6 | DockerRequirement: 7 | dockerPull: openjdk:9.0.1-11-slim 8 | baseCommand: javac 9 | arguments: ["-d", $(runtime.outdir)] 10 | inputs: 11 | src: 12 | type: File 13 | inputBinding: 14 | position: 1 15 | outputs: 16 | classfile: 17 | type: File 18 | outputBinding: 19 | glob: "*.class" 20 | 21 | -------------------------------------------------------------------------------- /src/_includes/cwl/workflows/hello.tar: -------------------------------------------------------------------------------- 1 | Hello.java000644 000765 000024 00000000161 13213652147 013244 0ustar00tanjostaff000000 000000 public class Hello { 2 | public static void main(String[] argv) { 3 | System.out.println("Hello from Java"); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/_includes/cwl/workflows/hello_world.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | baseCommand: echo 5 | inputs: 6 | message: 7 | type: string 8 | inputBinding: 9 | position: 1 10 | outputs: 11 | echo_out: 12 | type: stdout 13 | -------------------------------------------------------------------------------- /src/_includes/cwl/workflows/hello_world_to_stdout.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | baseCommand: echo 5 | inputs: 6 | message: 7 | type: string 8 | inputBinding: 9 | position: 1 10 | outputs: [] 11 | -------------------------------------------------------------------------------- /src/_includes/cwl/workflows/nestedworkflows.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: Workflow 4 | 5 | inputs: [] 6 | 7 | outputs: 8 | classout: 9 | type: File 10 | outputSource: compile/compiled_class 11 | 12 | requirements: 13 | SubworkflowFeatureRequirement: {} 14 | 15 | steps: 16 | compile: 17 | run: 1st-workflow.cwl 18 | in: 19 | tarball: create-tar/tar_compressed_java_file 20 | name_of_file_to_extract: 21 | default: "Hello.java" 22 | out: [compiled_class] 23 | 24 | create-tar: 25 | in: [] 26 | out: [tar_compressed_java_file] 27 | run: 28 | class: CommandLineTool 29 | requirements: 30 | InitialWorkDirRequirement: 31 | listing: 32 | - entryname: Hello.java 33 | entry: | 34 | public class Hello { 35 | public static void main(String[] argv) { 36 | System.out.println("Hello from Java"); 37 | } 38 | } 39 | inputs: [] 40 | baseCommand: [tar, --create, --file=hello.tar, Hello.java] 41 | outputs: 42 | tar_compressed_java_file: 43 | type: File 44 | streamable: true 45 | outputBinding: 46 | glob: "hello.tar" 47 | -------------------------------------------------------------------------------- /src/_includes/cwl/workflows/scatter-job.yml: -------------------------------------------------------------------------------- 1 | message_array: 2 | - Hello world! 3 | - Hola mundo! 4 | - Bonjour le monde! 5 | - Hallo welt! 6 | -------------------------------------------------------------------------------- /src/_includes/cwl/workflows/scatter-nested-workflow.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: Workflow 4 | 5 | requirements: 6 | ScatterFeatureRequirement: {} 7 | SubworkflowFeatureRequirement: {} 8 | 9 | inputs: 10 | message_array: string[] 11 | 12 | steps: 13 | subworkflow: 14 | run: 15 | class: Workflow 16 | inputs: 17 | message: string 18 | outputs: [] 19 | steps: 20 | echo: 21 | run: hello_world_to_stdout.cwl 22 | in: 23 | message: message 24 | out: [echo_out] 25 | wc: 26 | run: wc-tool.cwl 27 | in: 28 | input_file: echo/echo_out 29 | out: [] 30 | scatter: message 31 | in: 32 | message: message_array 33 | out: [] 34 | outputs: [] 35 | -------------------------------------------------------------------------------- /src/_includes/cwl/workflows/scatter-two-steps.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: Workflow 4 | 5 | requirements: 6 | ScatterFeatureRequirement: {} 7 | 8 | inputs: 9 | message_array: string[] 10 | 11 | steps: 12 | echo: 13 | run: hello_world_to_stdout.cwl 14 | scatter: message 15 | in: 16 | message: message_array 17 | out: [echo_out] 18 | wc: 19 | run: wc-tool.cwl 20 | scatter: input_file 21 | in: 22 | input_file: echo/echo_out 23 | out: [] 24 | 25 | outputs: [] 26 | -------------------------------------------------------------------------------- /src/_includes/cwl/workflows/scatter-workflow.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: Workflow 4 | 5 | requirements: 6 | ScatterFeatureRequirement: {} 7 | 8 | inputs: 9 | message_array: string[] 10 | 11 | steps: 12 | echo: 13 | run: hello_world.cwl 14 | scatter: message 15 | in: 16 | message: message_array 17 | out: [] 18 | 19 | outputs: [] 20 | -------------------------------------------------------------------------------- /src/_includes/cwl/workflows/tar-param.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | baseCommand: [tar, --extract] 5 | inputs: 6 | tarfile: 7 | type: File 8 | inputBinding: 9 | prefix: --file 10 | extractfile: 11 | type: string 12 | inputBinding: 13 | position: 1 14 | outputs: 15 | extracted_file: 16 | type: File 17 | outputBinding: 18 | glob: $(inputs.extractfile) 19 | -------------------------------------------------------------------------------- /src/_includes/cwl/workflows/wc-tool.cwl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env cwl-runner 2 | cwlVersion: v1.2 3 | class: CommandLineTool 4 | baseCommand: wc 5 | arguments: ["-c"] 6 | inputs: 7 | input_file: 8 | type: File 9 | inputBinding: 10 | position: 1 11 | outputs: [] 12 | -------------------------------------------------------------------------------- /src/_includes/favicons.html: -------------------------------------------------------------------------------- 1 | {% assign favicon_url = relative_root_path | append: '/assets/favicons/' | append: site.carpentry %} 2 | 3 | {% if site.carpentry == 'swc' %} 4 | {% assign carpentry = 'Software Carpentry' %} 5 | {% elsif site.carpentry == 'dc' %} 6 | {% assign carpentry = 'Data Carpentry' %} 7 | {% elsif site.carpentry == 'lc' %} 8 | {% assign carpentry = 'Library Carpentry' %} 9 | {% elsif site.carpentry == 'cp' %} 10 | {% assign carpentry = 'The Carpentries' %} 11 | {% elsif site.carpentry == 'cwl' %} 12 | {% assign carpentry = 'The Common Workflow Language Project' %} 13 | {% endif %} 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/_includes/what-is-cwl.md: -------------------------------------------------------------------------------- 1 | CWL is a way to describe command-line tools and connect them together to create workflows. 2 | Because CWL is a specification and not a specific piece of software, tools and workflows 3 | described using CWL are portable across a variety of platforms that support the CWL standard. 4 | -------------------------------------------------------------------------------- /src/_static/css/custom.css: -------------------------------------------------------------------------------- 1 | body { 2 | /* 3 | * These settings are copied from the https://commonwl.org website style 4 | * for consistency. 5 | */ 6 | font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 7 | font-size: 16px; 8 | line-height: 24px; 9 | color: rgb(33, 37, 41); 10 | } 11 | -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/android-icon-144x144.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/android-icon-192x192.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/android-icon-36x36.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/android-icon-48x48.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/android-icon-72x72.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/android-icon-96x96.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/apple-icon-180x180.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/apple-icon-precomposed.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/apple-icon.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/apple-touch-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/apple-touch-icon-114x114.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/apple-touch-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/apple-touch-icon-72x72.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/favicon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/favicon-128.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/favicon-16x16.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/favicon-196x196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/favicon-196x196.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/favicon-32x32.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/favicon-96x96.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/favicon.ico -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/ms-icon-144x144.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/ms-icon-150x150.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/ms-icon-310x310.png -------------------------------------------------------------------------------- /src/_static/images/favicons/cwl/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/favicons/cwl/ms-icon-70x70.png -------------------------------------------------------------------------------- /src/_static/images/logos/cwl/CWL-Logo-HD-cropped2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/logos/cwl/CWL-Logo-HD-cropped2.png -------------------------------------------------------------------------------- /src/_static/images/logos/cwl/cwl-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/_static/images/logos/cwl/cwl-icon.png -------------------------------------------------------------------------------- /src/_static/switcher.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "dev", 4 | "version": "latest", 5 | "url": "https://common-workflow-languageuser-guide.readthedocs.io/en/latest/" 6 | } 7 | ] 8 | -------------------------------------------------------------------------------- /src/_templates/project-links.html: -------------------------------------------------------------------------------- 1 | {# Displays project-related links. #} 2 | 16 | -------------------------------------------------------------------------------- /src/assets/favicons/cp/apple-touch-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/apple-touch-icon-114x114.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/apple-touch-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/apple-touch-icon-72x72.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/favicon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/favicon-128.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/favicon-16x16.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/favicon-196x196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/favicon-196x196.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/favicon-32x32.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/favicon-96x96.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/favicon.ico -------------------------------------------------------------------------------- /src/assets/favicons/cp/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/mstile-144x144.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/mstile-150x150.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/mstile-310x150.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/mstile-310x310.png -------------------------------------------------------------------------------- /src/assets/favicons/cp/mstile-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cp/mstile-70x70.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/android-icon-144x144.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/android-icon-192x192.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/android-icon-36x36.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/android-icon-48x48.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/android-icon-72x72.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/android-icon-96x96.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/apple-icon-180x180.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/apple-icon-precomposed.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/apple-icon.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/apple-touch-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/apple-touch-icon-114x114.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/apple-touch-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/apple-touch-icon-72x72.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/favicon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/favicon-128.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/favicon-16x16.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/favicon-196x196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/favicon-196x196.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/favicon-32x32.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/favicon-96x96.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/favicon.ico -------------------------------------------------------------------------------- /src/assets/favicons/cwl/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/ms-icon-144x144.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/ms-icon-150x150.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/ms-icon-310x310.png -------------------------------------------------------------------------------- /src/assets/favicons/cwl/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/cwl/ms-icon-70x70.png -------------------------------------------------------------------------------- /src/assets/favicons/dc/apple-touch-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/dc/apple-touch-icon-114x114.png -------------------------------------------------------------------------------- /src/assets/favicons/dc/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/dc/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /src/assets/favicons/dc/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/dc/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /src/assets/favicons/dc/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/dc/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /src/assets/favicons/dc/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/dc/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /src/assets/favicons/dc/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- 1 | \89PNG 2 |  3 | \00\00\00 4 | IHDR\00\00\00<\00\00\00<\00\00\00:\FC\D9r\00\00\00 pHYs\00\00\C4\00\00\C4\95+\00\00.IDATh\81\E5\DB[\88UU\F0_\87\C1DdBH$$D*H|\EAF\84D\85\94F\99\F5\E0K\F7@\A2"\BAH\F4hЍ\E8N\A5PA(\81\D0\CD\CA"# \8B\A8\E8FIDH\8C"&2\8D\D3\D4\C3:gf\9D}\F6^{\9F\ABg\E8\8B\99\FD\AD\F9ַ\AE\DFm\AD\E1\86P\AB\FF\BE\E7`\BA\FE=\9D\F9\BD 5 | \AD\86\91z\A9Em70\95\A3\98\C0\C28\F6\E3`\97c\AA\8C'\F1\EF\94؅\BB\B1\B4m\ACİ 8.\FF`.\8C\FA\D9U\A9\99ݎÈ\D6\E0c|\82\F3\A3\BAi\CDǩ\88\D3g\CE\D80\BA\81 \F0)\DE\C0\92L]j\90M/\F7\\C1:|\8B 6 | \BA\D8\D2sa\85c\8C\E2l\C5|ͫ\99,#Ə\AA\CF$\B3&\AA\E8o\E6k^GC\B8\CBp\A56\CDY\99\96ީu\DB\E7\85\ADh\C0\F31V\EF\F8jlƯ\89\BE\E4\95=ªW\E9K%\B3\B4S\F5U\ED\ED2A;W\F4\C2n)jo\E6 \F7 7 | ymuC{\E3r\FC\A\FE%x4\D1^ \CAV\F8xb!^Tm\A5\AFJ54W\CC\D1܌;\95[\94gqRQe-\F33\85n\95V\B7\B4i<\81\DBK\FA\B9\B5׮ӑ\E7\A8 z\E0/\E0\91\92~\DEb6\F0h\EAsU;\\86\FBqfſ\9DVk\A2^\E0w\EC\C5\D7\D1ߥ\94\DBX\85\F3 8 | d\CC\C3]ؘ\EAH7J\AB\F3\91*?\E1&՜\918\96h\EB/A\D95aؔ\D6r<\8F\CFG$\85o\B0%Q\BFP\8E\C6\EE\B5\D2\EA\CE}F\89\DC\CD\D2Z\FB\9A,o\AF\94V?\B0o .c\91"\FB%ڸȬ\F75\E3V3\96\99\F5\9E\C8\EF\EF\B6\FF(VƄ\9A\EA\E1a*\EC\EA'6[\BBH\F6\87%\FC+uv\83\EF\93\A3%\8D 9 | \F6ry\82\BF\86/+\FB\84l\E7\E2\82\FAS\B2\82\8D\96\A1\B1\E2o\CAW\F8ܛ\E0\AD\E1j\BC\A6\D8\ADNȝ&\B5h\C0'Ǽ\83TZ\85\F1)\B6\E3\B1\EF2\AD\93\B7\F7[\82\B7I\E9 10 | bKgQ\E4A\EDB\BC\A8 R|\D0ZP\B0 V\A9RQAEPQi\A5}\F2\8A\A8\B5j\B1/ڂ\91\D0jIi\B4R\C1&1\89ɍg'w2\D9\D99s\BB7{\F7\A6\F6d\B3\F3\ED\D9s\E7̜{f\F6v5\CEË.KO\80+R\BD\9E 5 | \CE1\EF|ֹĒ\9Au\B41g\C9,0\9D\8A9g\F3\AF8\BA\83\EB\C0:\E0tY\86d`\98\FE\FEƁc\C0Q\E0\00\F0 6 | \C7\D5Z\AC⠅ 7 | \C9\B0X\BF̵\C3t\F9\AA9\C8\C8 \F0py\FA,EK\E5dd\D8\J\B5\82\F4\8Ep\90ݣ^\00\FA\DCl\9D҃\9\DC\C8\F9˕y\E0E\A0\9B\F3!\96+_k\DD\D6 6>\A4\D8Y"q\F4\F9Ļ\81d,\E9z\9By@ G\80\90\9C* 8 | 1!\B6\CFi\B3Rzl\00\B6\A66\CC(l͒\A3\E9s\B6,\C4\F6\B9\8DJ\C2:\E0Q\E0\F1N\FAXs\B3\D8Ԋd\ACYY<\9C\8Dt\D2\FB\F7\A8D\88\85\F4d \8Eq\D2\FC@\B5B, \F0z\FD \\A6!\AEr\88e\C9v$\FF\D1N\FF\AB"\C4\}[\86\ED>\B9C\C1 T?\C4\<\8B\CEA#HΕ \93\A4\C5T\EC\96y\D6\C1\E0\FA>\D2\FB\9Bꡩ(\9AB\D9X\FAw,\9E6[\D7 9 | \C3\C0^\DFE\87\D8- 10 | \9E\99\BBR}\F7\CD\D2\80I\C5=~\F0\00ŅX\D1\B2ex\F9 11 | \A2\C5n%\F7\A6\ACƋ#u\82\A3~ \D1 < |\83\84\B2fV{\F8K\C1}WV\FBfȷ\9A\B1\92+W_!\F5\E8\90=\C0 12 | \CE[\B3xbh\83\BABo5\80\8F\90^\B2\E7m¶ 13 | ݶU 1\9B\80g6\9D\00\BEW\F0]維j\88\D9؁|\FA>{\8C\FE\89\82\EB*\B7m\95C\CC \F6\D8`\EB_+\B8\EC\91\BA!/:Q\D4`/\CB?\D1ZjORƸ\B8\B8Z\C17 <\88\AC\C6\FA\F0\92\8C&9\D7\L\C6\F3\95\91(\EET\F0\98\E3\DFp\8D\82\F3x\80\E3\94۶\EC \F1ԁW\81\FD 14 | \AEA\E7\89\00G 15 | \A7\96>\8Bi\CB \D3y&<\F2$\940&Hڰ\D8&/}\A8\B3\B4\E7\B9zQ<\B6\BE\9F\F04}F\C19\E00+*\A6mB{\87\98ѧ\80_ \E0 Uj4J\A5\CEbE\F2\C4`NqM\96me&\8A!\9EV\E9!\D8QUz\A2\A8 16 | \B1\A2tM\870\E3\F2\AA 1oi\D5\C1\AA 17 | 1M\A1\AD\AD\BE\8B\ADt\88i6@\98\81\BCR!6\00<\86d\BAY[\89Aj>x4\BBΦm\FE\AA$\8Aw\F7\F8\BEPp\86\F6\99\i\91\A7 18 | !6\C8\D2r\86c 19 | {B\9A\A5\91m\B7u\88u#\9B\A6\B6 [\E8B\A1Q8\E0\C2\00\CF82\95bO\009\E7\EC\9Df\BD\C4-\ED\A4у|\B6\AD'\EB\FE>\DBzh\AC{\E5\E1\A0۶\ECrǹ\E2~\A4\D6l#˞ad\D0\CF\C3(\F0\9B۶\AA!VG\F9w\D1\D9\F3\88\E2\9AO\D3\E3\BE2\C5f1\DC |\9Ec\83\ADoE\DE 20 | \E1\83\F4\98\C5\B4\FFHN 21 | \FD\C0I\F7\9E\B7!6\8D\AC\98\C1\CE~\AD\D2\FD{\CE9\CEZ2\81ԙO"\D3\EF\A4\F4\AA\B1\C1\E0t/ܽ\96\C7[\F4\BAX\BB\E8\DB\D1\F5\CC\D34r2'\D0Y{\87\80\FF\D09h\A7\87\A8\EE,\96\87!\E4\83\D4L@ǀ\D7 HHH\F9ЇHA\84\95`D\D8ףE\F4R\D0KQ>\84%\F4\9DIeF/\91Qb\91\85a֕\D2nv\BD~]\8F=\AC\BB\8Fs֙\8F\B5\F7\D9\F7\9E{\8E\FDa\D8{\CF^\B3\F6\9A\FF\99\99=\B3f\ED3A\C6i4Ե\CE\CB\CF\CE\FD\98\BCF^.\F3ȥ\9E\ED\CB\D7Ǫu\B9\F62E\9CE+\A1#\9E\EB\90L\FE07\81\BF2yu\92O_\D7\E0\96 \A4\85`!\CCw\ED#,\A4_6\86\80\BF\80A\E0g`\B0\F81\A2ϊP+m\C3%\90"l2\E2'`\B0!\D1E\92\80\00\A2\E5\DC_~?p\AA\87Ӈ\C0\F5\B4\B7\E8*S_\96\A7\ED\C0\F2\FF +\9E>VIX\99\FE\DDKX 5 | | 6 | < T\A5\B4\9F[\98\9Bv\8B t3u\8CvI\97\B8~&\ECp \B8OW\V\FDNX\9E\9Eje*Sh 7 | \B0\95o\95@~-\92Ws\D2Աt60\98 ,旰=ǃc\FA\D6 \93\E3Ұ\B4\B0\9D<\A0"d\C0\E0 d\D6_\B6\A5=Gx\A9f2\A2Wˑu`%\B0\8Br\A4\ADut\C6d%\CCR\99:\B08@1\C2N"\AB\83RFMV\C24b\DDh6\B0\85b\A4\FD\89\8C\8D\85\8D蔰PK(3Nd\CF]ԀuH뱒\B6٣/z]u \F3M\CB"\A4+\A63VQ\8C\B4\95\C6\E77/\CA\A6\A7\A1\FCЬ:%\9F\9A\AE\A4\CA\DFc\A8S\9E~E\96PA[\CA\FE\EA>\83s\E7_\AC˸^\D9\CC9\FA\E4R\DE^m\8Fv\9D\E7\C7\81'#e]\CCEV>w7@#\F7\B8\E67-\C4[\817=\86\BA\00\AE5\E9\E5z\\8F\8E\A5a\E0 \E2q\A5\95\94й\B6-C|eK 8 | v #\9E^\AD\A7\A9?Wj풩\EB\A5=E_\FD\80πǀ9\EA\F9\A8k\9F]\F3\80\8C\CF[\E5\A9S\B3'\B8Eǰ\90Ҫ \D3\E92K\9F\A9+\B1)1\EA\DF^5a\A9y\BC \CB\D3>`\89\C1\9E< 9 | \BBE\F7e\BE\A2\EC\A0?Y0\F8\B8\D1(\F1TX\A0{R\EBI\A3l\AE6ʿ\82\97\C2 10 | \BE\CC~ \C4\FD\F3:2\A6\A50|`\90[\8C\B8\80Z\D0/\84\81tϧ\8C\B2od\EA\C0\95:3\9F[ݎo$R\B7ppI\C0&7m\C3f\E7]\D67\9B\9DH !\93R7B&\ABe<\A15\E0^\83\DC \B0\D7 w\91\CE\E8v\97\BC8_\A5c\E9,`b\F4M\C0\B7F\9D\EE\C4:\84\86Q_۪\A7ۄ\85\BAL\882 \FC\BC \|a\D09\DB\E0\AF\E30|8OgTE\D8D? gdY\D9"\F5\B1ԡ\EE\E8m\00Yc\98v"\96\99k}\A9\E7Y\EC(\FA\چ\AC\F1vQ[u\8D\A7\8B:\A4\CBbgNX\B3\\9EQ\B4\92\A1H\E92H\85|\BB?\8E%l\9C\80\BC\D6Uǎf\B9\B2\DDH\B7\8ANް>\B7rHoj\EC\8A\C9\EB{EkQ\E2\EBVL\AA\FA1Xߜm\AE\DAֳ\9D \FA\A1\E6ީ\AE\96#3\F9z\A4\CC&\E0\F7\84 a\C7uF'\84U\D5%\8B\94\9F\BCc\90\FF\8A4a\E7\9E\D76\B9\ED\85ٽ\8BG\B1\D9lY\F6\9Ck\90\D2\BDD\D8\FD\C0\B9l\9F\D3\CC6ȴ\B5\D2\E5\EE\AA\FBՈ…\B69 11 | \A9\D8"\C4\FBi\C1Vl˞y\99\BD\A8\BA\E6\C6EU-s]Ez\\BCDھ\B2\EF\98\C2ZW\B7[X\D5\F8\D9Jٷ۠\BFS\EB\EA\A51,\85\F0\B6\BD\80[ 2G\81\EFtf?\F6<\B2\94B 12 | \B8\DD \B7\83\F6\F1\B5\A7\\D41|\D6S2D \84~%l?p3\F14ncX/\A5\93\C8.\92\E5\E5p\C6\B6\D9ϴqFv x\95bDBـ\BAɄ\F2\C1\C3F\E05$\AE\C2\F5x\F8\E4\BBW8\C0\D8 16 | I\9C\AC\A4\B9\DE\D8\FC\EB\90Ad\E2\F9)\B2c\F4\9B\A7\9C/v\B6\B9o\82\FEW\81%x\E2:չ\9B\8AC\D5\F7bף\9E\FC\86\93\EF\E6\EE iX\A6\F2ܣ\96\8F݋\E9j#\CC-\8C'ϧX#\E4\C5\EC32\A63dS(\AF]ڮ\C65\D4\F0\F0\91{\E6\00\00\00\00IEND\AEB`\82 17 | -------------------------------------------------------------------------------- /src/assets/favicons/dc/favicon-128.png: -------------------------------------------------------------------------------- 1 | \89PNG 2 |  3 | \00\00\00 4 | IHDR\00\00\00\80\00\00\00\80\00\00\00\C3>a\CB\00\00\00 pHYs\00\00\C4\00\00\C4\95+\00\00 \8FIDATx\9C\ED\9Dm\8CU\C7\8C777K\D34k\D3\D2TC\9A\A6\A9\8DB0V\88Z_jb\D0\B0\A3\89\A2\F2"\85b !#~0~@PԀ\D1\F2V,\88@yiS\A0\92\A1`\DDh)\F4v\81\ED\B2]\EE\FA\E1\B9\D7\EEޙ93\CF93sw\9F_rr\EF\CE\CC9g\F6\9E\FF\9Cs\E6\9C\F3< \C30\8CE\CA1 \C7\AC\ED~\EFtC\8F\87\EF\F18.\DF\E9;O \A0\91z\E7\A2nHb&!L\93\DD\CF)\E0\F5\EE\DF@\BBvC\98\EE\C6\EB\B0@h$_\9C\\E6\8D S\88Ɓ瀧\81\DD\C0c\C0\90(\00f-8\85#\C0\83\C0\A5\C0; \FCֵ\C4P,\EE\CEZ\B9\F5aЇ\80ˀ9\FBZ`\F0\D7\00+s\95@Ř\00\FC\87\C3\C0\D5\C0h\8Er\A8 @\B8\F02\F0 5 | `Ĺ4*\C0>< 6 | l!}\FC"8\95f\BE\C8Y\DC\FC8\BE\AA\9B0TK|x8\8F 7 | \CA\C3PF\81\80\9B\80\E5efl\A8\9FN)+C@\FDX<\00\9CK \E5c\A8'-\A4I\B8\82\E4 ;/\84H\BC 8 | \ECan\8A6>U\DB\E8\FBL;>(\A4\9D\8B\98?E<\CCD\C0U\C0ہK\98?E\EE\85\D8 9 | |p\C0qR$\8D\F8z\81\B8@\FAC\B3Z\DD0,\96"\E3\F9\C7!k$N\A6܎\DA׺\F7\F7u\89`\9A\81\A0\FBʺɊh\81\00\FF\A0\BC\81\A3k \DC\C41\B8\D16!\839G/\82+(\A9i3\E4#V!\B5\C2a\C2 \E0Md\C0(8&\80\E2\ACD\AA\EB\D7 #\82#\C0i\A1\FF \80\9Eu\C0\84\C1\BF\90'&\00?4\80s\80\97\F0/\82\BB\91>HL\00~Y 10 | ܋|;\D4 11 | \9B\00\FC\D3B:\89>\F0\81\96\EF\9B\00\C2 \AB\87}\89\E0Q4&\80pD\C0\99\F8}K\B8\D8\F7M\9A\00\C2\F3I\FC 12 | \BDL\C1UE\C3>a2\CC\FC\D8\EA)\ADQ\E0J<\96\A7\D5\00\E5q~j\81\A3\CC\F4:c5@\F5\FC\F8\95\87t\C0w\F2FJ2\9C\E2\AFa\F0t\B0+-¬\92\ED\C4\C2L\EC\B3g^\A5u\EF2\E0 13 | <\C1}L\EFB\AC\97\9D(mz1\EB\80]\81\F3T\D8=_=\9F\00\E3\C0>d\C5\EEN\E0Y\C4?@\DA\C0\F9\C8R0M\99\B4\80 \81\8B\B47Te\E0DE\DE!\C3??\EDS\9AƵ\EE\F3%\A4FQaHo ˷\D7+\FF\CFA,C&z\B4\F7\F8\D7 \AD\98\9F&2\C1\B3 \DA]\E21\ED6\F0]\E9lEY\B6V\B8\87'\81 14 | \CA\FF9N\AB\9B\A6\E6\9E\DENp\C9\CCj\00=\80\C0fO\E9M!5\8B\86\F8\94녆\9EQ\C4\D0\F3\A3\9EһدL\E3 \CA\D7\E0\8Fp \B2bX\CB\F03e\A7\E2\E0\9E\C6\E0\97%\88V{H\EBFtv\00M\D6\9A\00\FCs 17 | \CF+\E3k\F6)l\93\F2`}\80d"\C4[\EA\AD\E8bS\C4m\A2\C08V8!=\FC\90\EDXv\A0_\D09 <\AC\88\BF\9D\00\F7\91"\80\85XlNO9\B7 18 | \EC}\F6\DB\AE\C0\DF\C3q\F0\9A"\FEjt\E5\B4/\ED\E4B\C0\A6n\A8 7\A0{ \D0\DA&\FE=\ED\A45aCl 5\BCGo\DAI@X\AEA\BF\A2\F7\8A\F8m2\9A\00@8\9EB\BF\C4z]\BE&0FF\FF\C3\86\E2\B7_kt&\BA2z\98\8C\FE\87 \D7\F7+\D3h \DEE4\ECȺ\C0\E0\9F\9D\C8\DE=\DA\F1\FF\8D\E8\FC 19 | L\E30e\F0ˋ\C0\A7ѽ\F7\F7\B8P7p \EB"\80?Ɓ\8F\A13#\EF\B1i\FF5܁C-d\F0\C3^\C4/o\EA;w\BE\85~\90\EE6\97\8BL\00zn\DE<\E3)\BD 20 | \C0\B9\CA4\9E\C2\F1~\E2PpY\ECG\DA\E9\DFyL\B3\81 igo\C2\D1ǰ\D5\00\F9\99Dv\FB< \BF\85\D2\EEoQ\A61\FC\C6\F5b\ABܘF\E6\F4\8F8\A1\D4x\EDJb9\F0c\E9l#GG\B4\8E\E80\F7\D5q\F8\EC\DF޺5l\D2\E74s[\C7\F6>'\BBy⭻\87\8E\A1\F3ӓE\F8)zob\00?"\C7D\B0\F1\AB\D7_\B8I\85>\ECD\C0Wq\DC\E5+\83\9D轋\B6}|\99lFv#\F5\B1\87\A1v\EC\E0\FF\98\00\CA\E1\DDHs\E3\A3\F0\A5@\A7\DE\DE\AAc-2Z\A7\DE\E8i 21 | /\A7@\93h\A8\86u\C0\9D\C0*O\E9\FD\D8\EE)-\C0\9A\80\90\9C 22 | \FC{\BFJƶ0iX 23 | 24 | -------------------------------------------------------------------------------- /src/assets/favicons/dc/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/dc/favicon-16x16.png -------------------------------------------------------------------------------- /src/assets/favicons/dc/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/dc/favicon-32x32.png -------------------------------------------------------------------------------- /src/assets/favicons/dc/favicon-96x96.png: -------------------------------------------------------------------------------- 1 | \89PNG 2 |  3 | \00\00\00 4 | IHDR\00\00\00`\00\00\00`\00\00\00\E2\98w8\00\00\00 pHYs\00\00\C4\00\00\C4\95+\00\00\E1IDATx\9C\ED\9Dm\88TU\C7 5 | \83 6 | \8B,&b!\B1\88\84\81\F4ABB\E9Ր\92>TT\98\BD\99\A5\BDTDA\94\F8\A1"Ƞ"Bz\A3%\A1\A2‚J 3\A32a[2\A5UQ\8A\DC\CC\DDl\D9t\9Dn}x\E6\B6wg\EF\BDs\9Fs\EE\CC\F7\9C?<ܙs\CF˝\F3\9F\F3\F6\DC\E7<<<\\C6)u\DF'O\D7>\91k`v2%@8\B5v-\D5$\FC\87j\9D\9C\00\86\80\E3\B5\EBp 8R\93õ{պr\DB\F5L\8Cǃ4 0\00\F4\BB\81\9F\80-\C071m\87i\C0\BF\C8Q\E0 7 | \E0\92[۸\C0\A2\B2\B8\98\98C\FDY\C3EB\F9x贮E \B8L@(\00\F7,\EB\D2\9E\80\E9\AE\A0\C5c\84'`\AC\BCW\AB\97\96\C0/\FD\C0"Z\D0<\E9\F2*\D0a\\BB\E0 h,ۀ3M+\B8y4\A9\B6\\E27\E7[\81Yydf\AB\8Axx\8C"Ku\9F\CBu\E1&RN \8FJ\99:V\90E\D5i\C0T`p\F9/\B4\FA\80\CB\F5Fn\D0vA\CF\E5Yx\D1,D\D4\91_wt\008+\CF-*QLDT;ɇ\84=\C0y=\9C \84(#S\CB^\ECI\D8JN\B3#\97QAt@\B6]\D3r\98ԸH@\88\99\C0\B7ؑ\B0\D8\F6!\&\00d\F5\E6E\B9Fh\AB\97m\80a\E0A\E0\E45\A6\93\80\B1\A8W\D7[@\8B\91w\DA&-\E1J\D3B=\A3\B13z\91\C1\BD!|\94\8E\B7\81U\E9fKM 8 | \F4-`,\CA\C0\C7\E8[\C1~2\B4\82r\A39\E3:\E0)\8B\F4ADB۠aFl\83\80C\C0/\88\8E\A6\BBf\83*p\F0\BA\EFt\E4\F7\AE\D3\D6\EC\B0\\99\BF\AD\FC\8D\FC{/þ\BB]dP\FE6m!E# *ہ\8B\94\CFE \F8 \DCٍ2us\80\CDȟ&\D3 \A5\F0\A8A\BA[\D2n\BAD\00\C8\EF}\00\E9\96L\EC\BE6*\D3\C\CAX\EB! $\98h0\B5\DD\EEt\E4\85P,\%\00d\89\D6\D8>\84\8B\94\F5\F2\EC*.\F2]\EE\82J\88\EB\F9\F5\C8b\CD\C6 11 | \FD\00p= \A6'i(\EAJ\B8f!\AA\89\9B\B17\B0\AD"^\B1v\99$v\89\80ND\8F\BF \DD\CE\C9FX|b\9Ax<(%\\D3\EE\A5]C\99\C0\C8&d3\E9Z\E6!w\E6}\8C\C9\C3\C0k6؞!\9E\D9 c\CFxI \8B\BB\A6\DDkD@\AB:\F0{\96\9C1\F2\C7X5\96\93\C8(\B9\EF\D2\90\80\80\CF\F2\CA\D0\E5i\A8=\C8X\92[\E5\83' \E0y\E0B\AC\DB\F2\84F\CBNĽe\CB\FE\A8\9E\00\91~\C4\C3n\CBuv\9D\80~\E0q\CC5\A1\D6p\95\80\88\C5C\CBϓwyz\B1\96X |\C78\9D 12 | \EB2\8Bو\BCj\FC 13 | \B3\A3\AArE=U\C4p)|\B0 r 14 | ò\E4UM\B8\97\F4=\CE\%\94\88\A9\CA \F2fj\00\B1\CF܋\A8N\;\FF\D8ã\8D\F1\EDQ\BA\B6,\F2D\8C\00\00\00\00IEND\AEB`\82 15 | -------------------------------------------------------------------------------- /src/assets/favicons/dc/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/dc/favicon.ico -------------------------------------------------------------------------------- /src/assets/favicons/dc/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/dc/mstile-310x150.png -------------------------------------------------------------------------------- /src/assets/favicons/dc/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/dc/mstile-310x310.png -------------------------------------------------------------------------------- /src/assets/favicons/lc/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/lc/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /src/assets/favicons/lc/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/lc/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /src/assets/favicons/lc/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- 1 | \89PNG 2 |  3 | \00\00\00 4 | IHDR\00\00\00\98\00\00\00\98\00\00\00\C2 !\00\00\00 pHYs\00\00\C4\00\00\C4\95+\00\00 \00IDATx\9C\ED}\AC'Wu\DF猿}~\FB\B4Z!k9\B5,\BAJ#\A3B\84\B6\80\80\84\C0.JӀ\9AF"\99\C4v\E6\B1 6\F3f\D6 \87\AE\DA \D2\F2\83\83\89 Y\D4A ?J\83\AE\B5l\91e\ADV\D6 5 | V\DBe\FDx~\CC\E93\F3\DD\F3=sιw\BE\EF \F5H\EF}g\EE=\F7\DCϽs\EE9\E7޹3\A4\A9\C8\E0ً\B2?-\B4Wmܩܟ\\B4\84\F06b(\CB\F2"\BA\DA\CAc\E6\AER\A2Q:\81\99O7Ms~"\A6\9Fz\C5+^Q9r\E4Z\00\ABC\DA\D0vIC?(t\9EG\CC\\C0\B9\F8}\DF\CE{\B9\85U\B7\C40\9B;q뭷\86\D7;\A0@;\F32\82\F3\90\88\E8\B7\00\BCS!c\A5\D1M\00>\91[\D7O\00y}c\A69r\E4\00\FE \84\82 6 | m\B7\FA\A3W\9A\85|ɧ\CA:\CD*#\94,E\ED\F6\F6\F6/\F8r\D0vX\ED\94d)\98.\D0y#ҍ\D2 7 | \B2:\A1\D1?i\E4\F5\C7B\FA\FA\FAzѶ\ED\8D\00\FE\BDrik\AEA\E6i>M\9Eg\88\CAȲz\E0\F7e 8 | \00σ\AF`\A9\81\D5 \85ȴ~-!\EE\B96Ǒ\96#\AD\A7\ADD\9D\91\FF\97<9|)ʭ\D3\EB\C3y:3\FF}\98\99W\87>h8W.\CC\E5\D1\E5;\E4\90|V=\B8-\\00~\E3\FE\8C\DA\DC\EA>\98\89\C4\CD3\D2u%\9A\CFl\80ul\8DV\00\DF%\A2oY\BA~I\85\CA\F7\94A\9Fk\D7/\D3s\95R\D6\EBY\FByzUU\BF\E0\C3̼\8A\A5\94\C0\CA\F3\FA\D9JK\C4{Vك\88=\9A<7g\B0\95H_R\B2HV&.+\84(J\9FӠ`V f\B9H\CBe\C8\CAf\8F\FD.\80\D7\D8\B0ݻ\C9m\00\AF\F0\97H\9B`\8D\CFsU\969\D72j\83\C3\95oa,ʲ|6}\C0\A1\k$\CF-\DE\C8Y\B2r\96)r\AD\A4\D1N\EF܊\89M \F8\A39\B9\84\91\E3\DB\FB\86\00V\FA? l\8A"3-e\A4d\B9\96(\E0\95\FC\D0-E0\F33\DC\E0*YȳSn)+\92\A1)5\8B\8Fp\D1\E0\A2o\C5\E3s\CAYh\F5\94Ͻ\C0ڤ[~ޙYn:\8D\C8Q\F8\D0m\ED\81,=\B9y:\80\BB\99\F9\AAh\B9\88\FB#r\89Z\9E%\D7[\C2H-\83X\B8t\8Dc/m~n)\E0/X\C7#W\EA-\F0y\8B\88\82\86\F8+W\C9#׮y=Y_\8E\AC\F9\A8.\CB\F2\E9\CC|7]\95\B3\B8i\E5\E7.\AA\E6\BAG\8Fg 10 | .f\B6f\E0\A9D\92y\ABȻp\9F\F5\EB\9AoZ\8C\ACA\C1r]\D5T7>P28͐\D5\F6+\F4\BF\E0\93D\F43\C0\B4\B6[\B9ΩK9r#\99}l \A4'MV\F3*\B1p\8E\A508|Y\E4\C4-:\B3\EA\F5\82\EB\C2\E0\B7\CAC\95\D1\ED\88\DA\ED\B7m\FB"\BA\C0\D5C\BBt\80\D5\E5ii\86qf\FB4K9\B7\A2&\8341\FDT\C8?Ff\C6r\EA&ι\C0Q\E0\8AT\F04\9F[\A6\99\BAIA\865\ED\A5\D7\D9\00\EF\FD\FB\81\A3\92\AE|+|b\84\ED\94\C58\C9\CF-\D7t\A9\00OK:\93\E1\B0F\C1\8A5\B3\AB:\E8.ŒQi\96\F08#s\83f\90\E9\994\EB8]\CFs\A6:\A4\97$}\D7\CC\CEv\B4+>ιm\92\8E[:\AC\E7}\C0&`\93\99m2\B3M!9p\B9\A4\BD 7 | m\C2c\E2\BDod\99\91)ݓ1\E64if\8B\C01\E0\C0K\E4\F7pV\A3\DE\FBm\C01I\D7d\F86\DF 11 | \91\B6!\EFR]N\8E\A230\834*i\A5Dۅ86\EF\F3 \AFA{|(\BA\F6d* \C0)` \E8rr\88\F7\E4L\BB\8Cu\ED\95e\AD젇\FAOHz\D3̖\E8ߓ-\E28\ACx4\C0\BA\BE-\E8\D5d\B4oF\C0+\A1\ECzV#1\B2\B3}yji\9A\B2H\93\EBu\E3z\D1\AD\CB9\E8\926\DAy\A5\9A\C6\EB:X\A3!xM\E0\B1lf\AA\AA\CAF\F6\BBܺ\F4\8A\A3 I\E6\DC\C0>\B1\C9o)\94\C7\E9"/I1\B37\807\CC\EC\DF\C0\B7\9A\F6\BDָ\EBEI\9Fau\A9\D6fX\9A[\9Ds3\B3\B3\92\F6D\DAM\DB\F5j\D6\CC^~\DC*\E9u3;V\E21s\F5\89\DE\F1\8C\B5oIc3\DB\B9g]\8E\F1\YX\E6\BF\FEl\BC?\98\E97\A7ə\F2\AA\AA\CEH\BA7\F0x\AA\AA\AA_\FA\9D\A4\DEΌ\90\E1\92\9F\B1\A4[\98~\F6.-\C39\A1zb?\F2\DE\DFZ\E0S\E2\DF`\E6bGs\EF\B3\C6`F\DDq|'N2\EDҧ-O\DA\CE\F04\B3IO:\E7n*\F0(\F1\99م„\CC\D0\E5b< 12 | f4\99|y\EA\8B 13 | ͔\87 \F2}\C9ҏ\F9n\00~\E9\9C۝\E1Q\E2?Θ\D9SL?\E6R\A27`\BE-\A4\E1|\80[\80# $}\D4̞OB#)Y\EE\B3\F8\FD\C07\E7Wq\B8\B9\AA\AA:h\00\F0\DE\DF|X\FC\8F\D4u\FD\93\ED\D89\F70\F09Bp*\FAEIǃO\F0\E0\BAD\C3-2\9F֐\F4u3{\F8F<1\D1dl\8E:\E7\FE\9C\85Qx\8F\BF7\\DBƒ\B6\8BQ\D4\E1 14 | \E0\C7\D9AO_\C9\D4mn\EE\93L\E3\AC?>of\83P\8B\C0\95\F1\E0J\E7j4q\87$\DD Tf\E6\D3 15 | tw:\B9\B9 |\82bqT\D7\F5q\E0igI\FA\89\BA\AE\F7\9A\D9/\9A\F2p\89 16 | Hvpi\DA\CC3\B3H\FAN\97AJ\F3\A5\F2x,\F6nc\81\F6Iz\84\C4J5\86\F8\B2\F7\FEQI\B7EB\88Ѓp\C8\CC\FE <\B2N%\BE\D9g L§\B3\AF:\E7;\99.ճf\B6\96\C5"p7\B4\FBg,\E7\F6a\D60\B3\81\9A\FE\98b \F8o\B8\C5,1 17 | \A5\8C\C3E\BC\EF<-\F5\D1\F6Ū\92f"3n]]\D7'\81\93M\DE{\BF\BB\B0\CFV\CC\EC\8E`\98b\ED\C6{\E6 \A6?r8>\91g\E1\BD\DFd\B8+0\CBY\EEB]z\91oӹF\C4q\93\D2\EFu.VUuj\FF\FE\FD\9F5\B3]\C0=\9A~k\9C\9F\F2\D1\CB.\BB\EC\B9\F1J\DF\00TU\85\F7\FE\E05I\EF\88\91 18 | ,\EB\B0\C1\CC\F6\98ٵ 19 | \81\A4 )\EFx\90)ڃ\\D2 \E0K\C0B0\E1\93p\AD9L<\D3\CF\F0\C9\F2L\DE\ED@\81\EF\F7\F0\98\81\F7\FE:I7\99\D9S->\9F\E3 20 | \D0LY\ED\8Ag$\A7\81\DC%\B79Kg\B7+\9F\D3:\99z\80\89snx\CD\CCꪪ\BEW\A2 \EF*[k\BB\BE|__qz#p\8D\A4\AB\BBh;#\E8\\AC\85w'\AD\99m ɍ]t}1\9E\B9\F5\FD6a-|\BBh\C3q\92\FB\A1f\AFF ѐ\E7R\D1\F6={\82\E7s\A3snK\A9\AFb\E7\FF\8C#朻x\9F\99=&\E9lL\AC|\B3\CD^\B6H\FA\82\99\FD\94\A9\E3rpup\F0_]\D7o\EB.Z9\CC\ECN\E0\E3L\AFe\A9/\E10\F0x\C2I\CF\F69d\D2)M\D71\D2u\E4\94\D0\\A7\00\9Ea\EA\FE\8D\98\860۫V(\BB1\A41\B3\97%\9Dbl\E2F\98Y\FF\E7\F4\E9\B4}\AE\BCD\9B\85\99= \E90\D3\DBOqb\BC\F7\AF\FEf|\AD\AE망s#3\BB]\D2Uai\9F\CE\ED\C9>Mvi1\87>g .O\FB\EFt6\BC\F7\DB%m \86g\AA\AA\BA\90\A3\FD#Ԓ\F7^\9C7\00\00\00\00IEND\AEB`\82 21 | -------------------------------------------------------------------------------- /src/assets/favicons/lc/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/lc/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /src/assets/favicons/lc/apple-touch-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/lc/apple-touch-icon-72x72.png -------------------------------------------------------------------------------- /src/assets/favicons/lc/favicon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/lc/favicon-128.png -------------------------------------------------------------------------------- /src/assets/favicons/lc/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/lc/favicon-16x16.png -------------------------------------------------------------------------------- /src/assets/favicons/lc/favicon-196x196.png: -------------------------------------------------------------------------------- 1 | \89PNG 2 |  3 | \00\00\00 4 | IHDR\00\00\00\C4\00\00\00\C4\00\00\00\C0\A6\8Ek\00\00\00 pHYs\00\00\C4\00\00\C4\95+\00\00 \00IDATx\9C\E5}\B0eYU޷O\BFi\DE4\9Dv\9C\9A\9ALM&\94 5 | \91`4@\D0 %$\A1,\A3\A2\89\80\C6\B5\C0Ap\98\BE\E7\F5\84\E2Q3\D3\EFކ\CDH\8A@P0"A (R)P *H\8E\BF\C8\88d\9C\9A\9A S\93Nϛ\C7\ED\B3\F2\C79\E7\F6\BA\EB|k\ED}\EE\BB\EFuWeUݺ\E7\EC\BD\F6\DAk\ED\BDׯ}\F6=\00\AA\EES\95\F9f\F5އ\E1\95BE\AE\F5w\D4׺\80\D1]U]VJw\9D\E3\C8\C6S\D3ۯ\AC\FE%/Cꐚ\A0A\A3\CAG\D75\A6\BC\D0\DCt\D3MUUUH)AD\DA\CE\C9uJ \00\C2\EB\F3\E7\CF㵯}m\8E\87*(\B7\F22\DE-\9DƔ\B3\F6޵\93\\9A\B6\A5\C9\CA<\DE\9F\B9\BE#\9EJe\88\E6` \C3ɓ'\F3\CB\E6\C\BF^\00`6\9BY\BA\FB\96a\C3A\B3\84-D\B1\80\AA\AA\AA\99Rzpa\F1{B\F78\00\98\8D\8D\8D\F7\00\F8G0\8F\8BՕ\80\B7@#\CB\E4)\88n\EB\D5\E5\FA_\DCoooW\BB\BB\BB\8F\F0\93\00\8EƑ\8D\A7-\91\8D\94\D2F4?\9A\B0dЎ\D2t4\8E\96\F0\D7\E14)\A5\9Fp\8F\87h^\FBz P\A2 6 | \83\C8\C2\3B\BAj\E5RJ\DF\E0\9F\A9\FB\92T \B6\AC\BB\FF\86 7 | \C1N\EE\BEog\F9\D7n\D9.t\E6m\AA [\AEy\C3sdutz\E8\A1RJ\EF\F0 8 | =b\CE\DBE\A7\BF\B0\C5\E1G\C0hh\FAl 9 | \88\C8\F0:\F8\EBq\8C\F7_\94\E7\E27/Nc\F7\BA\9Cy\98н\92h\C9\EE \F8\B1<4.z۾\C1p\80u?z\F1\DB\F2\9C\87\D1\95\C3S\DF\93\A1PM&\93Ǧ\94\DE\A5 \EC"̅'9c\A0\8F\F6C?\A5\F4tuE4p\EA\E8|\B1\C9\D5\DFބ\B1\A6\AF\A3\B5zP\F4ud\A5Dd\8F\F0\E6\F1\E5 10 | \BA 11 | \95\F9\E8r\C3{\F7\96\B6K\98koL\00\98L&ק\94\DE\E01\A6>\BB\F80/>\86\8E7\B7=\ED(+(\BFC\83\C0\D6\003@l\8E\8Dl\A1t\B1\B1\C1\BCCpAsV\C6Կ*\E0E\97\F7\DFֲ\EArMÆI9\8FWR\E6\B9no\FCX\B9\E5oQ_\D7\F5\F5]\984P`\DC8\B32ʔ(\86N\E9\DCc \AFFA\8F\DFx\E3\8D%\B9\95\9D\DB\FE\9AF 12 | \E0\C0\AC\97\ED\80Mp\B80X\CC\EA|\EF\B8\DF \DA<\A5\B4 \E0\D3\00\FEs\A6Ϩ\9C\C9`˙\A5\F7du 13 | \C0\88\EBU`\C1S]\D7\D7x\80\C7E\BBs@~7\CF\E2X\A5\88\E8X\C8\D5E}\E4\F8p\F4ȑ#G\ECby]\EB\EF\C0R݆*\F7\9Bv^,\BDD\87\EC\C0\A9\BF\C0\F7aY\A09\80s\D3\E9tw\9F 14 | e\89•\E8z\9D\E0\8E\A3\EB\EBD\E4\DD)\A5\C7Y\E3\C2\A4\B7\D84\B0$K\C7\E2kp\92`چ\F5Q(C\95Rһ\A4\CC#[p7}\FA\F2 15 | \817Q\D6\CE\D0s4\9DM\D2\00\EE\9D\CDfs\C2S\D4w\89\C7b8\91G,\EDs\ACb\E4\FA\8C\AC[\A0\99L&\DF "\EF\F0`y\E1\E91.y\F6\93\B3\F8\8F\BE\84\C7ʼ\BE\FB\EBF\C8\C0\C2\CDh;\9B\CD>\CDr\AE5\EF\F6>j\E3%\C6\DE=\87\FD\84WT\86\BA\AE\AF\91\F7\00x"\E0\87(va\E5,;[\B8v\B7/zfd\FB\B0\B4\D9\C2\F7\A0@\ED!J\8D\E0\CF\C1"d\B2\8D\BCL\9C\D5E \AC\94Yj\A5RJ?\CC\EA\BA\FB\D7\F8pe\D5}2^\9F,\81\B6tr;\D1\CE뛍O$ \D0\E6 W\8AȻRJO\ECK\B2\F5\95{J\C1\DAG\E5\A5}j+C\A7\,R\F1\C67\E7\DD+\C4\D2\96\FBfʴ\D1\D6]AH\B5gx,\89\C7Kbuϊx 6\B2\FEt\C0\9D6E!h]\D7\D7\00xOJ\E9)\BA\9C\C5\EB%`\E7\C0w\EF\9B\C3ܖlɜn\E96\AA\8D\BF\C8 \D96\FA\BA\F1b0\B60X\98d\95\A9\82\AF\A1V\A0p\F7\81\81\9A\98\87 _9+P\81V\84\81\\CE\E2Z%\F8c\B5\B8\AF\EB\FA 17 | \00\EF\F0T ~\A0Y`P\B2\B8\DE3\88\\FB\\FF\DE\C2_QfH\BCP\DF\C3׸\95G\A8\BFg\8Bċǘ\CE-,׽F\B8\A9}N\C1\C0K\80m \FD\BC\C1j\90\97\CD\F3\AC\8C/[\EEyӅ2L&\93+E\E4\9D\E8\94\88C\94u\C0AЌ\FA۟\884"R\92;\E8\EB(׭\D0%Ց\E5*U\CCj\AF \F6\98\F5gq:\CB 18 | X\88g\EB\BD0)\A7\\B9\8BA\9F3\BC3\A5\F4 \A9$\F6\DF4\FD5\F4\E1\85\F9\BA\8Cy\8E\C1|{\8B\95M\BC\B5f^\BC\CD_,Ǘ\FD\B5\8D9\BDr]\8F O's1x\E4\C1l\EEŚ\CC;x1j\94Gy\AEZ\F7\B5P\F4\C9drBD\DE\E0\80?6\EC9@\AD\CB-D\F1~InQ^\8E\B1_\BAB\CFM\8E\B2\A3\87%í\9FT[b%\CC\C3w-!{ö\D64\90\87A:d\B2\DA>\86w\BD\98smrJ\E7\F5\9B\CB-h?\93\C9䊔\D2;\00|\C0n\E9\F2\BE\CE\E2x\EDtm\A5\DA:\F6P/\97(\B3m\D7\FD\CA\D0)\C3\A0t\83\C2\CB\EF\00,?\A9\D6M\83jx\9D\B8!ǘ\AD9\A6 \AAMI\A1y)Qϭ\B2>\BCP\C8˯\AE\87\83S\A7No\9A\E6\D1)\C0\8FOD \D93*\A5x칁\E5\830ۏ\D7v\BF2\88H\D34M*y\F3\86T\ECI\B5m-\FEP\DB\EC=\B3\CCr\E8]\C7 19 | \E9\F3L9~-Ol\D1z \D5*\94g4l0\B8^86\80\BA\AEO4M\F3K\00~\C0Zޒ!v\CF\CA\D9\C2\F6\F0J\E8\B1r\D6v]2\A4\94\9AG>\F2\91^Η\9Bo K9\84\9703l\D2K\B2\FC 20 | X\B6\F4L1,\E1\F39\E5\B5e%\A1L\CEڔ\B4\8Dp\96`kk\EB\807\F8\E0¸\D8\F1a\9E3\F0\A6\D9PԂ 21 | [,\96\A71uk\94\81\E5\B2c懂\F5%\8D\E9֠\833H\AA\99eb\8Aa\95@DΥ\94\EE\91{|\85\F4\E9Yu˳\87\C9\E9A\B4sY\AD\D4u}\D\DE,"\CF\86O\8E\BD\EB\92x\\C7\E2Q\99\86\88.'\CE?H\9A\ED\ED\ED(_\B0\86\BE$\84]\CA!4B\E9b\C9\E2\F3v\81L\D2+\BC\C0Y\00\E7\BE\FAկ\EAdʋ-\E4œ!\AA\D7\A1$\A9\A6cs\F2\E4ɣ"\F2椎\AB\D8\C2\\82\EB-v\D5\EE\86\C7\EE58\E1lՕ\F5QC%\DD\CB 22 | 23 | -------------------------------------------------------------------------------- /src/assets/favicons/lc/favicon-32x32.png: -------------------------------------------------------------------------------- 1 | \89PNG 2 |  3 | \00\00\00 4 | IHDR\00\00\00 \00\00\00 \00\00\00szz\F4\00\00\00 pHYs\00\00\C4\00\00\C4\95+\00\00\98IDATX\85\B5\97Oh]E\C6\DF\E5\F1"!\84R\AA\B8\B1\DD\C1\9D 5 | u!F\F0OU\94\A0.T\BA\B0\A2\88\81\95\E2B\C1;\90}\8D\A0 \82\8A\FF"j%\8B\EE,""R$\DAh%V \A5<\E4\DE\E7"s\E5\F6\E6\BD\FB\92g<\BB\99\F3\EF\BBg\CE|s\AEhH\E1 I\D7\DBx;\A5\F4Y\D3f\98\C4;\C0 \B6\AF\94D\F6(\EAkI\95e\F9a\A5\EC4I\BA\B8K\D2\F0\CBN\92\87:\C0\C0\82\A4*N3.\00\B67\80\D1\00*\B1\BD\FC \FCЖ<\F9\B2\ED\85z\B2Z\9A\EB\A2\EE?\80m$]\B0\BDږ<\84P\00\AF\D8~\B8\96lب%\EDڞn\E8\DBd\E7\D0\95<\C6X\00'l?R%\93Գ}[J\E9\EB\C8\80\93\C0T\FE\B8\B9\B1\002\88\B6_ \D3\DB^\90t\B4v\D6=۷דg\E9\AF\DD \F4\E2\8E\00\00K\C0\E7-\FAˁu\B6\EA(pgJ髦QJiX\A4\B6iۋ\92\E6[\00\C0Vu\8E}I\A7\C6\D8\EE\80$$m\00\ABc\FC\FBeYn\DA\EEջ~7\D2v}Z\9A0\CB\00\B6w\F6ndh\00l\EF\AE\D9Iۃ=\90\AFԒ\ED\A17\A0)\92&\D0\C6\8B\92~\A5\85 k\E7>\A0\A5\9Am2\D2I\D2_\C0OmΒ\8A\90\BD\00 l\F7ۜ\EB\89\F7\EC\D4\ED\93t\F5\FF\B6\BF|\BB\916(m\EFh\B0=\D1\F9C;D\E0,pf\94A\D5\92\8AqGc\9C\B1ݕt\A1,˿\AB\FDm\C8k\83\C3y\C63\E1L\8Cq?0;\C6\E0U\E0p \BD+\DD \F3@1\EE~۞\B7}\D6v\B8i\8C\ED\F3\C0weY\BE?@\C5\B3\C0\B5\A3J\AAnH7\F7̻!\84\C3-\F6\BDa\94\AD\C20\95\CFs\D3\F6\B2\A4{3\EA\A7%\BD9\E2\8B:\92N\00Gj{=I\B7\96e\B9c,rsl 6 | \A6\8Fm/\A7\94NW>IoGrٿ\95\F4\A3\ED\DF%MK\9A\B6\FD\E7\B0/'\FCT\D2\C7\C0Y\99\ED\931\C6&3֛\F4p\BA\AEx\C6\F6Z\CDx \E9u\E0TED\CD\AF\AD\E7s\8CO\C9:\F5\AFo\EF\92u\91RZ\95tpp\9C-^\CE\F6aI}I\EB 7 | \A2\E9\EFdۧ\80$˕\B8\A4B\A3\D6u\E9\00\94e\B9\BCc\BC\BB\A6\BFh\FB \F0$p3\F0\F0rJ\E9\FBf\A0\C2\FD\92\9E\A6\AB\A4UlOJ\9Aj΄۠\85\BA\E4 襔&6q\F7Iz\DC\F6K)\A5\89\9F\EF\FF\E0\AA\C27\CD\FD\899|\99f\F3\CF̿2\F936Bb\8C]\DB\C7%}\99G\B5"ṣ\C0\99[ր\81?\DA\A3Ie\86\AD[4W%Ϥu(s\CDC\B99\E7\803\FF\80\F3\C0)\A5\F5\FAf\8Cq^\D2=\C0\8B\92\D6l\904\F8\FD\C1\B8U\E2\E3p\00\00\00\00IEND\AEB`\82 8 | -------------------------------------------------------------------------------- /src/assets/favicons/lc/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/lc/favicon-96x96.png -------------------------------------------------------------------------------- /src/assets/favicons/lc/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/lc/favicon.ico -------------------------------------------------------------------------------- /src/assets/favicons/lc/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/lc/mstile-144x144.png -------------------------------------------------------------------------------- /src/assets/favicons/lc/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/lc/mstile-150x150.png -------------------------------------------------------------------------------- /src/assets/favicons/lc/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/lc/mstile-310x150.png -------------------------------------------------------------------------------- /src/assets/favicons/lc/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/lc/mstile-310x310.png -------------------------------------------------------------------------------- /src/assets/favicons/lc/mstile-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/lc/mstile-70x70.png -------------------------------------------------------------------------------- /src/assets/favicons/swc/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/swc/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /src/assets/favicons/swc/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/swc/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /src/assets/favicons/swc/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/swc/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /src/assets/favicons/swc/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/swc/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /src/assets/favicons/swc/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/swc/favicon-16x16.png -------------------------------------------------------------------------------- /src/assets/favicons/swc/favicon-196x196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/swc/favicon-196x196.png -------------------------------------------------------------------------------- /src/assets/favicons/swc/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/swc/favicon-32x32.png -------------------------------------------------------------------------------- /src/assets/favicons/swc/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/swc/favicon-96x96.png -------------------------------------------------------------------------------- /src/assets/favicons/swc/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/swc/favicon.ico -------------------------------------------------------------------------------- /src/assets/favicons/swc/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/swc/mstile-144x144.png -------------------------------------------------------------------------------- /src/assets/favicons/swc/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/swc/mstile-150x150.png -------------------------------------------------------------------------------- /src/assets/favicons/swc/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/swc/mstile-310x150.png -------------------------------------------------------------------------------- /src/assets/favicons/swc/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/favicons/swc/mstile-310x310.png -------------------------------------------------------------------------------- /src/assets/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /src/assets/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /src/assets/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /src/assets/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /src/assets/img/cp-logo-blue.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/img/cwl-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/img/cwl-icon.png -------------------------------------------------------------------------------- /src/assets/img/cwl-logo-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/img/cwl-logo-white.png -------------------------------------------------------------------------------- /src/assets/img/dc-icon-black.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/img/dc-logo-black.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/img/lc-icon-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/img/lc-icon-black.png -------------------------------------------------------------------------------- /src/assets/img/lc-logo-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/img/lc-logo-black.png -------------------------------------------------------------------------------- /src/assets/img/swc-logo-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/img/swc-logo-blue.png -------------------------------------------------------------------------------- /src/assets/img/swc-logo-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/common-workflow-language/user_guide/3bfa62397cece91175f3652e2df7d8b43beb0c15/src/assets/img/swc-logo-white.png -------------------------------------------------------------------------------- /src/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | #ffffff 3 | -------------------------------------------------------------------------------- /src/episodes.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | 5 | # This page has moved 6 | 7 | ```{attention} 8 | 9 | This page is out-of-date and was kept here to preserve the links of the old 10 | User Guide. Please use the new [Table of Contents](index.md#table-of-contents) 11 | to browse the User Guide. 12 | ``` 13 | -------------------------------------------------------------------------------- /src/favicon.ico: -------------------------------------------------------------------------------- 1 | assets/favicons/cwl/favicon.ico -------------------------------------------------------------------------------- /src/index.md: -------------------------------------------------------------------------------- 1 | # Common Workflow Language User Guide 2 | 3 | This guide will introduce you to writing workflows using the 4 | [Common Workflow Language](https://www.commonwl.org/) (CWL) 5 | open standards. This guide describes the latest specification {{ cwl_version }}. 6 | 7 | ```{admonition} Contributions and Feedback are Welcome! 8 | 9 | If you find that something is missing from this guide, or if you would 10 | like to provide other feedback, file an Issue on the [project repository 11 | for this guide][repo]. You can also suggest changes directly in a Pull 12 | Request by clicking the "Edit this page" button at the right sidebar of 13 | each page. 14 | ``` 15 | 16 | ## Navigating the User Guide 17 | 18 | If you are a beginner user get started with the [Introduction](/introduction/index.md) 19 | section. For advanced users the subsections of the 20 | [Topics](/topics/index.md) have detailed information about the 21 | most common topics for CWL. 22 | 23 | The Table of Contents is displayed at the top menu and also on the left sidebar. 24 | It also appears further down this page but with links to subsections. The right 25 | sidebar contains links to the sections of each page, and the Search form is on 26 | the left sidebar. 27 | 28 | ## Table of Contents 29 | 30 | ```{toctree} 31 | :maxdepth: 3 32 | :numbered: 33 | 34 | introduction/index.md 35 | topics/index.md 36 | tutorials.md 37 | faq.md 38 | LICENSE.md 39 | ``` 40 | 41 | [repo]: https://github.com/common-workflow-language/user_guide/issues 42 | -------------------------------------------------------------------------------- /src/introduction/index.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | This section will guide you through a short introduction to CWL, 4 | the prerequisites for following this user guide, and some 5 | basic concepts that are useful to know before reading the rest of the 6 | user guide. 7 | 8 | ```{toctree} 9 | :maxdepth: 2 10 | 11 | quick-start.md 12 | prerequisites.md 13 | basic-concepts.md 14 | ``` 15 | -------------------------------------------------------------------------------- /src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "App", 3 | "icons": [ 4 | { 5 | "src": "assets\/favicon\/cwl/android-icon-36x36.png", 6 | "sizes": "36x36", 7 | "type": "image\/png", 8 | "density": "0.75" 9 | }, 10 | { 11 | "src": "assets\/favicon\/cwl/android-icon-48x48.png", 12 | "sizes": "48x48", 13 | "type": "image\/png", 14 | "density": "1.0" 15 | }, 16 | { 17 | "src": "assets\/favicon\/cwl/android-icon-72x72.png", 18 | "sizes": "72x72", 19 | "type": "image\/png", 20 | "density": "1.5" 21 | }, 22 | { 23 | "src": "assets\/favicon\/cwl/android-icon-96x96.png", 24 | "sizes": "96x96", 25 | "type": "image\/png", 26 | "density": "2.0" 27 | }, 28 | { 29 | "src": "assets\/favicon\/cwl/android-icon-144x144.png", 30 | "sizes": "144x144", 31 | "type": "image\/png", 32 | "density": "3.0" 33 | }, 34 | { 35 | "src": "assets\/favicon\/cwl/android-icon-192x192.png", 36 | "sizes": "192x192", 37 | "type": "image\/png", 38 | "density": "4.0" 39 | } 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /src/setup.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | 5 | # This page has moved 6 | 7 | ```{attention} 8 | 9 | This page is out-of-date and was kept here to preserve the links of the old 10 | User Guide. The information on this page has been migrated to the 11 | [FAQ](/faq.md) section of the new user guide. 12 | ``` 13 | -------------------------------------------------------------------------------- /src/topics/additional-arguments-and-parameters.md: -------------------------------------------------------------------------------- 1 | # Additional Arguments and Parameters 2 | 3 | Sometimes tools require additional command line options that don't 4 | correspond exactly to input parameters. 5 | 6 | In this example, we will wrap the Java compiler to compile a java source 7 | file to a class file. By default, "javac" will create the class files in 8 | the same directory as the source file. However, CWL input files (and the 9 | directories in which they appear) may be read-only, so we need to 10 | instruct "javac" to write the class file to the designated output directory 11 | instead. 12 | 13 | ```{literalinclude} /_includes/cwl/additional-arguments-and-parameters/arguments.cwl 14 | :language: cwl 15 | :caption: "`arguments.cwl`" 16 | :name: arguments.cwl 17 | ``` 18 | 19 | ```{literalinclude} /_includes/cwl/additional-arguments-and-parameters/arguments-job.yml 20 | :language: yaml 21 | :caption: "`arguments-job.yml`" 22 | ``` 23 | 24 | Next, create a sample Java file to use with the command-line tool. 25 | 26 | ```{code-block} console 27 | $ echo "public class Hello {}" > Hello.java 28 | ``` 29 | 30 | And now invoke `cwltool` providing the tool description and the input object on the command line: 31 | 32 | ```{runcmd} cwltool arguments.cwl arguments-job.yml 33 | :working-directory: src/_includes/cwl/additional-arguments-and-parameters 34 | ``` 35 | 36 | Here we use the `arguments` field to add an additional argument to the 37 | command line that isn't tied to a specific input parameter. 38 | 39 | ```cwl 40 | arguments: ["-d", $(runtime.outdir)] 41 | ``` 42 | 43 | This example references a runtime parameter. Runtime parameters provide 44 | information about the hardware or software environment when the tool is 45 | actually executed. The `$(runtime.outdir)` parameter is the path to the 46 | designated output directory. Other parameters include `$(runtime.tmpdir)`, 47 | `$(runtime.ram)`, `$(runtime.cores)`, `$(runtime.outdirSize)`, and 48 | `$(runtime.tmpdirSize)`. See the [Runtime Environment][runtime] section of the 49 | CWL specification for details. 50 | 51 | [runtime]: https://www.commonwl.org/v1.0/CommandLineTool.html#Runtime_environment 52 | -------------------------------------------------------------------------------- /src/topics/command-line-tool.md: -------------------------------------------------------------------------------- 1 | # Command Line Tool 2 | 3 | A command-line tool is a type of Process object that can be run by 4 | itself or as a Workflow step. It is a wrapper for a command like 5 | `ls`, `echo`, `tar`, etc. The command-line tool is defined in the 6 | `baseCommand` attribute of the command-line tool CWL document. 7 | 8 | A CWL command-line tool must also have `inputs` and `outputs`. 9 | The following example contains a minimal example of a CWL 10 | command-line tool for the `echo` Linux command, using inputs and 11 | outputs. 12 | 13 | % TODO: Fix the missing link the graph below. We cannot have 14 | % it here as this file is included in two other files. 15 | % Sphinx prohibits it for the case where this could lead 16 | % to duplicate anchors in a page (e.g. single-html). 17 | % :name: command-line-tool-graph 18 | 19 | ```{graphviz} 20 | :caption: CWL command-line tool. 21 | :align: center 22 | 23 | digraph G { 24 | compound=true; 25 | rankdir="LR"; 26 | fontname="Verdana"; 27 | fontsize="10"; 28 | graph [splines=ortho]; 29 | 30 | node [fontname="Verdana", fontsize="10", shape=box]; 31 | edge [fontname="Verdana", fontsize="10"]; 32 | 33 | subgraph cluster_0 { 34 | command[style="filled" label=<echo>]; 35 | label="baseCommand"; 36 | fill=gray; 37 | } 38 | 39 | inputs -> command [lhead=cluster_0]; 40 | command -> outputs [ltail=cluster_0]; 41 | } 42 | ``` 43 | 44 | % TODO: Fix the missing link the code below. We cannot have 45 | % it here as this file is included in two other files. 46 | % Sphinx prohibits it for the case where this could lead 47 | % to duplicate anchors in a page (e.g. single-html). 48 | % :name: echo.cwl 49 | 50 | ```{literalinclude} /_includes/cwl/echo.cwl 51 | :language: cwl 52 | :caption: "`echo.cwl`" 53 | ``` 54 | 55 | ```{note} 56 | 57 | The example above uses a simplified form to define inputs and outputs. 58 | You will learn more about in the [Inputs](../topics/inputs.md) 59 | and in the [Outputs](../topics/outputs.md) sections. 60 | ``` 61 | 62 | % TODO 63 | % 64 | % - Spaces in commands https://github.com/common-workflow-language/user_guide/issues/39 65 | % - Arguments (tell the reader the different use cases for arguments and inputs, tell them there is a section about inputs) 66 | 67 | 68 | ## Network Access 69 | This indicates whether a process requires outgoing IPv4/IPv6 network 70 | access. Starting with CWL v1.1, programs are not granted network 71 | access by default, so you must include the requirement for network 72 | access in the specification of your tool. 73 | 74 | ```cwl 75 | cwlVersion: v1.2 76 | class: CommandLineTool 77 | 78 | requirements: 79 | NetworkAccess: 80 | networkAccess: true 81 | ``` 82 | 83 | ```{note} 84 | CWL v1.0 command-line tools that are upgraded to v1.1 85 | or v1.2 or v1.2 will have `networkAccess: true` set automatically. 86 | ``` 87 | -------------------------------------------------------------------------------- /src/topics/creating-files-at-runtime.md: -------------------------------------------------------------------------------- 1 | # Creating Files at Runtime 2 | 3 | Sometimes you need to create a file on the fly from input parameters, 4 | such as tools that expect to read their input configuration from a file 5 | rather than the command line parameters, or need a small wrapper shell script. 6 | 7 | To generate such files, we can use the [`InitialWorkDirRequirement`](https://w3id.org/cwl/CommandLineTool.html#InitialWorkDirRequirement). 8 | 9 | ```{literalinclude} /_includes/cwl/creating-files-at-runtime/createfile.cwl 10 | :language: cwl 11 | :caption: "`createfile.cwl`" 12 | :name: createfile.cwl 13 | ``` 14 | 15 | Any [expressions](../topics/expressions.md) like `$(inputs.message)` are 16 | expanded by the CWL engine before creating the file. 17 | Here, insert the value at the input `message`. 18 | 19 | ```{tip} 20 | The _CWL expressions_ are independent of any _shell variables_ 21 | used later during command line tool invocation. That means that any genuine 22 | need for the character `$` must be **escaped** with `\`. 23 | For instance, `\${PREFIX}` above is expanded to `${PREFIX}` in the generated file 24 | to be evaluated by the shell script instead of the CWL engine. 25 | ``` 26 | 27 | To test the above CWL tool, use this job to provide the input value `message`: 28 | 29 | ```{literalinclude} /_includes/cwl/creating-files-at-runtime/echo-job.yml 30 | :language: yaml 31 | :caption: "`echo-job.yml`" 32 | :name: echo-job.yml 33 | ``` 34 | 35 | Before we run this, let us look at each step in a little more detail. 36 | The base command `baseCommand: ["sh", "example.sh"]` 37 | will execute the command `sh example.sh`. 38 | This will run the file we create in the shell. 39 | 40 | `InitialWorkDirRequirement` requires a `listing`. 41 | As the `listing` is a YAML array, we need a `-` on the first line of 42 | each element of the array, in this case we have just one element. 43 | `entryname:` can have any value, 44 | but it must match what was specified in the `baseCommand`. 45 | The final part is `entry:`, this is followed by `|-` 46 | which is YAML quoting syntax, and means that you are using a multiline string 47 | (without it, we would need to write the whole script on one line). 48 | 49 | ```{note} 50 | 51 | See the [YAML Guide](../topics/yaml-guide.md#maps) for more about the formatting. 52 | ``` 53 | 54 | Now invoke `cwltool` with the tool description and the input object on the 55 | command line: 56 | 57 | ```{runcmd} cwltool createfile.cwl echo-job.yml 58 | :working-directory: src/_includes/cwl/creating-files-at-runtime/ 59 | ``` 60 | 61 | ```{runcmd} cat output.txt 62 | :working-directory: src/_includes/cwl/creating-files-at-runtime/ 63 | ``` 64 | -------------------------------------------------------------------------------- /src/topics/custom-types.md: -------------------------------------------------------------------------------- 1 | # Custom Types 2 | 3 | Sometimes you may want to write your own custom types for use and reuse in CWL 4 | descriptions. Use of such custom types can reduce redundancy between multiple 5 | descriptions that all use the same type, and also allow for additional 6 | customisation/configuration of a tool/analysis without the need to fiddle with 7 | the CWL description directly. 8 | 9 | The example below is a CWL description of the [biom convert format][biom] tool for 10 | converting a standard biom table file to hdf5 format. 11 | 12 | ```{literalinclude} /_includes/cwl/custom-types/custom-types.cwl 13 | :language: cwl 14 | :caption: "`custom-types.cwl`" 15 | :name: custom-types.cwl 16 | ``` 17 | 18 | ```{literalinclude} /_includes/cwl/custom-types/custom-types.yml 19 | :language: yaml 20 | :caption: "`custom-types.yml`" 21 | :name: custom-types.yml 22 | ``` 23 | 24 | ___Note:___ To follow the example below, you need to [download the example input file](https://github.com/common-workflow-language/user_guide/blob/main/src/_includes/cwl/custom-types/rich_sparse_otu_table.biom), *rich_sparse_otu_table.biom* e.g. via `wget`: 25 | 26 | ```{code-block} console 27 | $ wget https://github.com/common-workflow-language/user_guide/raw/main/src/_includes/cwl/custom-types/rich_sparse_otu_table.biom 28 | ``` 29 | 30 | On line 29, in `inputs:table_type`, a list of allowable table options to be used in the 31 | table conversion are imported as a custom object: 32 | 33 | ```cwl 34 | inputs: 35 | biom: 36 | type: File 37 | format: edam:format_3746 # BIOM 38 | inputBinding: 39 | prefix: --input-fp 40 | table_type: 41 | type: biom-convert-table.yaml#table_type 42 | inputBinding: 43 | prefix: --table-type 44 | ``` 45 | 46 | The reference to a custom type is a combination of the name of the file in which 47 | the object is defined (`biom-convert-table.yaml`) and the name of the object 48 | within that file (`table_type`) that defines the custom type. In this case the `symbols` 49 | array from the imported `biom-convert-table.yaml` file define the allowable table options. 50 | For example, in `custom-types.yml`, we pass `OTU table` as an `input` that 51 | tells the tool to create an OTU table in hdf5 format. 52 | 53 | The contents of the YAML file describing the custom type are given below: 54 | 55 | ```{literalinclude} /_includes/cwl/custom-types/biom-convert-table.yaml 56 | :language: yaml 57 | :caption: "`biom-convert-table.yaml`" 58 | :name: biom-convert-table.yaml 59 | ``` 60 | 61 | In order for the custom type to be used in the CWL description, it must be 62 | imported. Imports are described in `requirements:SchemaDefRequirement`, as 63 | below in the example `custom-types.cwl` description: 64 | 65 | ```cwl 66 | requirements: 67 | InlineJavascriptRequirement: {} 68 | ResourceRequirement: 69 | coresMax: 1 70 | ramMin: 100 71 | SchemaDefRequirement: 72 | types: 73 | - $import: biom-convert-table.yaml 74 | ``` 75 | 76 | Note also that the author of this CWL description has also included 77 | [`ResourceRequirement`](https://w3id.org/cwl/CommandLineTool.html#ResourceRequirement)s, specifying the minimum amount of RAM and number of cores 78 | required for the tool to run successfully, as well as details of the version of 79 | the software that the description was written for and other useful metadata. 80 | These features are discussed further in other chapters of this user guide. 81 | 82 | [biom]: http://biom-format.org/ 83 | 84 | % TODO (enums) 85 | % 86 | % - https://github.com/common-workflow-language/user_guide/issues/155 87 | % - Maybe show an example with booleans, pros and cons - https://github.com/common-workflow-language/user_guide/issues/89 88 | % 89 | % TODO (records) 90 | % 91 | % - https://github.com/common-workflow-language/common-workflow-language/issues/202 92 | % - Document corner cases & workarounds - https://github.com/common-workflow-language/common-workflow-language/issues/241 93 | -------------------------------------------------------------------------------- /src/topics/environment-variables.md: -------------------------------------------------------------------------------- 1 | # Environment Variables 2 | 3 | Tools run in a restricted environment and do not inherit most environment 4 | variables from the parent process. You can set environment variables for 5 | the tool using `EnvVarRequirement`. 6 | 7 | ```{literalinclude} /_includes/cwl/environment-variables/env.cwl 8 | :language: cwl 9 | :caption: "`env.cwl`" 10 | :name: env.cwl 11 | ``` 12 | 13 | ```{literalinclude} /_includes/cwl/environment-variables/echo-job.yml 14 | :language: yaml 15 | :caption: "`echo-job.yml`" 16 | ``` 17 | 18 | Now invoke `cwltool` with the tool description and the input object on the 19 | command line: 20 | 21 | ```{runcmd} cwltool env.cwl echo-job.yml 22 | :working-directory: src/_includes/cwl/environment-variables/ 23 | ``` 24 | 25 | ```{runcmd} cat output.txt 26 | :working-directory: src/_includes/cwl/environment-variables/ 27 | ``` 28 | -------------------------------------------------------------------------------- /src/topics/expression-tool.md: -------------------------------------------------------------------------------- 1 | # Expression Tool 2 | 3 | An expression tool is a type of Process that can be run by itself or 4 | as a Workflow step. It executes a pure JavaScript expression. It is 5 | meant to be used as a way to isolate complex JavaScript expressions 6 | that need to operate on input data and produce some result as output. 7 | 8 | Similar to the command-line tool it requires `inputs` and `outputs`. 9 | But instead of `baseCommand`, it requires an [`expression`](https://w3id.org/cwl/CommandLineTool.html#Expressions_(Optional)) attribute. 10 | 11 | % TODO: Fix the missing link the graph below. We cannot have 12 | % it here as this file is included in two other files. 13 | % Sphinx prohibits it for the case where this could lead 14 | % to duplicate anchors in a page (e.g. single-html). 15 | % :name: expression-tool-graph 16 | 17 | ```{graphviz} 18 | :caption: CWL expression tool. 19 | :align: center 20 | 21 | digraph G { 22 | compound=true; 23 | rankdir="LR"; 24 | fontname="Verdana"; 25 | fontsize="10"; 26 | graph [splines=ortho]; 27 | 28 | node [fontname="Verdana", fontsize="10", shape=box]; 29 | edge [fontname="Verdana", fontsize="10"]; 30 | 31 | subgraph cluster_0 { 32 | expression[style="filled" label="JavaScript"]; 33 | label="expression"; 34 | fill=gray; 35 | } 36 | 37 | inputs -> expression [lhead=cluster_0]; 38 | expression -> outputs [ltail=cluster_0]; 39 | } 40 | ``` 41 | 42 | % TODO: Fix the missing link the code below. We cannot have 43 | % it here as this file is included in two other files. 44 | % Sphinx prohibits it for the case where this could lead 45 | % to duplicate anchors in a page (e.g. single-html). 46 | % :name: uppercase.cwl 47 | 48 | ```{code-block} cwl 49 | :caption: "`uppercase.cwl`" 50 | cwlVersion: v1.2 51 | class: ExpressionTool 52 | 53 | requirements: 54 | InlineJavascriptRequirement: {} 55 | 56 | inputs: 57 | message: string 58 | outputs: 59 | uppercase_message: string 60 | 61 | expression: | 62 | ${ return {"uppercase_message": inputs.message.toUpperCase()}; } 63 | ``` 64 | 65 | ```{note} 66 | 67 | We had to use an [`InlineJavascriptRequirement`](https://w3id.org/cwl/CommandLineTool.html#InlineJavascriptRequirement) as our expression 68 | contains a JavaScript call in `.toUpperCase()`. This means to tools 69 | using the expression tool that JavaScript is a requirement. 70 | ``` 71 | 72 | % TODO: 73 | % 74 | % - Explain better with more examples. 75 | -------------------------------------------------------------------------------- /src/topics/file-formats.md: -------------------------------------------------------------------------------- 1 | # File Formats 2 | 3 | Tools and workflows can take [`File`](https://w3id.org/cwl/CommandLineTool.html#File) types as input and produce them as output. 4 | We also recommend indicating the format for [`File`](https://w3id.org/cwl/CommandLineTool.html#File) types. This helps document 5 | for others how to use your tool while allowing you to do some simple 6 | type-checking when creating parameter files. 7 | 8 | For file formats, we recommend referencing existing ontologies (like EDAM in 9 | our example), reference a local ontology for your institution, or do not add 10 | a file format initially for quick development before sharing your tool with 11 | others. You can browse existing [IANA file format listings][IANA] and 12 | [EDAM file format listings][EDAM] on their websites. 13 | 14 | In the next tutorial, we explain the `$namespaces` and `$schemas` section of the 15 | document in greater detail, so don't worry about these for now. 16 | 17 | Note that for added value `cwltool` can do some basic reasoning based on file 18 | formats and warn you if there seem to be some obvious mismatches. 19 | 20 | ```{literalinclude} /_includes/cwl/file-formats/metadata_example.cwl 21 | :language: cwl 22 | :caption: "`metadata_example.cwl`" 23 | :name: metadata_example.cwl 24 | ``` 25 | 26 | The equivalent of this CWL description in command line format is: 27 | 28 | ```{code-block} console 29 | $ wc -l /path/to/aligned_sequences.ext > output.txt 30 | ``` 31 | 32 | ## Sample Parameter Files 33 | 34 | Below is an example of a parameter file for the example above. We encourage 35 | checking in working examples of parameter files for your tool. This allows 36 | others to quickly work with your tool, starting from a "known good" 37 | parameterization. 38 | 39 | ```{literalinclude} /_includes/cwl/file-formats/sample.yml 40 | :language: yaml 41 | :caption: "`sample.yml`" 42 | :name: sample.yml 43 | ``` 44 | 45 | ___Note:___ To follow the example below, you need to download the example input file, *file-formats.bam*. The file is available from 46 | and can be downloaded e.g. via `wget`: 47 | 48 | ```{code-block} 49 | $ wget https://github.com/common-workflow-language/user_guide/raw/main/src/_includes/cwl/file-formats/file-formats.bam 50 | ``` 51 | 52 | Now invoke `cwltool` with the tool description and the input object on the 53 | command line: 54 | 55 | ```{runcmd} cwltool metadata_example.cwl sample.yml 56 | :working-directory: src/_includes/cwl/file-formats/ 57 | ``` 58 | 59 | [IANA]: https://www.iana.org/assignments/media-types/media-types.xhtml 60 | [EDAM]: https://www.ebi.ac.uk/ols/ontologies/edam/terms?iri=http%3A%2F%2Fedamontology.org%2Fformat_1915 61 | -------------------------------------------------------------------------------- /src/topics/index.md: -------------------------------------------------------------------------------- 1 | # Topics 2 | 3 | ```{toctree} 4 | :maxdepth: 2 5 | yaml-guide.md 6 | command-line-tool.md 7 | expressions.md 8 | inputs.md 9 | additional-arguments-and-parameters.md 10 | parameter-references.md 11 | outputs.md 12 | custom-types.md 13 | expression-tool.md 14 | workflows.md 15 | operations.md 16 | environment-variables.md 17 | using-containers.md 18 | creating-files-at-runtime.md 19 | staging-input-files.md 20 | best-practices.md 21 | file-formats.md 22 | metadata-and-authorship.md 23 | specifying-software-requirements.md 24 | troubleshooting.md 25 | ``` 26 | -------------------------------------------------------------------------------- /src/topics/metadata-and-authorship.md: -------------------------------------------------------------------------------- 1 | # Metadata and Authorship 2 | 3 | Implementation extensions not required for correct execution (for example, 4 | fields related to GUI presentation) and metadata about the tool or workflow 5 | itself (for example, authorship for use in citations) may be provided as 6 | additional fields on any object. Such extensions fields (e.g. `format: edam:format_2572`) 7 | can use a namespace prefix listed in the `$namespaces` section of the document 8 | (e.g. edam: http://edamontology.org/) as described in the [Schema Salad specification][schema-salad]. 9 | Once you add the namespace prefix, you can access it anywhere in the document as shown below. 10 | Otherwise, one must use full URLs: `format: http://edamontology.org/format_2572`. 11 | 12 | 13 | For all developers, we recommend the following minimal metadata for your tool 14 | and workflows. This example includes metadata allowing others to cite your tool. 15 | 16 | ```{literalinclude} /_includes/cwl/metadata-and-authorship/metadata_example2.cwl 17 | :language: cwl 18 | :caption: "`metadata_example2.cwl`" 19 | :name: metadata_example2.cwl 20 | ``` 21 | 22 | The equivalent of this CWL description in command line format is: 23 | 24 | ```{code-block} 25 | $ wc -l /path/to/aligned_sequences.ext > output.txt 26 | ``` 27 | 28 | ## Extended Example 29 | 30 | For those that are highly motivated, it is also possible to annotate your tool 31 | with a much larger amount of metadata. This example includes EDAM ontology tags 32 | as keywords (allowing the grouping of related tools), hints at hardware 33 | requirements in order to use the tool, and a few more metadata fields. 34 | 35 | ```{literalinclude} /_includes/cwl/metadata-and-authorship/metadata_example3.cwl 36 | :language: cwl 37 | :caption: "`metadata_example3.cwl`" 38 | :name: metadata_example3.cwl 39 | :emphasize-lines: 8-10, 47-48 40 | ``` 41 | 42 | [schema-salad]: https://www.commonwl.org/v1.0/SchemaSalad.html#Explicit_context 43 | -------------------------------------------------------------------------------- /src/topics/operations.md: -------------------------------------------------------------------------------- 1 | # Operations 2 | 3 | An Operation is a type of CWL process, just like a workflow, a command-line tool, or 4 | an expression tool. It is a step of a workflow that specifies inputs and outputs, 5 | but it does not provide enough information to be executed. 6 | 7 | You can create operations to visualize a workflow during development, before 8 | you are ready to submit the workflow to a CWL runner: 9 | 10 | ```{literalinclude} /_includes/cwl/operations/operations.cwl 11 | :language: cwl 12 | :name: operations.cwl 13 | :caption: "`operations.cwl`" 14 | ``` 15 | 16 | The `uppercase` step of the workflow is an operation. It can appear where a 17 | command line tool or an expression is expected. You can also plot it with the 18 | CWL Viewer or `cwltool`: 19 | 20 | ```{runcmd} cwltool --print-dot operations.cwl 21 | :working-directory: src/_includes/cwl/operations/ 22 | ``` 23 | 24 | The output of the command above can be rendered `cwltool --print-dot operations.cwl | dot -Tsvg > 25 | operations.svg ; open operations.svg`. 26 | 27 | ```{graphviz} 28 | 29 | digraph G { 30 | bgcolor="#eeeeee"; 31 | clusterrank=local; 32 | labeljust=right; 33 | labelloc=bottom; 34 | "echo" [fillcolor=lightgoldenrodyellow, label=echo, shape=record, style=filled]; 35 | "uppercase" [fillcolor=lightgoldenrodyellow, label=uppercase, shape=record, style=dashed]; 36 | "echo" -> "uppercase"; 37 | subgraph cluster_inputs { 38 | label="Workflow Inputs"; 39 | rank=same; 40 | style=dashed; 41 | "message" [fillcolor="#94DDF4", label=message, shape=record, style=filled]; 42 | } 43 | 44 | "message" -> "echo"; 45 | subgraph cluster_outputs { 46 | label="Workflow Outputs"; 47 | labelloc=b; 48 | rank=same; 49 | style=dashed; 50 | } 51 | 52 | } 53 | ``` 54 | 55 | The operation file will fail to run with `cwltool` because `cwltool` 56 | lacks the necessary information to execute it: 57 | 58 | ```{runcmd} cwltool operations.cwl --message Hello 59 | :working-directory: src/_includes/cwl/operations/ 60 | :name: operations-output-error-cwltool 61 | :caption: "`cwltool` does not know how to run operations" 62 | ``` 63 | 64 | ```{note} 65 | 66 | CWL runners may come up with ways to bind operations to concrete steps. 67 | A CWL runner could, for instance, use abstract operations with ID's that 68 | correspond to steps executed by a different workflow engine. 69 | ``` 70 | -------------------------------------------------------------------------------- /src/topics/outputs.md: -------------------------------------------------------------------------------- 1 | # Outputs 2 | 3 | ## Returning Output Files 4 | 5 | The `outputs` of a tool is a list of output parameters that should be 6 | returned after running the tool. Each parameter has an `id` for the name 7 | of parameter, and `type` describing what types of values are valid for 8 | that parameter. 9 | 10 | When a tool runs under CWL, the starting working directory is the 11 | designated output directory. The underlying tool or script must record 12 | its results in the form of files created in the output directory. The 13 | output parameters returned by the CWL tool are either the output files 14 | themselves, or the result of examining the content of those files. 15 | 16 | The following example demonstrates how to return a file that has been extracted from a tar file. 17 | 18 | ```{tip} 19 | Passing mandatory arguments to the `baseCommand` 20 | 21 | In previous examples, the `baseCommand` was just a string, with any arguments 22 | passed as CWL inputs. Instead of a single string, we can use an _array of 23 | strings_ as the value of `baseCommand`. The first element of the array is the 24 | command to run, and any subsequent elements are mandatory command line 25 | arguments 26 | ``` 27 | 28 | ```{literalinclude} /_includes/cwl/outputs/tar.cwl 29 | :language: cwl 30 | :caption: "`tar.cwl`" 31 | :name: tar.cwl 32 | ``` 33 | 34 | ```{literalinclude} /_includes/cwl/outputs/tar-job.yml 35 | :language: yaml 36 | :caption: "`tar-job.yml`" 37 | :name: tar-job.yml 38 | ``` 39 | 40 | Next, create a tar file for the example. 41 | 42 | ```{code-block} console 43 | $ touch hello.txt && tar -cvf hello.tar hello.txt 44 | hello.txt 45 | ``` 46 | 47 | And now invoke `cwltool` with the tool description and the input object on the command line: 48 | 49 | ```{runcmd} cwltool tar.cwl tar-job.yml 50 | :working-directory: src/_includes/cwl/outputs/ 51 | ``` 52 | 53 | The field [`outputBinding`](https://w3id.org/cwl/CommandLineTool.html#CommandOutputBinding) describes how to set the value of each 54 | output parameter. 55 | 56 | ```cwl 57 | outputs: 58 | example_out: 59 | type: File 60 | outputBinding: 61 | glob: hello.txt 62 | ``` 63 | 64 | The [`glob`](https://w3id.org/cwl/CommandLineTool.html#CommandOutputBinding) 65 | field consists of the pattern to match file names in the output directory. 66 | This can simply be the file's exact name. But if you don't know the name of the 67 | file in advance, you can use a wildcard pattern like `glob: '*.txt'`. 68 | 69 | ## Capturing Standard Output 70 | 71 | To capture a tool's standard output stream, add the [`stdout`](https://w3id.org/cwl/CommandLineTool.html#stdout) field with 72 | the name of the file where the output stream should go. Then add `type: 73 | stdout` on the corresponding output parameter. 74 | 75 | ```{literalinclude} /_includes/cwl/outputs/stdout.cwl 76 | :language: cwl 77 | :caption: "`stdout.cwl`" 78 | :name: stdout.cwl 79 | ``` 80 | 81 | ```{literalinclude} /_includes/cwl/outputs/echo-job.yml 82 | :language: yaml 83 | :caption: "`echo-job.yml`" 84 | ``` 85 | 86 | Now invoke `cwltool` providing the tool description and the input object 87 | on the command line: 88 | 89 | ```{runcmd} cwltool stdout.cwl echo-job.yml 90 | :working-directory: src/_includes/cwl/outputs/ 91 | ``` 92 | 93 | ## Array Outputs 94 | 95 | You can also capture multiple output files into an array of files using `glob`. 96 | 97 | ```{literalinclude} /_includes/cwl/outputs/array-outputs.cwl 98 | :language: cwl 99 | :caption: "`array-outputs.cwl`" 100 | :name: array-outputs.cwl 101 | ``` 102 | 103 | ```{literalinclude} /_includes/cwl/outputs/array-outputs-job.yml 104 | :language: yaml 105 | :caption: "`array-outputs-job.yml`" 106 | :name: array-outputs-job.yml 107 | ``` 108 | 109 | Now invoke `cwltool` providing the tool description and the input object 110 | on the command line: 111 | 112 | ```{runcmd} cwltool array-outputs.cwl array-outputs-job.yml 113 | :working-directory: src/_includes/cwl/outputs/ 114 | ``` 115 | 116 | As described in the [YAML Guide](yaml-guide.md#arrays), 117 | the array of expected outputs is specified in `array-outputs-job.yml` with each 118 | entry marked by a leading `-`. This format can also be used in CWL descriptions 119 | to mark entries in arrays, as demonstrated in several of the upcoming sections. 120 | 121 | % TODO 122 | % 123 | % - Creating files at runtime - https://github.com/common-workflow-language/user_guide/issues/134 124 | -------------------------------------------------------------------------------- /src/topics/requirements-and-hints.md: -------------------------------------------------------------------------------- 1 | --- 2 | orphan: true 3 | --- 4 | 5 | # Requirements and Hints 6 | 7 | % TODO 8 | % 9 | % - InlineJavascriptRequirement 10 | % - Maybe list cases where it is not really necessary? e.g. https://github.com/common-workflow-language/common-workflow-language/issues/389 11 | % - Covered by the **episode 13** of the current User Guide - https://www.commonwl.org/user_guide/13-expressions/index.html 12 | % - InitialWorkDirRequirement 13 | % - Staging Files (a common topic, and appears in questions on discourse/element... maybe it deserves a more prominent location?) 14 | % - Writable inputs - https://github.com/common-workflow-language/user_guide/issues/36 15 | % - Creating files at runtime, from **episode 14** of the current User Guide - https://www.commonwl.org/user_guide/14-runtime/index.html 16 | % - There is a whole **episode 15** in the current User Guide about it - https://www.commonwl.org/user_guide/15-staging/index.html 17 | % - DockerRequirement 18 | % - Covered in the **episode 7** of the current User Guide - https://www.commonwl.org/user_guide/07-containers/index.html 19 | % - SchemaDefRequirement and input schemas 20 | % - The **episode 19** from the current User Guide covers it - https://www.commonwl.org/user_guide/19-custom-types/index.html 21 | % - ShellCommandRequirement - https://github.com/common-workflow-language/user_guide/issues/159 22 | % - SoftwareRequirement - From the **20** from the current User Guide - episode https://www.commonwl.org/user_guide/20-software-requirements/index.html 23 | % - MultipleInputFeatureRequirement 24 | % - Also in **episode 24** of the current User Guide - https://www.commonwl.org/user_guide/24_conditional-workflow/index.html 25 | % - SubworkflowFeatureRequirement 26 | % - Also in **episode 22** of the current User Guide - https://www.commonwl.org/user_guide/22-nested-workflows/index.html 27 | % - ScatterFeatureRequirement 28 | % - Also in **episode 23** of the current User Guide - https://www.commonwl.org/user_guide/23-scatter-workflow/index.html 29 | -------------------------------------------------------------------------------- /src/topics/specifying-software-requirements.md: -------------------------------------------------------------------------------- 1 | # Specifying Software Requirements 2 | 3 | Often, tool descriptions will be written for a specific version of a software. To 4 | make it easier for others to use your descriptions, you can include a 5 | [`SoftwareRequirement`](https://w3id.org/cwl/CommandLineTool.html#SoftwareRequirement) field in the `hints` section. 6 | This may also help to avoid confusion about which version of a tool the 7 | description was written for. 8 | 9 | ```{literalinclude} /_includes/cwl/specifying-software-requirements/custom-types.cwl 10 | :language: cwl 11 | ``` 12 | 13 | In this example, the software requirement being described is InterProScan 14 | version 5.21-60. 15 | 16 | ```cwl 17 | hints: 18 | SoftwareRequirement: 19 | packages: 20 | interproscan: 21 | specs: [ "https://identifiers.org/rrid/RRID:SCR_005829" ] 22 | version: [ "5.21-60" ] 23 | ``` 24 | 25 | Depending on your CWL runner, these hints may be used to check 26 | that the required software is installed and available before the job is run. To enable 27 | these checks with the reference implementation, use the [dependency resolvers configuration][dependencies]. 28 | 29 | As well as a version number, a unique resource identifier (URI) for the tool is 30 | given in the form of an [RRID][rrid]. Resources with RRIDs can be looked up in the 31 | [SciCrunch][scicrunch] registry, which provides a portal for finding, tracking, 32 | and referring to scientific resources consistently. If you want to specify a 33 | tool as a [`SoftwareRequirement`](https://w3id.org/cwl/CommandLineTool.html#SoftwareRequirement), search for the tool on SciCrunch and use the 34 | RRID that it has been assigned in the registry. (Follow this [Adding a Resource Tutorial][scicrunch-add-tool] to add a tool to SciCrunch). You can use this RRID to refer 35 | to the tool (via [identifiers.org][identifiers]) in the `specs` field of your 36 | requirement description. Other good choices, in order of preference, are to 37 | include the DOI for the main tool citation and the URL to the tool. 38 | 39 | 40 | [rrid]: https://scicrunch.org/resources/about/resource 41 | [scicrunch]: https://scicrunch.org/ 42 | [dependencies]: https://github.com/common-workflow-language/cwltool#leveraging-softwarerequirements-beta 43 | [identifiers]: https://identifiers.org/ 44 | [scicrunch-add-tool]: https://scicrunch.org/page/tutorials/336 45 | -------------------------------------------------------------------------------- /src/topics/staging-input-files.md: -------------------------------------------------------------------------------- 1 | # Staging Input Files 2 | 3 | Normally, input files are located in a read-only directory separate from 4 | the output directory. This causes problems if the underlying tool expects to 5 | write its output files alongside the input file in the same directory. You use [`InitialWorkDirRequirement`](https://w3id.org/cwl/CommandLineTool.html#InitialWorkDirRequirement) to stage input files into the output directory. 6 | In this example, we use a JavaScript expression to extract the base name of the 7 | input file from its leading directory path. 8 | 9 | ```{literalinclude} /_includes/cwl/staging-input-files/linkfile.cwl 10 | :language: cwl 11 | :caption: "`linkfile.cwl`" 12 | :name: linkfile.cwl 13 | ``` 14 | 15 | ```{literalinclude} /_includes/cwl/staging-input-files/arguments-job.yml 16 | :language: yaml 17 | :caption: "`arguments-job.yml`" 18 | ``` 19 | 20 | Now invoke `cwltool` with the tool description and the input object on the 21 | command line: 22 | 23 | ```{runcmd} cwltool linkfile.cwl arguments-job.yml 24 | :working-directory: src/_includes/cwl/staging-input-files/ 25 | ``` 26 | -------------------------------------------------------------------------------- /src/topics/troubleshooting.md: -------------------------------------------------------------------------------- 1 | # Troubleshooting 2 | 3 | In this section you will find ways to troubleshoot when you have problems executing CWL. 4 | We focus on `cwltool` here but some of these techniques may apply to other CWL Runners. 5 | 6 | ## Run `cwltool` with `cachedir` 7 | 8 | You can use the `--cachedir` option when running a workflow to tell `cwltool` to 9 | cache intermediate files (files that are not input nor output files, but created 10 | while your workflow is running). By default, these files are created in a 11 | temporary directory but writing them to a separate directory makes accessing 12 | them easier. 13 | 14 | In the following example `troubleshooting-wf1.cwl` we have two steps, `step_a` and `step_b`. 15 | The workflow is equivalent to `echo "Hello World" | rev`, which would print the message 16 | "Hello World" reversed, i.e. "dlroW olleH". However, the second step, `step_b`, **has a typo**, 17 | where instead of executing the `rev` command it tries to execute `revv`, which 18 | fails. 19 | 20 | ```{literalinclude} /_includes/cwl/troubleshooting/troubleshooting-wf1.cwl 21 | :language: cwl 22 | :name: "`troubleshooting-wf1.cwl`" 23 | :caption: "`troubleshooting-wf1.cwl`" 24 | :emphasize-lines: 42 25 | ``` 26 | 27 | Let's execute this workflow with `/tmp/cachedir/` as the `--cachedir` value (`cwltool` will 28 | create the directory for you if it does not exist already): 29 | 30 | ```{runcmd} cwltool --cachedir /tmp/cachedir/ troubleshooting-wf1.cwl 31 | :working-directory: src/_includes/cwl/troubleshooting 32 | :emphasize-lines: 13-15, 18-20 33 | ``` 34 | 35 | The workflow is in the `permanentFail` status due to `step_b` failing to execute the 36 | non-existent `revv` command. The `step_a` was executed successfully and its output 37 | has been cached in your `cachedir` location. You can inspect the intermediate files 38 | created: 39 | 40 | ```{runcmd} tree /tmp/cachedir 41 | :emphasize-lines: 4 42 | ``` 43 | 44 | Each workflow step has received a unique ID (the long value that looks like a hash). 45 | The `${HASH}.status` files display the status of each step executed by the workflow. 46 | And the `step_a` output file `stdout.txt` is visible in the output of the command above. 47 | 48 | Now fix the typo so `step_b` executes `rev` (i.e. replace `revv` by `rev` in the 49 | `step_b`). After fixing the typo, when you execute `cwltool` with the same arguments 50 | as the previous time, note that now `cwltool` output contains information about 51 | pre-cached outputs for `step_a`, and about a new cache entry for the output of `step_b`. 52 | Also note that the status of `step_b` is now of success. 53 | 54 | ```{runcmd} cwltool --cachedir /tmp/cachedir/ troubleshooting-wf1-stepb-fixed.cwl 55 | :working-directory: src/_includes/cwl/troubleshooting 56 | :emphasize-lines: 12-16 57 | ``` 58 | 59 | In this example the workflow step `step_a` was not re-evaluated as it had been cached, and 60 | there was no change in its execution or output. Furthermore, `cwltool` was able to recognize 61 | when it had to re-evaluate `step_b` after we fixed the executable name. This technique is 62 | useful for troubleshooting your CWL documents and also as a way to prevent `cwltool` to 63 | re-evaluate steps unnecessarily. 64 | -------------------------------------------------------------------------------- /src/topics/using-containers.md: -------------------------------------------------------------------------------- 1 | # Using Containers 2 | 3 | ## Running Tools Inside Docker 4 | 5 | [Docker][docker] containers simplify software installation by providing a 6 | complete known-good runtime for software and its dependencies. However, 7 | containers are also purposefully isolated from the host system, so in 8 | order to run a tool inside a Docker container there is additional work to 9 | ensure that input files are available inside the container and output 10 | files can be recovered from the container. A CWL runner can perform this work 11 | automatically, allowing you to use Docker to simplify your software 12 | management while avoiding the complexity of invoking and managing Docker 13 | containers. 14 | 15 | One of the responsibilities of the CWL runner is to adjust the paths of 16 | input files to reflect the location where they appear inside the container. 17 | 18 | This example runs a simple Node.js script inside a Docker container which will 19 | then print "Hello World" to the standard output. 20 | 21 | ```{literalinclude} /_includes/cwl/using-containers/docker.cwl 22 | :language: cwl 23 | :caption: "`docker.cwl`" 24 | :name: docker.cwl 25 | ``` 26 | 27 | ```{literalinclude} /_includes/cwl/using-containers/docker-job.yml 28 | :language: yaml 29 | :caption: "`docker-job.yml`" 30 | :name: docker-job.yml 31 | ``` 32 | 33 | Before we run this, let's just break it down and see what some bits do. Most of this 34 | has been explained in previous sections, the only part that is really new is the [`dockerRequirement`](https://w3id.org/cwl/CommandLineTool.html#DockerRequirement) 35 | section. 36 | 37 | ```cwl 38 | baseCommand: node 39 | hints: 40 | DockerRequirement: 41 | dockerPull: node:slim 42 | ``` 43 | 44 | `baseCommand: node` tells CWL that we will be running this command using the Node Js runtime that is meant for Javascript files. We 45 | then need to specify some `hints` for how to find the container we want. In this case we list 46 | just our requirements for the docker container in `DockerRequirements`. The `dockerPull:` 47 | parameter takes the same value that you would pass to a `docker pull` command. That is, 48 | the name of the container image (you can even specify the tag, which is good idea for 49 | best practices when using containers for reproducible research). In this case we have 50 | used a container called `node:slim`. 51 | 52 | Create a Javascript file named "hello.js" and invoke `cwltool` providing the tool description and the 53 | input object on the command line: 54 | 55 | ```{literalinclude} /_includes/cwl/using-containers/hello.js 56 | :language: javascript 57 | :caption: "`hello.js`" 58 | :name: hello.js 59 | ``` 60 | 61 | ```{runcmd} cwltool docker.cwl docker-job.yml 62 | :working-directory: src/_includes/cwl/using-containers/ 63 | ``` 64 | 65 | ```{runcmd} cat output.txt 66 | :working-directory: src/_includes/cwl/using-containers/ 67 | ``` 68 | 69 | Notice the CWL runner has constructed a Docker command line to run the 70 | script. 71 | 72 | In this example, the path to the script `hello.js` is `/home/me/cwl/user_guide/hello.js` 73 | outside the container but `/var/lib/cwl/job369354770_examples/hello.js` inside 74 | the container, as reflected in the invocation of the `node` command. 75 | 76 | [docker]: https://docker.io 77 | -------------------------------------------------------------------------------- /src/tutorials.md: -------------------------------------------------------------------------------- 1 | # Tutorials 2 | 3 | % https://github.com/common-workflow-language/user_guide/issues/160 4 | 5 | This is a list of tutorials provided by the CWL community. Use the `Edit this page` link in the menu if you would like to add another tutorial to the list. 6 | 7 | ## Beginner Tutorials 8 | 9 | - [Introduction to Workflows with Common Workflow Language: For novices.](https://carpentries-incubator.github.io/cwl-novice-tutorial/) 10 | 11 | ## Advanced Tutorials 12 | 13 | - [Typescript in CWL](https://github.com/umccr/cwl-ica/wiki/TypeScript) 14 | 15 | ## Bioinformatics Tutorials 16 | 17 | - [rnaseq with CWL](https://arvados.github.io/rnaseq-cwl-training/) 18 | 19 | % - Running CWL in Production (on Linux, HPC, with containers, k8s, etc.? We can link existing docs) 20 | --------------------------------------------------------------------------------