Metadata-Version: 2.5
Name: cwl2codemeta
Version: 0.1.0
Summary: Convert CWL Schema.org metadata to CodeMeta 3.0 JSON-LD.
Project-URL: Homepage, https://github.com/Transpiler-Mate/cwl2codemeta
Project-URL: Documentation, https://Transpiler-Mate.github.io/cwl2codemeta/
Project-URL: Repository, https://github.com/Transpiler-Mate/cwl2codemeta
Project-URL: Issues, https://github.com/Transpiler-Mate/cwl2codemeta/issues
Project-URL: Changelog, https://github.com/Transpiler-Mate/cwl2codemeta/blob/main/CHANGELOG.md
Author-email: Transpiler-Mate <info@terradue.com>
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
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: giturlparse>=0.15.0
Requires-Dist: loguru==0.7.3
Requires-Dist: pyld>=3.1.0
Requires-Dist: transpiler-mate-api==1.0.0
Description-Content-Type: text/markdown

<!--
Copyright 2026 Transpiler-Mate

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 to CodeMeta

`cwl2codemeta` is a Transpiler-Mate plugin that converts Schema.org metadata
embedded in a Common Workflow Language (CWL) document into a CodeMeta 3.0
JSON-LD document.

The Transpiler-Mate runtime loads the CWL document and validates its
document-level metadata as a Schema.org `SoftwareApplication`. This plugin
then compacts the Schema.org terms and writes `codemeta.json`.

When a source repository is supplied, the output is a
`SoftwareSourceCode` object whose `targetProduct` contains the CWL software
metadata. GitHub and GitLab repository URLs are also used to derive links for
continuous integration, issue tracking, and related project pages.

## Installation

Install the plugin and a compatible Transpiler-Mate runtime in the same Python
environment:

```console
python -m pip install cwl2codemeta transpiler-mate-runtime
```

The package registers the `cwl2codemeta` plugin through the
`transpiler_mate.plugins` entry-point group. It does not install a standalone
`cwl2codemeta` executable.

## Usage

Your CWL document must carry the Schema.org metadata required by the
Transpiler-Mate `SoftwareApplication` model. Then run:

```console
transpiler-mate cwl2codemeta \
  --code-repository https://github.com/example/hello.git \
  --output codemeta.json \
  hello.cwl
```

Run `transpiler-mate cwl2codemeta --help` for the complete generated command
interface.

## Documentation

Project documentation is published at
<https://Transpiler-Mate.github.io/cwl2codemeta/>. It includes a complete CWL
example, the output contract, and details of the repository enrichment.

## Contributing

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

## License

Licensed under the [Apache License 2.0](LICENSE).
