Skip to content

Transpiler-Mate

Turn CWL workflows into documentation, diagrams, metadata, and service descriptions.

Transpiler-Mate is a collection of open-source tools built around Common Workflow Language (CWL). Describe your workflow and its software metadata once, then use independent plugins to generate the artifacts you need to document, share, and publish it.

Explore the repositories · Get started · Build a plugin

What can you do with Transpiler-Mate?

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
Generate command-line interfaces cwl2click Python Click CLI scaffolding from CWL command-line tools. Docs
Describe processing services cwl2ogc OGC API – Processes input/output descriptors and JSON Schemas. Docs
Export software metadata cwl2codemeta CodeMeta JSON-LD derived from embedded Schema.org metadata. Docs
Prepare citation metadata cwl2datacite DataCite metadata JSON for workflow software. Docs
Annotate container images cwl2oci OCI image annotation JSON with software and CWL process metadata. Docs
Publish research software invenio-publish Records, attachments, DOIs, and new versions in InvenioRDM or Zenodo. Docs

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 cwl2markdown cwl2puml
transpiler-mate --help

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

transpiler-mate cwl2markdown --output build/docs workflow.cwl
transpiler-mate cwl2puml --output build/diagrams workflow.cwl

Installed plugins become subcommands of transpiler-mate. Run transpiler-mate <plugin> --help for their options. See the cwl2markdown documentation for a complete metadata example, or explore the runtime documentation for loading and bundling CWL documents.

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

Author and validate

These companion tools help prepare workflows before conversion or execution:

Project Role Documentation
cwl-metadata-editor A VS Code extension for editing Schema.org metadata directly in CWL files while preserving surrounding text and formatting. Docs
assertions-mate Input validation using JSON Schema, Rego policies, and CQL2 assertions embedded as CWL hints. Docs

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

    CWL Worflow inputs/outputs to OGC API Processes inputs/outputs

    Python 5 2

  2. cwl2click cwl2click Public

    Boostrap a Python CLI using click from a CWL CommandLineTool

    Python 5 1

  3. cwl2puml cwl2puml Public

    CWL Worflows processor to generate PlantUML diagrams

    Python 3

  4. cwl2codemeta cwl2codemeta Public

    Python 1

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

    Python 1

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

    Python 1

Repositories

Showing 10 of 15 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…