Gate customer-product releases with application acceptance and hosted reuse checks
Some checks failed
Application acceptance / application-tests (pull_request) Failing after 53s
Application acceptance / application-tests (push) Failing after 3s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a07ff8-19d0-7820-b4d0-1353833cb7fc
This commit is contained in:
tegwick 2026-09-08 13:03:32 +02:00
parent d9d48c7d1d
commit 0f4f11a9a2
14 changed files with 353 additions and 9 deletions

52
docs/delivery.md Normal file
View 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.

View 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"
}

View 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."
}

View 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."
}