cwl-upgrader
Upgrade a CWL tool or workflow document from one version to another
What it is and what it does
cwl-upgrader is a specialized tool for migrating Common Workflow Language documents to version 1.2 from earlier versions (draft-3, v1.0, v1.1). It operates as both a command-line utility and a Python library, reading older CWL documents and transforming them to the v1.2 specification. The package does not validate the correctness of input documents—that responsibility falls to external tools like cwltool—but focuses solely on the mechanical upgrade process.
The package depends on ruamel.yaml for YAML parsing and schema_salad for schema handling, both lightweight and well-maintained dependencies. It is actively maintained, supports modern Python versions (3.10–3.14), and carries an Apache 2.0 license. With low install friction and no known security vulnerabilities, it integrates cleanly into workflows that need to modernize legacy CWL documents as part of a larger pipeline or automation system.
Use it for:
- Migrate a collection of older CWL tool definitions to v1.2 before deploying to a modern workflow execution platform.
- Automate bulk upgrades of draft-3 or v1.0 workflows in a CI/CD pipeline as part of a codebase modernization effort.
- Convert inherited CWL documents from external sources to a standardized v1.2 format for internal consistency.
- Programmatically upgrade workflow documents within a Python application that manages or orchestrates CWL execution.
- Prepare legacy workflows for use with current CWL reference implementations or execution engines that require v1.2.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Upgrades Common Workflow Language documents from draft-3, v1.0, and v1.1 to v1.2 via command-line tool or programmatic API.
Yes. The package is actively maintained, has no known vulnerabilities, installs with minimal friction, and solves a specific, well-defined problem for anyone working with older Common Workflow Language documents. Install it if you need to upgrade CWL documents from draft-3, v1.0, or v1.1 to v1.2; skip it if you work only with v1.2 or later documents.
Install
cwl-upgrader on PyPI
pip
pip install cwl-upgraderuv
uv add cwl-upgraderpoetry
poetry add cwl-upgraderInstalling cwl-upgrader
Before you install
Low friction: pure Python wheel with only two runtime dependencies (ruamel.yaml and schema_salad). Active maintenance with recent releases; last commit 2026-08-03. Supports Python 3.10 through 3.14.
License in practice
Apache 2.0 permissive license allows commercial and private use with minimal restrictions; suitable for most integration scenarios.
Quickstart
pip install cwl-upgrader
from cwl_upgrader import upgrade_document
upgraded = upgrade_document('path/to/old-workflow.cwl')
# Or via command line:
# cwl-upgrader path-to-cwl-document
Requires Python 3.10 or later.
Verify before relying
- Whether the package handles all edge cases in draft-3, v1.0, and v1.1 documents or has known limitations.
- Performance characteristics when upgrading large or complex workflow documents.
- Availability and completeness of programmatic API documentation beyond command-line usage.
Package facts
| License | Apache 2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — ruamel.yaml, schema_salad |
| Maintenance | actively maintained — 136 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 211,570/month — #9,479 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cwl_upgrader-1.2.15-py3-none-any.whl
Keywords: cwl, commonwl, common-workflow-language
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
cwl-utilsLoads, parses, and manipulates Common Workflow…
permissive · top 15,000 on PyPI
cwltoolcwltool is the reference implementation of the…
permissive · top 15,000 on PyPI
cwltestcwltest validates the output of Common Workflow…
permissive · top 15,000 on PyPI
django-upgradeAutomatically modernizes Django project code by…
permissive · top 15,000 on PyPI
databricks-labs-remorphConverts SQL code between different database…
unclear · top 5,000 on PyPI
arelle-releaseArelle is an end-to-end XBRL processor that…
permissive · top 15,000 on PyPI
pip-upgraderAn interactive CLI tool that upgrades Python…
permissive · top 15,000 on PyPI
torch-c-dlpack-extProvides an ahead-of-time compiled module for…
permissive · top 5,000 on PyPI
alembicAlembic generates and manages database schema…
permissive · top 1,000 on PyPI
peewee-migratePeewee Migrate provides a command-line and…
permissive · top 15,000 on PyPI