Skip to main content

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. Licensed under Apache 2.0.

Metadata

Release files for cwl2ro-crate 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cwl2ro-crate 0.1.0
File Size Uploaded
cwl2ro_crate-0.1.0.tar.gz 30.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cwl2ro-crate 0.1.0
File Interpreter ABI Platform
cwl2ro_crate-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 59.1 kB

Release files / cwl2ro_crate-0.1.0.tar.gz

Download URL cwl2ro_crate-0.1.0.tar.gz
Size 30.1 kB
Tags Source
SHA-256 checksum
How to use checksums
17fca7224145e2f98a402123ecc6f711fa1cdc9487dfaf324ae75c1aabdd4eed
BLAKE2b-256 checksum
How to use checksums
9f26088f1b94928de8bc417a0998e10209c32daded92f6d74b8e7bdf42adab95
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 18, 2026.

Transparency log

Release files / cwl2ro_crate-0.1.0-py3-none-any.whl

Download URL cwl2ro_crate-0.1.0-py3-none-any.whl
Size 29.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
df8a5e94206d8baba5e3d824277a7d54e4a2448891bdbe7974390fd3e12e87fe
BLAKE2b-256 checksum
How to use checksums
b618f4e32c458e5308ce49830d660f09e4b9199540e367ef1e0af811b1140bd9
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 18, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page