Skip to content

Transpiler-Mate

Make CWL workflows easier to discover, cite, reuse, and inspect.

Transpiler-Mate is a collection of open-source tools built around Common Workflow Language (CWL). Describe your workflow and its Software Application metadata once, then generate documentation, input templates, citations, research objects, service descriptions, and software bills of materials with independent plugins. These artifacts support FAIR research software practices and supply-chain assessment.

Get started

Use Python 3.10 or newer. Install the runtime and the plugins you need in the same Python environment:

python -m pip install transpiler-mate-runtime ${TM_PLUGIN_1} ... ${TM_PLUGIN_N}
transpiler-mate --help

Installed plugins become subcommands of transpiler-mate. Run transpiler-mate <plugin> --help for their options.

The foundations

The runtime loads CWL documents, prepares a shared context, and discovers installed plugins. A separate API package defines the contracts that let plugins be developed and distributed independently.

Project Role Documentation
transpiler-mate-runtime The transpiler-mate CLI, plugin discovery and execution, source loading, and built-in CWL bundling. Docs
transpiler-mate-api Shared plugin contracts and models for plugin authors and runtime implementations. Docs
cwl-loader Python utilities for loading, normalizing, and serializing CWL documents. Docs

What can you do with Transpiler-Mate?

Inspect the software supply chain

Task Project What it provides Documentation
Inventory container dependencies cwl2sbom Local Trivy CycloneDX SBOMs, workflow inventory, image identity lock, and coverage report. Docs

With Trivy installed, generate SBOMs for the containers referenced by a selected workflow.

cwl2sbom follows nested workflows, inspects declared images with Trivy, and records image identities and coverage gaps. It produces local artifacts for your pipeline: use ORAS for OCI publication and attachment, then Trivy for downstream vulnerability and license assessment of the exported image SBOMs. Offline vulnerability scanning requires a provisioned database.

See the offline Trivy scanning guide for database preparation, per-image reports, and policy checks.

Analysis and reporting

Task Project What it provides Documentation
Compare CWL releases cwl-baseline-plugin An explainable JSON report comparing resolved CWL releases, with a minimum SemVer increment. Docs

Documentation generation

Task Project What it provides Documentation
Document workflows cwl2markdown Markdown pages with workflow details and software metadata. Docs
Visualize workflows cwl2puml PlantUML diagrams, with optional PNG or SVG rendering. Docs
Explore workflows interactively cwl2webgl A self-contained, offline HTML explorer for workflow dependencies, nested workflows, ports, and step bindings. Docs

With a CWL document containing the required Schema.org SoftwareApplication metadata, generate documentation and diagrams.

Formats conversion

Task Project What it provides Documentation
Describe processing services cwl2ogc OGC API – Processes input/output descriptors and JSON Schemas. Docs

Support FAIR research software

Task Project What it provides Documentation
Prepare publication metadata cwl2datacite DataCite metadata JSON for workflow software. Docs
Generate citations cwl2citation CFF, BibTeX, RIS, CSL-JSON, and styled text, with configurable CSL styles. Docs
Publish research software invenio-publish Records, attachments, DOIs, and new versions in InvenioRDM or Zenodo. Docs
Package research objects cwl2ro-crate Workflow RO-Crates, or Provenance Run Crates from existing CWLProv execution records. Docs
Describe catalog records cwl2ogcrecords CWL as OGC API – Records. Docs
Export software metadata cwl2codemeta CodeMeta JSON-LD derived from embedded Schema.org metadata. Docs

Use CodeMeta, DataCite, and OGC Records exports to describe workflows for discovery; provide citations with cwl2citation; and package workflows or recorded executions with cwl2ro-crate. invenio-publish handles publication to InvenioRDM or Zenodo.

The cwl2ro-crate distribution registers the command cwl2rocrate. Its optional --run argument accepts an existing CWLProv directory to package execution provenance.

Software generation

Task Project What it provides Documentation
Dereference a CWL document and create a uber-CWL bundle A bundled, dereferenced CWL document Docs
Generate command-line interfaces cwl2click Python Click CLI scaffolding from CWL command-line tools. Docs
Annotate container images cwl2oci OCI image annotation JSON with software and CWL process metadata. Docs
Prepare workflow inputs cwl2inputs YAML input templates generated with cwltool for a selected CWL process. Docs
Compose Earth observation workflows eoap-cwlwrap Type-safe composition of CWL steps with stage-in and stage-out patterns, packed into a self-contained CWL document. Docs

Validate workflow inputs

Validate workflow inputs before execution:

Project Role Documentation
assertions-mate Input validation using JSON Schema, Rego policies, and CQL2 assertions embedded as CWL hints. Docs

Plugins batch execution

Warning

Available since version 1.1.0 of the transpiler-mate-runtime

The batch plugin runs multiple plugin executions sequentially with the same resolved CWL context. An execution plan in YAML specifies the plugins and their inputs.

Create tmom.yaml in your working directory:

cwl2sbom:
- platform: 'linux/amd64'
  output: 'build/sbom'

cwl2markdown:
- output: 'build/docs'

cwl2puml:
- output: 'build/diagrams'

cwl2webgl:
- output: 'build/explorers'

baseline:
- previous: 'oci://mycompany.org/released.cwl'
  output: 'baseline.json'

Then run:

transpiler-mate batch workflow.cwl#main

Build a plugin

Start with the transpiler-mate-plugin-project-template, a Copier template with Python packaging, tests, documentation, and CI. Implement the plugin API and register your package in the transpiler_mate.plugins entry-point group so the runtime can discover it.

Get involved

Bug reports, examples, documentation improvements, and new plugins are welcome. Open an issue or pull request in the relevant repository, and follow its contribution and development instructions.

This .github repository hosts the organization's landing-page and profile content.

Pinned Loading

  1. cwl2ogc cwl2ogc Public

    Convert CWL inputs and outputs into OGC API – Processes descriptors and JSON Schemas with Transpiler-Mate.

    Python 8 2

  2. cwl2click cwl2click Public

    Boostrap a Python CLI using click from a CWL CommandLineTool

    Python 7 1

  3. cwl2puml cwl2puml Public

    Generate PlantUML diagrams from CWL workflows, with optional PNG and SVG rendering, using Transpiler-Mate.

    Python 6

  4. cwl2codemeta cwl2codemeta Public

    Convert Schema.org metadata embedded in CWL into CodeMeta JSON-LD with Transpiler-Mate.

    Python 3

  5. transpiler-mate-api transpiler-mate-api Public

    Shared Python contracts, metadata models, and registration interfaces for Transpiler-Mate plugins.

    Python 5

  6. transpiler-mate-runtime transpiler-mate-runtime Public

    Discover and run Transpiler-Mate plugins through a unified CLI for loading, bundling, and transforming CWL workflows.

    Python 3

Repositories

Showing 10 of 21 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…