feat(cli): add open-reuse validate and register portfolio integrations
Some checks failed
ci / validate-registry (push) Has been cancelled

Implement Integration Definition validator CLI with schema and index checks,
pytest suite, and CI workflow. Register open-cmis-tck and issue-core-gitea in
the integration index.

Closes OPEN-WP-0003 and OPEN-WP-0004.
This commit is contained in:
2026-06-24 18:25:13 +02:00
parent ff2843ec5a
commit 12b5d83091
15 changed files with 714 additions and 55 deletions

View File

@@ -132,14 +132,35 @@ Prove Value
5. Set `schema_version: open-reuse.integration.v0.1`.
6. Add a row to `registry/indexes/integrations.yaml` with `id`, `path`, `repo`,
`reuse_mode`, and `upstream` summary.
7. Validate manually (checklist below) before setting `status: active`.
7. Run `open-reuse validate --repos-base <portfolio-root>` before setting
`status: active`.
Early adopters may use `schema_version: open-reuse.integration.v1`; the schema
accepts both. New entries should use v0.1.
## Automated validation
Primary validation path:
```bash
# Install (from repo root)
python -m pip install -e ".[dev]"
# Validate local definitions and registry index
open-reuse validate
# Validate index rows against consuming-repo definitions
open-reuse validate --repos-base /home/worsch
# Treat promotion-gate warnings as failures (CI default for strict checks)
open-reuse validate --repos-base /home/worsch --fail-on-warnings
```
CI runs `open-reuse validate --indexed-only` on every push to `main`.
## Manual validation checklist
Use until an automated CLI validator ships.
Fallback when the CLI is unavailable.
### Required fields
@@ -174,14 +195,17 @@ Update actions: `ignore`, `monitor-only`, `open-issue`, `open-update-proposal`,
- [ ] `reuse_mode` matches `reuse.primary_reuse_mode` in the definition
- [ ] `upstream.name` matches the definition
## Reference integration
## Reference integrations
`markitect-quarkdown` provides the first real-world adapter integration:
| ID | Repo | Reuse mode | Definition path |
| -- | ---- | ---------- | --------------- |
| `markitect-quarkdown` | markitect-quarkdown | adapter | `integration/quarkdown.integration.yaml` |
| `open-cmis-tck` | open-cmis-tck | adapter | `integration/opencmis-tck.integration.yaml` |
| `issue-core-gitea` | issue-core | adapter | `integration/gitea-backend.integration.yaml` |
- Definition: `markitect-quarkdown/integration/quarkdown.integration.yaml`
- Index row: `indexes/integrations.yaml``markitect-quarkdown`
Use it as a worked example for adapter + cli-boundary reuse.
`markitect-quarkdown` is the primary worked example for adapter + cli-boundary
reuse. `open-cmis-tck` illustrates cli-boundary orchestration of an upstream
test harness. `issue-core-gitea` illustrates a remote API backend adapter.
## Capability registry