2026-05-14 01:02:25 +02:00
# First Release Readiness
Date: 2026-05-14
Target posture: `0.1.0` controlled preview. This release can be good to go
when it is honest, reproducible, observable, and recoverable. It does not need
to pretend to be a full ECM or certified CMIS repository.
## Release Scope
In scope:
- native asset registry, metadata, relationship, retrieval, transformation,
workflow, service API, blob, S3-backend, and observability foundations,
- profiled CMIS Browser Binding subset for controlled integrations,
- OpenCMIS selected baseline for `repository-type` and `object-content` ,
- explicit unsupported flags for out-of-scope CMIS capabilities,
- State Hub registered workplans and evidence documents.
Out of scope for `0.1.0` :
- AtomPub and Web Services bindings,
- full CMIS SQL, checkout/checkin/PWC, policy mutation, retention/hold,
renditions, and broad filing mutation,
- full ECM/records-management semantics,
- formal CMIS certification claim.
## Go / No-Go Gates
| Area | Gate | Current state |
| --- | --- | --- |
2026-05-14 03:29:05 +02:00
| CMIS read-side contract | Query, navigation, relationship, ACL, and change-token contracts are release-stable or explicitly waived. | Complete; see `docs/cmis-read-side-contract.md` . |
| Tests | Full suite passes in the project venv. | `.venv/bin/python -m pytest -q` passed: `166 passed` , `15 skipped` in `42.23s` ; advisory performance drift warnings recorded. |
2026-05-14 02:51:24 +02:00
| CMIS evidence | OpenCMIS selected baseline completes with no unexpected findings. | `run-20260514T003705Z` completed; object/content passed; only local HTTP warning remains. |
2026-05-14 01:02:25 +02:00
| Transport | Released CMIS access points are served behind HTTPS. | Required deployment gate; local loopback warning is accepted only for harness runs. |
2026-05-14 03:29:05 +02:00
| Capability honesty | Scorecard, unsupported catalog, and examples match behavior. | Complete; scorecard updated for WP-0016 and `run-20260514T003705Z` . |
| Packaging | Version, dependencies, optional extras, and install smoke are checked. | Complete; sdist/wheel build and clean `[service]` install smoke passed. |
| Configuration | Storage backend, S3 settings, local blob path, and environment defaults are documented. | Complete; see `docs/release-security-configuration-storage-review.md` . |
| Data safety | Blob cleanup, backups, restore path, and migration posture are documented. | Complete for preview; backup/restore expectations documented in the release review and runbook. |
| Security | Actor headers, access-point profiles, secrets, and dependency/license review are done. | Complete for controlled preview; HTTPS/authenticated edge remains deployment requirement. |
| Operations | Health checks, logs, performance history, and known warnings are documented. | Complete; see `docs/release-runbook-0.1.0.md` . |
| State | State Hub consistency check passes after release docs/workplan updates. | Complete; State Hub consistency check passed with `0 fail` , `0 warn` , `0 info` . |
2026-05-14 01:02:25 +02:00
## Known Accepted Limitations
- CMIS Browser Binding is the supported external CMIS protocol surface.
- CMIS multifiling remains projection-only.
- CMIS append is implemented as whole-object append through deduplicating
representation storage; chunk-level blob composition is deferred.
- Local OpenCMIS loopback runs warn about HTTP. This must not be carried into
production-facing access points.
- Performance drift warnings from pytest are advisory unless repeated under a
quiet system baseline; the current run flagged several CMIS API tests.
2026-05-14 03:29:05 +02:00
- Optional `markdown` and `llm` extras point at sibling repositories in this
workspace and are not part of the default/service install path.
2026-05-14 01:02:25 +02:00
## Release Procedure
2026-05-14 02:20:17 +02:00
1. Run `.venv/bin/python -m pytest -q` .
2. Run the OpenCMIS selected baseline through `guide-board` and persist the
2026-05-14 01:02:25 +02:00
evidence document.
2026-05-14 03:29:05 +02:00
3. Run packaging smoke: build wheel/sdist and import `kontextual_engine` from a
clean install with the `[service]` extra.
4. Review security/configuration: HTTPS termination, profile exposure, secrets,
2026-05-14 01:02:25 +02:00
local/S3 blob backend settings, and dependency licenses.
2026-05-14 03:29:05 +02:00
5. Update `CHANGELOG.md` or release notes with capabilities, known limitations,
2026-05-14 01:02:25 +02:00
and accepted warnings.
2026-05-14 03:29:05 +02:00
6. Run State Hub consistency check and ensure workplans are registered.
2026-05-14 02:20:17 +02:00
7. Tag the release only after the gates above are green or explicitly waived.
2026-05-14 01:02:25 +02:00
## Release Decision
2026-05-14 03:29:05 +02:00
The current foundation is ready for a controlled `0.1.0` preview. No release
tag has been created by this workplan; tag creation remains a deliberate
operator action after reviewing the release notes and deployment target.
## Packaging Evidence
```text
python3 -m build --sdist --wheel --outdir /tmp/kontextual-release-smoke-20260514T010625Z/dist
```
Built artifacts:
- `kontextual_engine-0.1.0.tar.gz`
- `kontextual_engine-0.1.0-py3-none-any.whl`
Clean install smoke:
```text
/tmp/kontextual-release-smoke-20260514T010625Z/venv/bin/python \
-m pip install /tmp/kontextual-release-smoke-20260514T010625Z/dist/kontextual_engine-0.1.0-py3-none-any.whl[service]
/tmp/kontextual-release-smoke-20260514T010625Z/venv/bin/python \
-c "import kontextual_engine; from kontextual_engine import ServiceRuntime, create_app; app=create_app(ServiceRuntime()); print(kontextual_engine.__version__); print(app.title); print(hasattr(app.state, 'kontextual_runtime'))"
```
Smoke output:
```text
0.1.0
Kontextual Engine Service API
True
```