CWL 2 RO-Crate
Package a selected CWL workflow as a Workflow RO-Crate, or provide a CWLProv execution directory to create a Provenance Run Crate. The plugin runs through Transpiler-Mate and never executes the supplied workflow.
Install
From this repository, using Python 3.10 or newer:
python -m pip install . transpiler-mate-runtime
transpiler-mate cwl2rocrate --help
Distribution: cwl2ro-crate; Python package: cwl2ro_crate; plugin command:
cwl2rocrate. There is no standalone executable.
Package a workflow
transpiler-mate cwl2rocrate --output build/crate 'workflow.cwl#main'
The runtime requires Schema.org SoftwareApplication metadata in the source.
Select an actual Workflow with #<process-id>. The output contains
ro-crate-metadata.json and workflow.cwl, packed with the selected entrypoint
renamed to #main and its referenced tools/subworkflows included.
Additional files and a ZIP are optional:
transpiler-mate cwl2rocrate --output build/crate --zip \
--attach inputs.yaml --attach diagram.svg 'workflow.cwl#main'
Attachments are copied under attachments/. --zip additionally writes
build/crate.zip with crate files at the archive root.
Package an execution
First capture provenance during an actual execution, using your normal runner settings:
cwltool --provenance run.provenance 'workflow.cwl#main' inputs.yaml
transpiler-mate cwl2rocrate --run run.provenance \
--output build/run-crate --zip 'workflow.cwl#main'
--run accepts a local CWLProv directory, not cwltool output JSON. The plugin
verifies the BagIt checksums and conservatively compares the selected executable
workflow with workflow/packed.cwl before converting the run. Execution records
and recorded payloads come from CWLProv; the supplied software metadata fills
missing descriptive fields. It does not invent execution status or timestamps.
Profiles and validation
- Base: RO-Crate 1.1.
- Workflow mode: Workflow RO-Crate 1.0.
- Run mode: Process, Workflow, and Provenance Run Crate 0.5, plus Workflow RO-Crate 1.0.
Every result must pass the bundled roc-validator profiles at REQUIRED level
before it reaches the destination. This is not a claim that every recommended
or optional requirement is met. Validation resolves official JSON-LD contexts
and may require network access; its cache follows the validator's defaults.
Existing destinations (including empty directories and symlinks) are rejected. Generation and validation use a temporary staging directory; failures clean it up. The final copy is not an atomic directory transaction, but ordinary copy/ZIP failures roll back files created by the plugin.
Container images and external data referenced by the CWL are not downloaded. Run conversion copies the data included in the CWLProv bag, which can be large. Unsupported CWLProv structures or uncertain workflow matches fail explicitly.
Development
Bootstrapped with transpiler-mate-plugin-project-template. See CONTRIBUTING.md, the tutorial, and architecture.
The Apache-licensed runcrate conversion subset is included to avoid its released
package's incompatible cwl-utils==0.40 pin. See THIRD_PARTY.md.
License
Metadata
Release files for cwl2ro-crate 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cwl2ro_crate-0.1.1.tar.gz | 30.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cwl2ro_crate-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 58.7 kB
Release files / cwl2ro_crate-0.1.1.tar.gz
| Download URL | cwl2ro_crate-0.1.1.tar.gz |
|---|---|
| Size | 30.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
84c18b846309f3ab98ce294656d33b34fbe548ae1154d2b097dc71f3f262f082
|
|
BLAKE2b-256 checksum How to use checksums |
1ddb1fd3d0fb23f047010d5ddb019bb853f79341387f000774b9b52d81061e01
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / cwl2ro_crate-0.1.1-py3-none-any.whl
| Download URL | cwl2ro_crate-0.1.1-py3-none-any.whl |
|---|---|
| Size | 28.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
102ff0248972e3a3f2abe7e0c6f7d23acaca58d56d752096739dafc8c8dbe968
|
|
BLAKE2b-256 checksum How to use checksums |
e5adf699b1e3d3d3fda48d81f62117e66f1b96d49788b87890c50aeb418879f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency log