generated from coulomb/repo-seed
feat(cli): add open-reuse validate and register portfolio integrations
Some checks failed
ci / validate-registry (push) Has been cancelled
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:
@@ -4,7 +4,7 @@ type: workplan
|
||||
title: "Integration CLI validator"
|
||||
domain: infotech
|
||||
repo: open-reuse
|
||||
status: ready
|
||||
status: finished
|
||||
owner: codex
|
||||
topic_slug: infotech
|
||||
created: "2026-06-24"
|
||||
@@ -32,56 +32,47 @@ patterns from reuse-surface `reuse-surface validate`.
|
||||
|
||||
```task
|
||||
id: OPEN-WP-0003-T01
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "70b8cead-3c16-4e48-ab8f-ee6f7cedf25e"
|
||||
```
|
||||
|
||||
Add `pyproject.toml`, `open_reuse/` package skeleton, and entry point
|
||||
`open-reuse` with a `validate` subcommand stub. Include `jsonschema` and `pyyaml`
|
||||
as dependencies. Document install and run commands in `AGENTS.md` and
|
||||
Result 2026-06-24: Added `pyproject.toml`, `open_reuse/` package, and CLI entry
|
||||
point. Documented install commands in `AGENTS.md` and
|
||||
`.claude/rules/stack-and-commands.md`.
|
||||
|
||||
## Implement validate command
|
||||
|
||||
```task
|
||||
id: OPEN-WP-0003-T02
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "0f8c8e25-1c1f-4f94-8771-71bcc3402db2"
|
||||
```
|
||||
|
||||
Implement `open-reuse validate` with:
|
||||
|
||||
- Schema validation of one or more `*.integration.yaml` files (default: scan
|
||||
`registry/integrations/` if present).
|
||||
- Index checks: every `indexes/integrations.yaml` row has required fields; `id`
|
||||
and `reuse_mode` are consistent when the definition file is reachable.
|
||||
- `--fail-on-warnings` for promotion-gate checks (missing maintainers on
|
||||
`active` status, missing index row for local definitions).
|
||||
- Exit code 0 on success, non-zero on errors.
|
||||
Result 2026-06-24: Implemented schema validation, index consistency checks,
|
||||
`--repos-base` external definition resolution, and `--fail-on-warnings`.
|
||||
|
||||
## Add tests and CI
|
||||
|
||||
```task
|
||||
id: OPEN-WP-0003-T03
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "e84e7b00-43ec-429e-afa0-42cb8eaa0074"
|
||||
```
|
||||
|
||||
Add `tests/test_validate.py` covering schema pass/fail, index consistency, and
|
||||
the markitect-quarkdown reference fixture. Add `.gitea/workflows/ci.yml` running
|
||||
pytest on push/PR to `main`.
|
||||
Result 2026-06-24: Added `tests/test_validate.py` (8 tests) and
|
||||
`.gitea/workflows/ci.yml`.
|
||||
|
||||
## Update registry documentation
|
||||
|
||||
```task
|
||||
id: OPEN-WP-0003-T04
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "cfd38f45-0c0a-4790-b666-c211983b3ee9"
|
||||
```
|
||||
|
||||
Update `registry/README.md` to reference `open-reuse validate` as the primary
|
||||
validation path. Mark manual checklist as fallback until CI is green.
|
||||
Result 2026-06-24: Updated `registry/README.md` with CLI as primary validation
|
||||
path; manual checklist retained as fallback.
|
||||
@@ -4,7 +4,7 @@ type: workplan
|
||||
title: "Integration portfolio registration"
|
||||
domain: infotech
|
||||
repo: open-reuse
|
||||
status: ready
|
||||
status: finished
|
||||
owner: codex
|
||||
topic_slug: infotech
|
||||
created: "2026-06-24"
|
||||
@@ -32,55 +32,50 @@ open-reuse.
|
||||
|
||||
```task
|
||||
id: OPEN-WP-0004-T01
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "c4367626-a4a6-4c57-bf83-ba54df3e6df0"
|
||||
```
|
||||
|
||||
Scan the local repo portfolio (reuse-surface `local-repo-roster.yaml`, domain
|
||||
`INTENT.md` files, and existing `*.integration.yaml` files) for proven
|
||||
integrations not yet indexed. Produce a short candidate list with owner repo,
|
||||
upstream project, reuse mode estimate, and registration readiness
|
||||
(ready / needs-definition / needs-boundary-work).
|
||||
Result 2026-06-24: Surveyed 60-repo roster. Top candidates with proven code +
|
||||
tests: `open-cmis-tck` (OpenCMIS TCK), `issue-core` (Gitea API), `llm-connect`
|
||||
(multi-provider, needs-boundary-work), `sand-boxer` (E2B/Modal), `tele-mcp`
|
||||
(Prometheus/Loki/k8s). Only `markitect-quarkdown` had an existing definition.
|
||||
|
||||
## Prioritize and assign targets
|
||||
|
||||
```task
|
||||
id: OPEN-WP-0004-T02
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "bd2c5dc8-814e-4045-86ed-2f15db4faf59"
|
||||
```
|
||||
|
||||
Select 2–3 candidates for registration in this workplan cycle. Record the
|
||||
selection and rationale in the task result. Defer remaining candidates to
|
||||
backlog with explicit blockers.
|
||||
Result 2026-06-24: Selected `open-cmis-tck` and `issue-core-gitea` for this
|
||||
cycle — clearest adapter boundaries and strongest test coverage. Deferred
|
||||
`llm-connect` (multi-upstream boundary work), `sand-boxer` (multi-backend
|
||||
registration shape), and `tele-mcp` (upstream version matrix) to backlog.
|
||||
|
||||
## Author integration definitions
|
||||
|
||||
```task
|
||||
id: OPEN-WP-0004-T03
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "f12d9856-fd9f-44f0-b841-a82f521149c3"
|
||||
```
|
||||
|
||||
For each selected candidate, ensure a conforming Integration Definition exists
|
||||
in the consuming repo at `integration/<id>.integration.yaml` using
|
||||
`templates/integration-entry.template.yaml`. Complete at minimum: upstream,
|
||||
reuse classification, boundary, validation harness, and maintainers. Coordinate
|
||||
PRs in owning repos where definitions are missing.
|
||||
Result 2026-06-24: Added `integration/opencmis-tck.integration.yaml` in
|
||||
open-cmis-tck and `integration/gitea-backend.integration.yaml` in issue-core.
|
||||
|
||||
## Expand registry index
|
||||
|
||||
```task
|
||||
id: OPEN-WP-0004-T04
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "c59c5fe2-6f55-4097-8419-a73593abd589"
|
||||
```
|
||||
|
||||
Add index rows to `registry/indexes/integrations.yaml` for each registered
|
||||
integration. Update `registry/README.md` reference section. Run
|
||||
`open-reuse validate` (or manual checklist) and confirm all new rows pass
|
||||
promotion gates for `registered` or `active` status.
|
||||
Result 2026-06-24: Added index rows for `open-cmis-tck` and `issue-core-gitea`.
|
||||
Verified with `open-reuse validate --repos-base /home/worsch` (all checks pass).
|
||||
Reference in New Issue
Block a user