{"id":23228991,"url":"https://github.com/common-workflow-language/cwlprov-py","last_synced_at":"2026-01-29T13:01:26.927Z","repository":{"id":33193548,"uuid":"148144870","full_name":"common-workflow-language/cwlprov-py","owner":"common-workflow-language","description":"cwlprov: Command line tool and Python API to explore Research Objects containing provenance of Common Workflow Language executions","archived":false,"fork":false,"pushed_at":"2025-12-15T20:37:40.000Z","size":443,"stargazers_count":4,"open_issues_count":2,"forks_count":3,"subscribers_count":36,"default_branch":"main","last_synced_at":"2026-01-27T00:02:19.993Z","etag":null,"topics":["bagit","cwl","prov","provenance","python","research-object"],"latest_commit_sha":null,"homepage":"https://w3id.org/cwl/prov/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/common-workflow-language.png","metadata":{"funding":{"custom":["https://www.commonwl.org/donate/","https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=Z55VS5LBBSZTJ"]},"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-09-10T11:27:31.000Z","updated_at":"2026-01-20T02:10:42.000Z","dependencies_parsed_at":"2025-12-27T02:03:36.001Z","dependency_job_id":null,"html_url":"https://github.com/common-workflow-language/cwlprov-py","commit_stats":{"total_commits":114,"total_committers":8,"mean_commits":14.25,"dds":"0.14035087719298245","last_synced_commit":"9b719c687484d3f888eb5f807ec3270e9081078a"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/common-workflow-language/cwlprov-py","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/common-workflow-language%2Fcwlprov-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/common-workflow-language%2Fcwlprov-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/common-workflow-language%2Fcwlprov-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/common-workflow-language%2Fcwlprov-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/common-workflow-language","download_url":"https://codeload.github.com/common-workflow-language/cwlprov-py/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/common-workflow-language%2Fcwlprov-py/sbom","scorecard":{"id":300983,"data":{"date":"2025-08-11","repo":{"name":"github.com/common-workflow-language/cwlprov-py","commit":"9b719c687484d3f888eb5f807ec3270e9081078a"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.2,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":1,"reason":"Found 2/17 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci-tests.yml:1","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: test/nested-cwlprov-0.3.0/data/4f/4f9d488f7ab60e8c705d07c5ceb577f40af81bfb:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-tests.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/common-workflow-language/cwlprov-py/ci-tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-tests.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/common-workflow-language/cwlprov-py/ci-tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-tests.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/common-workflow-language/cwlprov-py/ci-tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-tests.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/common-workflow-language/cwlprov-py/ci-tests.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-tests.yml:61: update your workflow using https://app.stepsecurity.io/secureworkflow/common-workflow-language/cwlprov-py/ci-tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-tests.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/common-workflow-language/cwlprov-py/ci-tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-tests.yml:85: update your workflow using https://app.stepsecurity.io/secureworkflow/common-workflow-language/cwlprov-py/ci-tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-tests.yml:90: update your workflow using https://app.stepsecurity.io/secureworkflow/common-workflow-language/cwlprov-py/ci-tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/common-workflow-language/cwlprov-py/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/common-workflow-language/cwlprov-py/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/common-workflow-language/cwlprov-py/codeql-analysis.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/ci-tests.yml:46","Warn: pipCommand not pinned by hash: .github/workflows/ci-tests.yml:47","Warn: pipCommand not pinned by hash: .github/workflows/ci-tests.yml:97","Warn: pipCommand not pinned by hash: .github/workflows/ci-tests.yml:98","Info:   0 out of  10 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   4 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Signed-Releases","score":8,"reason":"1 out of the last 1 releases have a total of 1 signed artifacts.","details":["Info: signed release artifact: cwlprov-0.1.1-py3-none-any.whl.asc: https://github.com/common-workflow-language/cwlprov-py/releases/tag/0.1.1","Warn: release artifact 0.1.1 does not have provenance: https://api.github.com/repos/common-workflow-language/cwlprov-py/releases/13651664"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/common-workflow-language/.github/SECURITY.md:1","Info: Found linked content: github.com/common-workflow-language/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/common-workflow-language/.github/SECURITY.md:1","Info: Found text in security policy: github.com/common-workflow-language/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 0 commits out of 17 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T20:37:00.842Z","repository_id":33193548,"created_at":"2025-08-17T20:37:00.842Z","updated_at":"2025-08-17T20:37:00.842Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28877887,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T10:31:27.438Z","status":"ssl_error","status_checked_at":"2026-01-29T10:31:01.017Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bagit","cwl","prov","provenance","python","research-object"],"created_at":"2024-12-19T01:15:49.688Z","updated_at":"2026-01-29T13:01:26.886Z","avatar_url":"https://github.com/common-workflow-language.png","language":"Python","funding_links":["https://www.commonwl.org/donate/","https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=Z55VS5LBBSZTJ"],"categories":[],"sub_categories":[],"readme":"# CWLProv Python tool\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1471375.svg)](https://doi.org/10.5281/zenodo.1471375)\n\nThe `cwlprov` Python tool is a command line interface to validate and inspect \n[CWLProv](https://w3id.org/cwl/prov) Research Objects that capture workflow runs,\ntypically executed in a [Common Workflow Language](https://www.commonwl.org/)\nimplementation.\n\n## Installation\n\nYou'll need [Python 3](https://www.python.org/downloads/).\n\nTo install from [pip](https://pypi.org/project/cwlprov/) try:\n\n    pip3 install cwlprov\n\nIf you would rather install from the checkout of this source code:\n\n    pip3 install .\n\nIf you would like to use the `cwltool rerun` feature you may also need:\n\n    pip3 install cwlref-runner \n\n\n## Development\n\nTo develop cwlprov-py it is recommended to set up a new [virtualenv](https://docs.python.org/3/library/venv.html):\n\n    virtualenv -p python3 venv\n\nTo activate the environment and install your development version of cwlprov:\n\n    . venv3/bin/activate\n    pip3 install .\n\n\n## Usage\n\nUse `cwlprov --help`  to see all options. For instance `cwlprov validate` will validate the folder is valid according to CWLProv.\n\n    $ cwlprov --help\n    usage: cwlprov [-h] [--version] [--directory DIRECTORY] [--relative]\n                [--absolute] [--output OUTPUT] [--verbose] [--quiet] [--hints]\n                [--no-hints]\n                {validate,info,who,prov,inputs,outputs,run,runs,rerun,derived,runtimes}\n                ...\n\n    cwlprov explores Research Objects containing provenance of Common Workflow\n    Language executions. \u003chttps://w3id.org/cwl/prov/\u003e\n\n    optional arguments:\n    -h, --help            show this help message and exit\n    --version             show program's version number and exit\n    --directory DIRECTORY, -d DIRECTORY\n                            Path to CWLProv Research Object (default: .)\n    --relative            Output paths relative to current directory (default if\n                            -d is missing or relative)\n    --absolute            Output absolute paths (default if -d is absolute)\n    --output OUTPUT, -o OUTPUT\n                            File to write output to (default: stdout)\n    --verbose, -v         Verbose logging (repeat for more verbose)\n    --quiet, -q           No logging or hints\n    --hints               Show hints on cwlprov usage\n    --no-hints            Do not show hints\n\n    commands:\n    {validate,info,who,prov,inputs,outputs,run,runs,rerun,derived,runtimes}\n        validate            validate the CWLProv Research Object\n        info                show research object metadata\n        who                 show who ran the workflow\n        prov                export workflow execution provenance in PROV format\n        inputs              list workflow/step input files/values\n        outputs             list workflow/step output files/values\n        run                 show workflow execution log\n        runs                List all workflow executions in RO\n        rerun               Rerun a workflow or step\n        derived             List what was derived from a data item, based on\n                            activity usage/generation\n        runtimes            Calculate average step execution runtimes\n\nThe [test/](test/) folder contains some examples of workflow runs for different CWLProv profiles.\n\nAll commands for `cwlprov` will attempt to detect the CWLProv research object from the current directory, alternatively take the `--directory` option to specify the root folder.\n\nThe `--quiet` option may be used in scripts for less verbose outputs. The `--verbose` option has the opposite affect to enable logging. For debug logging, use `-vv` or `--verbose --verbose`.\n\nNote that the general arguments listed above must be provided *before* the _command_, e.g. \n\n    cwlprov --quiet --directory /tmp/1 validate\n\nMany of the commands accept additional arguments, which can be accessed by `cwlprov COMMAND --help`, e.g.:\n\n    $ cwlprov run --help\n    usage: cwlprov run [-h] [--step STEP] [--steps] [--no-steps] [--start]\n                    [--no-start] [--end] [--no-end] [--duration]\n                    [--no-duration] [--labels] [--no-labels] [--inputs]\n                    [--outputs]\n                    [id]\n\n    positional arguments:\n    id                    workflow run UUID\n\n    optional arguments:\n    -h, --help            show this help message and exit\n    --step STEP, -s STEP  Show only step with given UUID\n    --steps               List steps of workflow\n    --no-steps            Do not list steps\n    --start               Show start timestamps (default)\n    --no-start, -S        Do not show start timestamps\n    --end, -e             Show end timestamps\n    --no-end              Do not show end timestamps\n    --duration            Show step duration (default)\n    --no-duration, -D     Do not show step duration\n    --labels              Show activity labels\n    --no-labels, -L       Do not show activity labels\n    --inputs, -i          Show inputs\n    --outputs, -o         Show outputs\n\n### Validation\n\nRunning `cwlprov` with no commands will return with status 0 if a CWLProv folder structure is detected:\n\n    $ cd test/revsort-cwlprov-0.4.0\n    test/revsort-cwlprov-0.4.0$ cwlprov \n    Detected CWLProv Research Object: /home/stain/src/cwlprov-py/test/revsort-cwlprov-0.4.0\n\n    $ cd /tmp\n    /tmp$ cwlprov\n    ERROR:cwlprov.tool:Could not find bagit.txt, try cwlprov -d mybag/\n\nIf a cwlprov is not detected or invalid, an error code is raised.\n\n    cwlprov \u0026\u0026 echo Do cwlprov-stuff\n    ERROR:cwlprov.tool:Could not find bagit.txt, try cwlprov -d mybag/\n\nCombined with the `--quiet` option `cwlprov` can be useful to find the root of a CWLProv folder:\n\n    test/revsort-cwlprov-0.4.0/metadata/provenance$ cwlprov -q\n    /home/stain/src/cwlprov-py/test/revsort-cwlprov-0.4.0\n\nAll commands of `cwlprov` will by default perform a _quick validation_, which conforms all files are present in the correct file size. For instance, if we remove a file:\n    \n    test/revsort-cwlprov-0.4.0$ rm data/32/327fc7aedf4f6b69a42a7c8b808dc5a7aff61376 \n\n    test/revsort-cwlprov-0.4.0$ cwlprov \n    ERROR:cwlprov.tool:BagIt validation failed for: /home/stain/src/cwlprov-py/test/revsort-cwlprov-0.4.0: Payload-Oxum validation failed. Expected 3 files and 3333 bytes but found 2 files and 2222 bytes\n\nTo perform full validation, use `cwlprov validate`:\n\n    test/revsort-cwlprov-0.4.0$ cwlprov validate \n    WARNING:bdbag.bdbagit:data/32/327fc7aedf4f6b69a42a7c8b808dc5a7aff61376 exists in manifest but was not found on filesystem\n    ERROR:cwlprov.tool:BagIt validation failed for: /home/stain/src/cwlprov-py/test/revsort-cwlprov-0.4.0: Bag validation failed: data/32/327fc7aedf4f6b69a42a7c8b808dc5a7aff61376 exists in manifest but was not found on filesystem\n\n    test/revsort-cwlprov-0.4.0$ git checkout . \n\n    test/revsort-cwlprov-0.4.0$ cwlprov validate\n    Valid CWLProv RO: .\n\nUnlike the quick validation, `cwlprov validate` will confirm checksums on all files, and thus detect byte-level changes. For instance, let's pretend `I` has been replaced with lower case `i` in a data file:\n\n    test/revsort-cwlprov-0.4.0$ sed -i 's/I/i/g' data/32/327fc7aedf4f6b69a42a7c8b808dc5a7aff61376\n    test/revsort-cwlprov-0.4.0$ cwlprov \n    Detected CWLProv Research Object: /home/stain/src/cwlprov-py/test/revsort-cwlprov-0.4.0\n\n    test/revsort-cwlprov-0.4.0$ cwlprov validate\n    WARNING:bdbag.bdbagit:data/32/327fc7aedf4f6b69a42a7c8b808dc5a7aff61376 sha1 validation failed: expected=\"327fc7aedf4f6b69a42a7c8b808dc5a7aff61376\" found=\"60c41d3758bc8b03e78db07bc0f17d1804d2662d\"\n    ERROR:cwlprov.tool:BagIt validation failed for: /home/stain/src/cwlprov-py/test/revsort-cwlprov-0.4.0: Bag validation failed: data/32/327fc7aedf4f6b69a42a7c8b808dc5a7aff61376 sha1 validation failed: expected=\"327fc7aedf4f6b69a42a7c8b808dc5a7aff61376\" found=\"60c41d3758bc8b03e78db07bc0f17d1804d2662d\"\n\n### Research Object information\n\nThe `cwlprov info` command gives high-level information about the research object and its identifiers.\n\n    test/revsort-cwlprov-0.4.0$ cwlprov info\n    Research Object of CWL workflow run\n    Research Object ID: arcp://uuid,d47d3d43-4830-44f0-aa32-4cda74849c63/\n    Profile: https://w3id.org/cwl/prov/0.4.0\n    Workflow run ID: urn:uuid:d47d3d43-4830-44f0-aa32-4cda74849c63\n    Packaged: 2018-08-21\n\nThe `Profile` indicates the version of the CWLProv the research object implements, \nwhich determine which features of a workflow run is represented.\n\nNote that a warning will be printed if an unknown CWLProv version is detected:\n\n    $ cwlprov\n    WARNING:cwlprov.tool:Unsupported CWLProv version: {'https://w3id.org/cwl/prov/0.8.0'}\n    Supported profiles:\n    https://w3id.org/cwl/prov/0.6.0\n    https://w3id.org/cwl/prov/0.5.0\n    https://w3id.org/cwl/prov/0.4.0\n    https://w3id.org/cwl/prov/0.3.0\n\nThis typically means that cwlprov-py is outdated, although that is normally harmless. Try `pip install --upgrade cwlprov` \n\nThe `cwlprov who` command will try to determine the user that ran the workflow.\n\n    $ cwlprov who\n    Packaged By: cwltool 1.0.20180925133620 \u003curn:uuid:d9c16ea5-c3fd-4c56-b125-f3a5207e6c38\u003e\n    Executed By: Stian Soiland-Reyes \u003chttps://orcid.org/0000-0001-9842-9718\u003e\n\n_Note that for privacy concerns, CWL executors like [cwltool](https://github.com/common-workflow-language/cwltool)\nwould not log such user information unless this has been enabled with options like `--orcid` `--full-name` or `--enable-user-provenance`._\n\n### Workflow run\n\nTo list the step executions of a workflow use `cwlprov run`:\n\n    test/revsort-cwlprov-0.4.0$ cwlprov run\n    2018-08-21 17:26:24.467844 Flow d47d3d43-4830-44f0-aa32-4cda74849c63 [ Run of workflow/packed.cwl#main \n    2018-08-21 17:26:24.530884 Step 6f501717-0c97-492e-b18a-10bc096f1797   Run of workflow/packed.cwl#main/rev  (0:00:01.122498)\n    2018-08-21 17:26:25.656084 Step e7c8b2c0-dee6-4c61-b674-f0807cb47344   Run of workflow/packed.cwl#main/sorted  (0:00:01.087999)\n    2018-08-21 17:26:26.752493 Flow d47d3d43-4830-44f0-aa32-4cda74849c63 ] Run of workflow/packed.cwl#main  (0:00:02.284649)\n    Legend:\n    [ Workflow start\n    ] Workflow end\n\nThe listing can be customized, see `cwlprov run --help` for details. For example:\n\n    test/revsort-cwlprov-0.4.0$ cwlprov --no-hints run --no-labels --start --end --no-duration \n    2018-08-21 17:26:24.467844                            Flow d47d3d43-4830-44f0-aa32-4cda74849c63 [\n    2018-08-21 17:26:24.530884 2018-08-21 17:26:25.653382 Step 6f501717-0c97-492e-b18a-10bc096f1797  \n    2018-08-21 17:26:25.656084 2018-08-21 17:26:26.744083 Step e7c8b2c0-dee6-4c61-b674-f0807cb47344  \n                               2018-08-21 17:26:26.752493 Flow d47d3d43-4830-44f0-aa32-4cda74849c63 ]\n\n### Nested workflows\n\nNested workflows, steps that themselves are workflows, are indicated in `cwlprov run` with a `*`:\n\n    (venv3) stain@biggie:~/src/cwlprov-py/test/nested-cwlprov-0.3.0$ cwlprov run\n    2018-08-08 22:44:06.573330 Flow 39408a40-c1c8-4852-9747-87249425be1e [ Run of workflow/packed.cwl#main \n    2018-08-08 22:44:06.691722 Step 4f082fb6-3e4d-4a21-82e3-c685ce3deb58   Run of workflow/packed.cwl#main/create-tar  (0:00:00.010133)\n    2018-08-08 22:44:06.702976 Step 0cceeaf6-4109-4f08-940b-f06ac959944a * Run of workflow/packed.cwl#main/compile  (unknown duration)\n    2018-08-08 22:44:12.680097 Flow 39408a40-c1c8-4852-9747-87249425be1e ] Run of workflow/packed.cwl#main  (0:00:06.106767)\n    Legend:\n    [ Workflow start\n    * Nested provenance, use UUID to explore: cwlprov run 0cceeaf6-4109-4f08-940b-f06ac959944a\n    ] Workflow end\n\n    (venv3) stain@biggie:~/src/cwlprov-py/test/nested-cwlprov-0.3.0$ cwlprov run 0cceeaf6-4109-4f08-940b-f06ac959944a\n    2018-08-08 22:44:06.607210 Flow 0cceeaf6-4109-4f08-940b-f06ac959944a [ Run of workflow/packed.cwl#main \n    2018-08-08 22:44:06.707070 Step 83752ab4-8227-4d4a-8baa-78376df34aed   Run of workflow/packed.cwl#main/untar  (0:00:00.008149)\n    2018-08-08 22:44:06.718554 Step f56d8478-a190-4251-84d9-7f69fe0f6f8b   Run of workflow/packed.cwl#main/argument  (0:00:00.532052)\n    2018-08-08 22:44:07.251588 Flow 0cceeaf6-4109-4f08-940b-f06ac959944a ] Run of workflow/packed.cwl#main  (0:00:00.644378)\n    Legend:\n    [ Workflow start\n    ] Workflow end\n\n_Note that there is a bug in CWLProv 0.3.0 logging shown above; steps of nested workflows are misleadingly labeled under `#main`_\n\nYou can list all workflow runs (including nested workflow runs) with `cwlprov runs`:\n\n    test/nested-cwlprov-0.3.0$ cwlprov runs\n    39408a40-c1c8-4852-9747-87249425be1e * Run of workflow/packed.cwl#main\n    0cceeaf6-4109-4f08-940b-f06ac959944a   Run of workflow/packed.cwl#main\n    Legend:\n    * master workflow\n\nTo explore the nested workflow run with other commands you may have to provide the run UUID with `--run` argument, e.g. \n\n    test/nested-cwlprov-0.3.0$ cwlprov outputs --format=files --run 0cceeaf6-4109-4f08-940b-f06ac959944a 83752ab4-8227-4d4a-8baa-78376df34aed\n    Output example_out:\n    data/93/93035905e94e150874f5a881d39f3c5c6378dd38\n\n\n\n## License\n\nThis repository is distributed under [Apache License, version 2.0](https://www.apache.org/licenses/LICENSE-2.0) \n\nSee the file [LICENSE.txt](LICENSE.txt) for details, and [NOTICE](NOTICE) for required notices.\n\nSPDX-License-Identifier: Apache-2.0\n\n## Contributing\n\ncwlprov.py is maintained at https://github.com/common-workflow-language/cwlprov-py/ by the [Common Workflow Language](https://www.commonwl.org/) project.\n\nFeel free to raise an\n[issue](https://github.com/common-workflow-language/cwlprov-py/issues) or a\n[pull request](https://github.com/common-workflow-language/cwlprov-py/pulls) to\ncontribute to CWLProv. Contributions are assumed to be covered by \n[section 5 of the Apache License](https://www.apache.org/licenses/LICENSE-2.0#contributions).\n\nFor an informal CWLProv discussion with other developers, join the (relatively\nquiet) Gitter room\n[common-workflow-language/cwlprov](https://gitter.im/common-workflow-language/cwlprov),\nor the (more busy)\n[common-workflow-language/common-workflow-language](https://gitter.im/common-workflow-language/common-workflow-language).\n\n\n### Code of Conduct\n\nThe CWL Project is dedicated to providing a harassment-free experience for\neveryone, regardless of gender, gender identity and expression, sexual\norientation, disability, physical appearance, body size, age, race, or\nreligion. We do not tolerate harassment of participants in any form. This code\nof conduct applies to all CWL Project spaces, including the Google Group, the\nGitter chat room, the Google Hangouts chats, both online and off. Anyone who\nviolates this code of conduct may be sanctioned or expelled from these spaces\nat the discretion of the leadership team.\n\nFor more details, see our \n[Code of Conduct](https://github.com/common-workflow-language/common-workflow-language/blob/master/CODE_OF_CONDUCT.md).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommon-workflow-language%2Fcwlprov-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcommon-workflow-language%2Fcwlprov-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommon-workflow-language%2Fcwlprov-py/lists"}