Metadata-Version: 2.5
Name: cwl2oci
Version: 0.1.1
Summary: CWL2OCI Transpiler-Mate Plugin.
Project-URL: Homepage, https://github.com/Transpiler-Mate/cwl2oci
Project-URL: Documentation, https://Transpiler-Mate.github.io/cwl2oci/
Project-URL: Repository, https://github.com/Transpiler-Mate/cwl2oci
Project-URL: Issues, https://github.com/Transpiler-Mate/cwl2oci/issues
Project-URL: Changelog, https://github.com/Transpiler-Mate/cwl2oci/blob/main/CHANGELOG.md
Author-email: Terradue srl <info@terradue.com>, Fabrice Brito <fabrice.brito@terradue.com>, Simone Tripodi <simone.tripodi@terradue.com>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: commonwl,cwl,transpiler-mate
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.10
Requires-Dist: loguru==0.7.3
Requires-Dist: transpiler-mate-api>=1.0.0
Provides-Extra: test
Requires-Dist: click<9,>=8.4.2; extra == 'test'
Requires-Dist: pytest-cov<8,>=6.2; extra == 'test'
Requires-Dist: pytest<10,>=8.4; extra == 'test'
Description-Content-Type: text/markdown

<!--
Copyright 2026 Terradue

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

# CWL 2 OCI

[![PyPI - Version](https://img.shields.io/pypi/v/cwl2oci.svg)](https://pypi.org/project/cwl2oci)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/cwl2oci.svg)](https://pypi.org/project/cwl2oci)
[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/transpiler-mate/cwl2oci/package.yaml?branch=develop&event=push&label=build&logo=githubactions)](https://github.com/transpiler-mate/cwl2oci/actions/workflows/package.yaml?query=branch%3Adevelop)
[![Code coverage](https://img.shields.io/codecov/c/github/transpiler-mate/cwl2oci/develop?logo=codecov)](https://app.codecov.io/gh/transpiler-mate/cwl2oci/tree/develop)

`cwl2oci` is a Transpiler-Mate plugin that generates OCI image annotations from
normalized software metadata and a selected CWL process.

The plugin writes a JSON document containing standard
`org.opencontainers.image.*` properties and CWL-specific `org.cwl.*` properties:

```json
{
  "$manifest": {
    "org.opencontainers.image.title": "Example workflow",
    "org.opencontainers.image.version": "1.0.0",
    "org.cwl.entrypoint": "main",
    "org.cwl.type": "Workflow"
  }
}
```

It implements the
[Transpiler-Mate API](https://github.com/sim13pods/transpiler-mate-api) plugin
contract and registers `cwl2oci.plugin:cwl2oci` in the
`transpiler_mate.plugins` entry-point group. It does not install a standalone
command-line program or build an OCI image.

## Installation

```console
git clone https://github.com/Transpiler-Mate/cwl2oci.git
cd cwl2oci
python -m pip install .
```

Python 3.10 or newer is required. A compatible Transpiler-Mate host supplies the
CWL context and defines how plugins are invoked.

## Documentation

The documentation follows Diátaxis and is published at
<https://Transpiler-Mate.github.io/cwl2oci/>:

- tutorials for guided learning;
- how-to guides for specific tasks;
- reference for the exact plugin and output contracts;
- explanation for architecture and design context.

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md). Submit issues at
<https://github.com/Transpiler-Mate/cwl2oci/issues>.

## License

[![Apache License, Version 2.0](https://img.shields.io/badge/license-Apache%20License%202.0-blue)](https://www.apache.org/licenses/LICENSE-2.0)
