From 5fb5738cb4ed2d3a35aec40f39099283380c7f31 Mon Sep 17 00:00:00 2001 From: Jeremi Joslin Date: Sat, 25 Jul 2026 20:49:49 +0700 Subject: [PATCH 1/2] docs: remove stale first-run release gates Signed-off-by: Jeremi Joslin --- docs/site/src/content/docs/index.mdx | 5 ----- docs/site/src/content/docs/reference/registryctl.mdx | 2 +- .../docs/tutorials/first-run-with-solmara-lab.mdx | 10 +--------- .../publish-spreadsheet-secured-registry-api.mdx | 7 ------- 4 files changed, 2 insertions(+), 22 deletions(-) diff --git a/docs/site/src/content/docs/index.mdx b/docs/site/src/content/docs/index.mdx index a5c7bff04..d0cfe547d 100644 --- a/docs/site/src/content/docs/index.mdx +++ b/docs/site/src/content/docs/index.mdx @@ -20,11 +20,6 @@ The data never leaves the source system. Start with [your first registry API](tutorials/publish-spreadsheet-secured-registry-api/), then [evaluate a claim](tutorials/verify-claim-registry-api/) against that local API. -The hosted Relay quickstart passed its latest check, but the hosted credential continuation is not -the promoted first-run route while [GH#330](https://github.com/registrystack/registry-stack/issues/330) -remains open and the complete [GH#198](https://github.com/registrystack/registry-stack/issues/198) -fresh-reader run is unfinished. - ## Two products Registry Relay protects what an institution already holds. Registry Notary certifies answers drawn diff --git a/docs/site/src/content/docs/reference/registryctl.mdx b/docs/site/src/content/docs/reference/registryctl.mdx index 6354e010a..deb85769e 100644 --- a/docs/site/src/content/docs/reference/registryctl.mdx +++ b/docs/site/src/content/docs/reference/registryctl.mdx @@ -121,7 +121,7 @@ documentation copy. The following workspaces are checked-in authoring evidence, not additional public starters. Their command lists contain only the workflow steps supported by each workspace. -OpenSPP remains offline-fixture-only pending the owner-run holdout in GH#357. +The OpenSPP workspace covers offline fixture validation only. diff --git a/docs/site/src/content/docs/tutorials/first-run-with-solmara-lab.mdx b/docs/site/src/content/docs/tutorials/first-run-with-solmara-lab.mdx index 67b204d1e..99ca685a9 100644 --- a/docs/site/src/content/docs/tutorials/first-run-with-solmara-lab.mdx +++ b/docs/site/src/content/docs/tutorials/first-run-with-solmara-lab.mdx @@ -38,14 +38,7 @@ Do not use the generated local keys in production. For a standalone local project generated from your own data, use the `registryctl` tutorials: [run a protected registry API](../publish-spreadsheet-secured-registry-api/) or [evaluate a claim with Registry Notary](../verify-claim-registry-api/). Clone Solmara Lab when you -want the full multi-service country demo. The planned final 1.0 release-candidate reader run in -[GH#198](https://github.com/registrystack/registry-stack/issues/198) requires a tagged Registry -Stack candidate and a Solmara Lab release that atomically pins the matching `registryctl`, Registry -Relay, Registry Notary, and image digests. Where Registry Notary applies, the run must also prove -one Registry Notary instance and one Notary-owned PostgreSQL database per Registry Relay authority, -including restart persistence. -{/* TODO[evidence]: Replace this issue-tracked plan with a stable public run artifact and - immutable Solmara Lab release link before presenting the gate as completed evidence. */} +want the full multi-service country demo. ## Prerequisites @@ -249,7 +242,6 @@ so you can confirm what you ran by hand against what the lab publishes. smaller local Relay project from a sample workbook. - [Evaluate a claim with Registry Notary](../verify-claim-registry-api/): add Notary to that local project. -- [Hosted Relay demo (held)](../../start/quickstart/): inspect the zero-install Relay path. - [When to use Registry Stack](../../start/when-to-use/): decide whether Relay, Notary, or both fit your integration. - [Registry Relay](../../products/registry-relay/): route reference, auth scopes, and configuration diff --git a/docs/site/src/content/docs/tutorials/publish-spreadsheet-secured-registry-api.mdx b/docs/site/src/content/docs/tutorials/publish-spreadsheet-secured-registry-api.mdx index 97632e9a0..4695d0f6e 100644 --- a/docs/site/src/content/docs/tutorials/publish-spreadsheet-secured-registry-api.mdx +++ b/docs/site/src/content/docs/tutorials/publish-spreadsheet-secured-registry-api.mdx @@ -31,12 +31,6 @@ identity reads, and inspect the contract Registry Stack generated. This tutorial uses synthetic data and local demo credentials. Do not use the generated local keys in production. -:::note[Current first-run route] -The v0.13.0 source beta and this local tutorial can be used while hosted credential publication is -held by [GH#330](https://github.com/registrystack/registry-stack/issues/330) and the incomplete -[GH#198](https://github.com/registrystack/registry-stack/issues/198) fresh-reader run. -::: - ## Install registryctl Install `registryctl` without cloning the repository: @@ -485,7 +479,6 @@ Relay refused to start when the floor dropped under 2 on personal data. | `registryctl start` cannot find Docker | Docker or another Compose provider is not installed or running. | Start Docker Desktop, OrbStack, Colima, Podman, or your supported provider, then run `registryctl start` again. | | Docker reports no `linux/arm64` manifest for a Registry Stack image | The v0.13.0 Relay and Notary images are published for `linux/amd64` only. | Start with `DOCKER_DEFAULT_PLATFORM=linux/amd64 registryctl start`. | | `registryctl start` fails and the container log shows `failed to parse config YAML ... unknown field` | The locally cached container image does not match the digest-pinned image in the generated `compose.yaml`. | Run `docker compose pull` in the project directory (on Apple silicon, prefix it with `DOCKER_DEFAULT_PLATFORM=linux/amd64`), then `registryctl start` again. | -| `registryctl start` times out and the container log shows `missing field \`commitment\`` | registryctl v0.8.4 pins a service image older than its own generated config format ([GH#278](https://github.com/registrystack/registry-stack/issues/278)). | Pin the project's `compose.yaml` to the published v0.8.4 release digests: `ghcr.io/registrystack/registry-relay@sha256:93e194500a3500ba3f6331d5a0a9a3069127c48a709beccb083a5fcbdbc3ec61` and, when present, `ghcr.io/registrystack/registry-notary@sha256:0cf05184885d7ed17dd9889e20f3797eb2a9ad07517f4ac7c05c03b774a00b8f`. Then run `docker compose pull`; reapply the pins after a generation command rewrites `compose.yaml`. | | `registryctl init` reports that its image lock is missing or invalid | The binary was moved or built without the strict image lock from the same release, or the file failed its release, source, platform, or digest checks. | Rerun the installer from the same pinned target tag so it checksum-verifies and installs both files. For an operator-managed or source-test location, set `REGISTRYCTL_IMAGE_LOCK` to the checksum-verified lock from that exact release. Do not substitute a lock from another version or a mutable image tag. | | `registryctl start` fails with `Relay did not become healthy and ready before timeout` after a config edit | The edited `relay/config.yaml` fails validation, so the container exits at startup. | Run `registryctl logs`, fix the field named in the `ERROR` line, then run `registryctl stop` and `registryctl start` again. | | A row read returns `403 Forbidden` | The key is valid but lacks the row-read scope. | Use `ROW_READER_RAW` for row reads. | From 19662b860b44f0f535622e3af4652867977169bb Mon Sep 17 00:00:00 2001 From: Jeremi Joslin Date: Sat, 25 Jul 2026 21:12:49 +0700 Subject: [PATCH 2/2] docs: align OpenSPP workspace boundary Signed-off-by: Jeremi Joslin --- .../tests/fixtures/project-authoring-journeys.yaml | 4 ++-- crates/registryctl/tests/project_authoring.rs | 2 +- docs/site/scripts/generate-project-starters.test.mjs | 2 +- docs/site/src/content/docs/reference/registryctl.mdx | 4 +++- docs/site/src/data/generated/project-authoring-journeys.json | 4 ++-- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/crates/registryctl/tests/fixtures/project-authoring-journeys.yaml b/crates/registryctl/tests/fixtures/project-authoring-journeys.yaml index ace5ca33a..1c8f5cae3 100644 --- a/crates/registryctl/tests/fixtures/project-authoring-journeys.yaml +++ b/crates/registryctl/tests/fixtures/project-authoring-journeys.yaml @@ -101,11 +101,11 @@ workspaces: - id: openspp-exact label: OpenSPP exact lookup - summary: Offline fixture evidence only, pending the owner-run holdout in GH#357. + summary: Offline fixture, configuration validation, and build coverage for a synthetic OpenSPP exact lookup. source: crates/registryctl/tests/fixtures/project-authoring/openspp-exact classification: maintained topology: combined - evidence: offline-fixture-only-pending-357 + evidence: offline-fixture-validation project_dir: crates/registryctl/tests/fixtures/project-authoring/openspp-exact focused_fixture_file: match.yaml steps: [trace, watch, test, check, build] diff --git a/crates/registryctl/tests/project_authoring.rs b/crates/registryctl/tests/project_authoring.rs index 669044dca..886a8533a 100644 --- a/crates/registryctl/tests/project_authoring.rs +++ b/crates/registryctl/tests/project_authoring.rs @@ -1088,7 +1088,7 @@ fn project_authoring_catalog_classifies_every_golden_and_only_five_starters() { .expect("OpenSPP catalog entry"); assert_eq!( openspp.evidence.as_deref(), - Some("offline-fixture-only-pending-357") + Some("offline-fixture-validation") ); } diff --git a/docs/site/scripts/generate-project-starters.test.mjs b/docs/site/scripts/generate-project-starters.test.mjs index dd7c39554..ae6906db3 100644 --- a/docs/site/scripts/generate-project-starters.test.mjs +++ b/docs/site/scripts/generate-project-starters.test.mjs @@ -177,7 +177,7 @@ test('keeps country, snapshot-records, OpenSPP, and conformance decisions explic source: 'crates/registryctl/tests/fixtures/project-authoring/snapshot-with-records', }, ); - assert.equal(byId['openspp-exact'].evidence, 'offline-fixture-only-pending-357'); + assert.equal(byId['openspp-exact'].evidence, 'offline-fixture-validation'); assert.equal(byId['dhis2-script'].classification, 'conformance-only'); assert.equal(byId['dhis2-script'].starter, undefined); assert.deepEqual(byId['dhis2-script'].capabilities, ['test', 'check', 'build']); diff --git a/docs/site/src/content/docs/reference/registryctl.mdx b/docs/site/src/content/docs/reference/registryctl.mdx index deb85769e..47503ac06 100644 --- a/docs/site/src/content/docs/reference/registryctl.mdx +++ b/docs/site/src/content/docs/reference/registryctl.mdx @@ -121,7 +121,9 @@ documentation copy. The following workspaces are checked-in authoring evidence, not additional public starters. Their command lists contain only the workflow steps supported by each workspace. -The OpenSPP workspace covers offline fixture validation only. +The OpenSPP workspace uses a synthetic wire shape. +Its offline tests, configuration checks, and build do not establish compatibility with a live +OpenSPP release. diff --git a/docs/site/src/data/generated/project-authoring-journeys.json b/docs/site/src/data/generated/project-authoring-journeys.json index 04f100bbc..ef4be2220 100644 --- a/docs/site/src/data/generated/project-authoring-journeys.json +++ b/docs/site/src/data/generated/project-authoring-journeys.json @@ -209,11 +209,11 @@ { "id": "openspp-exact", "label": "OpenSPP exact lookup", - "summary": "Offline fixture evidence only, pending the owner-run holdout in GH#357.", + "summary": "Offline fixture, configuration validation, and build coverage for a synthetic OpenSPP exact lookup.", "source": "crates/registryctl/tests/fixtures/project-authoring/openspp-exact", "classification": "maintained", "topology": "combined", - "evidence": "offline-fixture-only-pending-357", + "evidence": "offline-fixture-validation", "project_dir": "crates/registryctl/tests/fixtures/project-authoring/openspp-exact", "capabilities": [ "trace",