Separated open-cmis-tck and guide-board repositories

This commit is contained in:
2026-05-07 21:52:08 +02:00
parent b0d3443dc0
commit e778dc2252
59 changed files with 489 additions and 5368 deletions

View File

@@ -1,45 +1,72 @@
# guide-board
# open-cmis-tck
`guide-board` is a certification and compliance preparation framework. It turns
standards, conformance, regulatory, and repository-quality claims into structured
evidence that can be reviewed, repeated, compared, and used during assessments.
`open-cmis-tck` is the CMIS conformance-preparation extension for
`guide-board`. It keeps CMIS-specific runner code, profiles, capability
mappings, and workplans outside the generic framework repo.
The root project owns the framework contracts. Domain-specific work lives in
extensions.
This extension does not issue certifications. It produces preparation evidence
that can support compatibility reviews and future certification work.
## Relationship To Guide Board
Use this repo as an external extension root:
```sh
cd ../guide-board
PYTHONPATH=src python3 -m guide_board \
--extension-dir ../open-cmis-tck \
extensions list
```
The extension root is this repository directory. It exposes:
- `extension.json`
- `src/open_cmis_tck/preflight.py`
- `runners/opencmis_tck.py`
- `mappings/cmis-capability-map.json`
- CMIS sample profiles under `profiles/`
## Local Baseline
The first core is intentionally dependency-light. From a clean checkout:
From the `guide-board` repo:
```sh
PYTHONPATH=src python3 -m guide_board extensions list
PYTHONPATH=src python3 -m guide_board extensions validate
PYTHONPATH=src python3 -m guide_board profile validate-target profiles/targets/sample-repository.json
PYTHONPATH=src python3 -m guide_board profile validate-assessment profiles/assessments/sample-noop.json
PYTHONPATH=src python3 -m guide_board plan \
--target profiles/targets/sample-repository.json \
--assessment profiles/assessments/sample-noop.json
PYTHONPATH=src python3 -m guide_board run \
--target profiles/targets/sample-repository.json \
--assessment profiles/assessments/sample-noop.json
PYTHONPATH=src python3 -m guide_board runs list
PYTHONPATH=src python3 -m guide_board runs trend
PYTHONPATH=src python3 -m guide_board runs gate
PYTHONPATH=src python3 -m unittest discover -s tests
PYTHONPATH=src python3 -m guide_board \
--extension-dir ../open-cmis-tck \
plan \
--target ../open-cmis-tck/profiles/targets/kontextual-cmis-compat.json \
--assessment ../open-cmis-tck/profiles/assessments/cmis-browser-baseline.json
```
The same CLI contracts are packaged by the container baseline. See
[docs/CONTAINER.md](docs/CONTAINER.md).
To run the current baseline:
The `sample-noop` extension exercises the guide-board contracts without invoking
an external harness. `open-cmis-tck` is the first real seed extension.
```sh
PYTHONPATH=src python3 -m guide_board \
--extension-dir ../open-cmis-tck \
run \
--target ../open-cmis-tck/profiles/targets/kontextual-cmis-compat.json \
--assessment ../open-cmis-tck/profiles/assessments/cmis-browser-baseline.json \
--output-dir /tmp/open-cmis-tck-baseline
```
See:
Expected current behavior:
- [INTENT.md](INTENT.md)
- [docs/ARCHITECTURE-BLUEPRINT.md](docs/ARCHITECTURE-BLUEPRINT.md)
- [docs/CONTAINER.md](docs/CONTAINER.md)
- [docs/EXTENSION-SDK.md](docs/EXTENSION-SDK.md)
- [extensions/CANDIDATES.md](extensions/CANDIDATES.md)
- [extensions/open-cmis-tck/INTENT.md](extensions/open-cmis-tck/INTENT.md)
- [workplans/GUIDE-BOARD-WP-0001-bootstrapping.md](workplans/GUIDE-BOARD-WP-0001-bootstrapping.md)
- CMIS Browser Binding preflight runs first.
- Failed preflight blocks downstream TCK groups.
- The Java/Maven OpenCMIS wrapper reports structured blockers until the final
Apache Chemistry TCK invocation is configured.
## Tests
Run extension tests with the guide-board core on `PYTHONPATH`:
```sh
PYTHONPATH=../guide-board/src python3 -m unittest discover -s tests
```
## Boundary
Apache Chemistry/OpenCMIS TCK dependencies may be restricted by upstream
licensing or distribution constraints. This repo records the extension boundary
and wrapper interface, but restricted harness assets should be resolved or
mounted explicitly by the user or by a future extension-specific image.