cwl-upgrader
Upgrade a CWL tool or workflow document from one version to another
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- 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.
License · maintenance · safety
Apache 2.0 (permissive) — Apache 2.0 permissive license allows commercial and private use with minimal restrictions; suitable for most integration scenarios.
last release 2026-03-31 (136 days) · last repo commit 2026-08-03 · 7 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 211,570 downloads/mo, #9,479 on PyPI
Alternatives
Verify before relying
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- 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.
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 on it.
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
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.
Requires Python 3.10 or later.
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
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 packagesruamel.yamlschema_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 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: MacOS :: MacOS XOperating System :: POSIXProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: File FormatsTopic :: Software Development :: LibrariesTyping :: Typed |
Evidence: cwl_upgrader-1.2.15-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “cwl document upgrader”
- cwl-upgraderUpgrades Common Workflow Language documents from draft-3, v1.0, and…
- cwl-utilsLoads, parses, and manipulates Common Workflow Language (CWL)…
- cwltestcwltest validates the output of Common Workflow Language tools and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also cwl-utils · cwltool · cwltest · django-upgrade · databricks-labs-remorph · arelle-release · pip-upgrader · torch-c-dlpack-ext · alembic · peewee-migrate