Gate customer-product releases with application acceptance and hosted reuse checks
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a07ff8-19d0-7820-b4d0-1353833cb7fc
This commit is contained in:
parent
d9d48c7d1d
commit
0f4f11a9a2
14 changed files with 353 additions and 9 deletions
52
docs/delivery.md
Normal file
52
docs/delivery.md
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
# Delivery checks
|
||||
|
||||
Before implementing a workplan, use the hosted reuse registry:
|
||||
|
||||
```sh
|
||||
make plan-check WORKPLAN=workplans/VERGABE-WP-0018-customer-factory-delivery.md
|
||||
```
|
||||
|
||||
Install a reuse-surface revision containing REUSE-WP-0022. The initially tested
|
||||
provider revision is recorded in
|
||||
[evidence/2026-09-08-hosted-plan-check.json](evidence/2026-09-08-hosted-plan-check.json).
|
||||
`REUSE_SURFACE_BIN` can select an explicit installed executable;
|
||||
`REUSE_SURFACE_URL` defaults to `https://reuse.coulomb.social`.
|
||||
|
||||
This reads current hosted capabilities with `--no-llm`. It sends no tender intent
|
||||
or mutation token to the registry. A failed/stale/partial source exits nonzero
|
||||
without a recommendation. Preserve JSON output with the source revision in the
|
||||
workplan evidence; a lexical `new` result still requires review of existing
|
||||
capability owners. For this delivery we reuse reuse-surface, Railiance CI tooling
|
||||
and the existing Railiance Apps deployment rather than establish new equivalents.
|
||||
|
||||
## Application and release gate
|
||||
|
||||
```sh
|
||||
make test-image
|
||||
```
|
||||
|
||||
The `application-tests` Docker target installs the locked Python dependencies,
|
||||
builds Vite/Tailwind assets, collects static files, runs the complete Django
|
||||
application suite against disposable SQLite data, and checks migration drift.
|
||||
It includes the existing tender → lot → approval and submission workflow tests.
|
||||
The target carries no production database connection or release credential.
|
||||
SQLite proves this application acceptance suite; target PostgreSQL and live
|
||||
storage/recovery behavior remain release admission checks.
|
||||
|
||||
The Forgejo application workflow checks proposed changes. The image workflow
|
||||
runs the same target on the same archive revision **before** registry login and
|
||||
publication. Test dependencies and test settings are isolated from the runtime
|
||||
image. The existing optional BuildKit package secrets remain supported, but the
|
||||
current issue-core package is anonymously readable; no new secret is required.
|
||||
|
||||
The corrected Dockerfile consumes application templates under
|
||||
`vergabe_teilnahme/templates/`. A fresh archive does not contain a root
|
||||
`templates/` directory; attempting to copy it previously broke clean builds.
|
||||
|
||||
## Customer release acceptance
|
||||
|
||||
VERGABE-WP-0018-T03 owns the first admitted Railiance customer pilot: exact image
|
||||
digest and chart revision, tenant/host and login binding, database and media
|
||||
ownership, backup/restore and rollback, UI smoke and named operating owner.
|
||||
Existing production tender data is never disposable test data. A passing source
|
||||
build does not establish customer availability or the governed factory worker.
|
||||
22
docs/evidence/2026-09-08-application-acceptance.json
Normal file
22
docs/evidence/2026-09-08-application-acceptance.json
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"date": "2026-09-08",
|
||||
"sqlite_tests": {
|
||||
"passed": 82,
|
||||
"exit_code": 0
|
||||
},
|
||||
"postgres_tests": {
|
||||
"passed": 82,
|
||||
"version": "16-alpine",
|
||||
"exit_code": 0,
|
||||
"disposable": true
|
||||
},
|
||||
"container_gate": {
|
||||
"passed": 82,
|
||||
"exit_code": 0,
|
||||
"static_files": 139,
|
||||
"migration_drift": false
|
||||
},
|
||||
"known_warning": "Existing naive datetime in test_naechste_frist_returns_earlier",
|
||||
"runtime_smoke": "2026-09-08-runtime-smoke.json",
|
||||
"release_status": "local acceptance; Forgejo CI and admitted Railiance deployment are separate gates"
|
||||
}
|
||||
69
docs/evidence/2026-09-08-hosted-plan-check.json
Normal file
69
docs/evidence/2026-09-08-hosted-plan-check.json
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
{
|
||||
"federated_index_stale_warning": null,
|
||||
"federated_index_updated": "2026-09-08",
|
||||
"index_source": {
|
||||
"capability_count": 65,
|
||||
"composed_at": "2026-09-08T06:18:03+00:00",
|
||||
"digest_format": "response-bytes",
|
||||
"federation_warnings": false,
|
||||
"fetched_at": "2026-09-08T10:10:35.750043+00:00",
|
||||
"kind": "hosted",
|
||||
"max_age_hours": 24,
|
||||
"sha256": "bfb6b79970867ac981fc48286dea24b2ff766cf732d3675f73ccbddb8971e498",
|
||||
"stale": false,
|
||||
"url": "https://reuse.coulomb.social/v1/federated"
|
||||
},
|
||||
"matches": [
|
||||
{
|
||||
"id": "capability.infotech.config-surface-atlas",
|
||||
"kind": "deterministic",
|
||||
"owner": "config-atlas",
|
||||
"score": 0.0656,
|
||||
"summary": "Read-first, cross-kind map and evidence layer for configuration surfaces \u2014 what configures a system, who owns it, its scope, and where the source of truth lives.",
|
||||
"vector": "D5 / A0 / C2 / R2"
|
||||
},
|
||||
{
|
||||
"id": "capability.infotech.citation-evidence-workspace",
|
||||
"kind": "deterministic",
|
||||
"owner": "citation-evidence",
|
||||
"score": 0.0962,
|
||||
"summary": "Document-centered evidence workspace for capturing, managing, presenting, and re-opening citations \u2014 the umbrella application over the citation-evidence six-package design.",
|
||||
"vector": "D4 / A1 / C1 / R0"
|
||||
},
|
||||
{
|
||||
"id": "capability.registry.register",
|
||||
"kind": "deterministic",
|
||||
"owner": "reuse-surface",
|
||||
"score": 0.0816,
|
||||
"summary": "Register a new capability so it becomes visible for planning and implementation reuse.",
|
||||
"vector": "D3 / A4 / C2 / R3"
|
||||
},
|
||||
{
|
||||
"id": "capability.railiance.workload-deployment-tooling",
|
||||
"kind": "deterministic",
|
||||
"owner": "railiance-apps",
|
||||
"score": 0.069,
|
||||
"summary": "S5 Workloads and Experience Endpoints layer of the Railiance OAS Stack \u2014 application Helm releases, Kubernetes workload manifests, deployment guardrails, and smoke-test/check tooling for user-facing services.",
|
||||
"vector": "D3 / A2 / C1 / R1"
|
||||
},
|
||||
{
|
||||
"id": "capability.railiance.ci-enablement",
|
||||
"kind": "deterministic",
|
||||
"owner": "railiance-enablement",
|
||||
"score": 0.0492,
|
||||
"summary": "S4 Developer Enablement layer of the Railiance OAS Stack \u2014 reusable CI/CD workflow templates, developer portal paths, platform templates, SDKs, and buildpacks, using forge capabilities without owning forge runtime.",
|
||||
"vector": "D3 / A2 / C2 / R1"
|
||||
}
|
||||
],
|
||||
"query": {
|
||||
"source": "workplan",
|
||||
"text": "Establish verified delivery for the primary customer tender product\nMake the existing tender-participation UI a repeatably tested customer product.\nUse hosted capability discovery for planning, exercise the existing useful\ntender/lot/approval workflow, and prevent image publication when application\nacceptance fails. Preserve single-company scope until a separate tenancy design.",
|
||||
"workplan_id": "VERGABE-WP-0018",
|
||||
"workplan_path": "/tmp/custodian-factory-followthrough/vergabe-teilnahme/workplans/VERGABE-WP-0018-customer-factory-delivery.md"
|
||||
},
|
||||
"top_score": 0.0656,
|
||||
"verdict": "new",
|
||||
"consumer_repo": "vergabe-teilnahme",
|
||||
"provider_revision": "2621cf2752a453ed79af37b583185a0291795bcf",
|
||||
"review_disposition": "Reuse the existing reuse-surface CLI, Railiance CI and workload tooling. Low lexical score does not justify a new registry, CI platform or deployment engine."
|
||||
}
|
||||
8
docs/evidence/2026-09-08-runtime-smoke.json
Normal file
8
docs/evidence/2026-09-08-runtime-smoke.json
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"health_status": 200,
|
||||
"response": "{\"status\": \"ok\"}",
|
||||
"image_id": "sha256:e45182096e1b196245c8795b0c3edb0dbb3e9815c78177df122bc36930975da4",
|
||||
"runtime_user": "999",
|
||||
"pytest_in_runtime": false,
|
||||
"scope": "Local loopback smoke; disposable configuration; no database persistence, Railiance deployment or customer availability claim."
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue