From 92ec165bd21e078c59d01394c5e48dd52c5ba6a4 Mon Sep 17 00:00:00 2001 From: Chuck McAndrew <6248903+dcmcand@users.noreply.github.com> Date: Thu, 14 May 2026 17:15:59 +0200 Subject: [PATCH 1/2] docs: sync dashboard references with current dashboard implementation - Update repo name from nebari-dev/pack-dashboard to nebari-dev/software-pack-dashboard (3 occurrences). - Update refresh cadence from daily to hourly (2 occurrences). - Remove last_presales_demo / last_presales_demo_by and the demo-lapsed flag, which the dashboard no longer renders. - Adjust demo_notes description: rendered in the Notes column with first ~100 chars, not verbatim. - Add repo-not-found to the documented flag list. --- docs/release-readiness-checklist.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/docs/release-readiness-checklist.md b/docs/release-readiness-checklist.md index 06602cc..4c1b314 100644 --- a/docs/release-readiness-checklist.md +++ b/docs/release-readiness-checklist.md @@ -2,7 +2,7 @@ This document defines the maturity levels for Nebari **first-party** software packs and the requirements for promoting a pack between levels. It applies only to packs maintained by the Nebari core team. Community-contributed packs are out of scope. -Pack state is declared in a `pack-metadata.yaml` file at the root of each pack repo. The Nebari pack dashboard ([`nebari-dev/software-pack-dashboard`](https://github.com/nebari-dev/software-pack-dashboard)) aggregates these metadata files daily and renders a single view of every tracked pack. That dashboard is the canonical place pre-sales engineers consult before demos. +Pack state is declared in a `pack-metadata.yaml` file at the root of each pack repo. The Nebari pack dashboard ([`nebari-dev/software-pack-dashboard`](https://github.com/nebari-dev/software-pack-dashboard)) aggregates these metadata files hourly and renders a single view of every tracked pack. That dashboard is the canonical place pre-sales engineers consult before demos. ## Maturity Levels @@ -40,7 +40,7 @@ The dashboard automatically moves deprecated packs to a separate table. ## Pack Metadata File -Every tracked pack has a `pack-metadata.yaml` at its repo root. This file is the source of truth for everything the dashboard displays and for the pack's declared maturity level. The schema is owned by the dashboard repo (`nebari-dev/pack-dashboard/schema/pack-metadata.schema.json`) and may be validated locally: +Every tracked pack has a `pack-metadata.yaml` at its repo root. This file is the source of truth for everything the dashboard displays and for the pack's declared maturity level. The schema is owned by the dashboard repo (`nebari-dev/software-pack-dashboard/schema/pack-metadata.schema.json`) and may be validated locally: ```sh check-jsonschema --schemafile schema/pack-metadata.schema.json pack-metadata.yaml @@ -55,8 +55,7 @@ Key fields the checklist depends on: - `nebariapp_integration` — `none` | `partial` | `full` | `na` - `scope.standalone-supported` — `yes` | `no` - `last_promoted_at` / `last_promoted_pr` — updated on every promotion -- `last_presales_demo` / `last_presales_demo_by` — updated on every successful pre-sales demo -- `demo_notes` — current known gotchas, surfaced verbatim on the dashboard +- `demo_notes` — current known gotchas, surfaced in the dashboard Notes column (first ~100 chars) See the full schema in the dashboard repo for required fields, validation rules, and the canonical example. @@ -91,7 +90,7 @@ A promotion is a PR in the pack repo that: 2. Updates the pack's `README.md` with the new declared level 3. Has the required reviewers listed below -The dashboard regenerates daily; no manual dashboard update is needed. +The dashboard regenerates hourly; no manual dashboard update is needed. Required reviewers per promotion: @@ -113,7 +112,7 @@ If "product owner" has not been named for a pack, the tech lead acts as product - `[E]` Repo is created from the software pack template - `[E]` `CODEOWNERS` names at least one accountable engineer - `[E]` `pack-metadata.yaml` exists at the repo root, validates against the schema, and declares level + owner + scope flags -- `[E]` Pack is listed in `nebari-dev/pack-dashboard/tracked-packs.yaml` +- `[E]` Pack is listed in `nebari-dev/software-pack-dashboard/tracked-packs.yaml` - `[E]` README explains what the pack does and who it's for - `[B]` `product_owner` field is populated in `pack-metadata.yaml` (may be the tech lead by default) @@ -174,7 +173,6 @@ If "product owner" has not been named for a pack, the tech lead acts as product ### Pre-sales Verification - `[A]` Pre-sales engineer has run the demo end-to-end and signed off on the happy path -- `[A]` `last_presales_demo` and `last_presales_demo_by` updated in `pack-metadata.yaml` after the demo - `[B]` Pre-sales engineer has confirmed the pack can be demoed without engineering on the call - `[B]` `demo_notes` in `pack-metadata.yaml` reflects current known demo gotchas (or is empty if none) - `[GA]` Pre-sales engineer has verified the demo flow on the GA release commit after release @@ -193,9 +191,9 @@ If "product owner" has not been named for a pack, the tech lead acts as product Once `pack-metadata.yaml` is populated and the pack is in `tracked-packs.yaml`, the dashboard will automatically flag: - **`stale`** — no commits in 90 days (and not deprecated) -- **`demo-lapsed`** — at Alpha+ but no successful pre-sales demo in 60 days - **`no-product-owner`** — at GA but `product_owner` is null - **`metadata-missing`** / **`metadata-invalid`** — the file is missing or fails schema validation +- **`repo-not-found`** — the pack repo could not be reached at all These are visibility flags, not formal blockers, but a pack with persistent flags is signaling that something in this checklist has decayed. Tech lead reviews flags weekly. From f42de1c4455875834392ccb330dd9d8f6c9e173c Mon Sep 17 00:00:00 2001 From: Chuck McAndrew <6248903+dcmcand@users.noreply.github.com> Date: Fri, 15 May 2026 14:47:31 +0200 Subject: [PATCH 2/2] docs: correct pack-metadata source-of-truth claim and schema validation command The dashboard sources the Description, release, and last-commit columns from GitHub directly, not from pack-metadata.yaml (Description uses the GitHub repo description). Reword the overstated 'source of truth for everything the dashboard displays' claim accordingly. Make the check-jsonschema command copy-pasteable via the raw schema URL, and add the deprecated flag to the automatic-flags list. --- docs/release-readiness-checklist.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/release-readiness-checklist.md b/docs/release-readiness-checklist.md index 4c1b314..80d9237 100644 --- a/docs/release-readiness-checklist.md +++ b/docs/release-readiness-checklist.md @@ -40,10 +40,12 @@ The dashboard automatically moves deprecated packs to a separate table. ## Pack Metadata File -Every tracked pack has a `pack-metadata.yaml` at its repo root. This file is the source of truth for everything the dashboard displays and for the pack's declared maturity level. The schema is owned by the dashboard repo (`nebari-dev/software-pack-dashboard/schema/pack-metadata.schema.json`) and may be validated locally: +Every tracked pack has a `pack-metadata.yaml` at its repo root. It is the source of truth for the pack's declared maturity level, ownership, and integration metadata. (Other dashboard columns - Description, latest release, last commit - are pulled from GitHub directly, not from this file. The Description column specifically uses the GitHub repo description.) The schema is owned by the dashboard repo (`nebari-dev/software-pack-dashboard/schema/pack-metadata.schema.json`) and may be validated locally: ```sh -check-jsonschema --schemafile schema/pack-metadata.schema.json pack-metadata.yaml +check-jsonschema \ + --schemafile https://raw.githubusercontent.com/nebari-dev/software-pack-dashboard/main/schema/pack-metadata.schema.json \ + pack-metadata.yaml ``` Key fields the checklist depends on: @@ -194,6 +196,7 @@ Once `pack-metadata.yaml` is populated and the pack is in `tracked-packs.yaml`, - **`no-product-owner`** — at GA but `product_owner` is null - **`metadata-missing`** / **`metadata-invalid`** — the file is missing or fails schema validation - **`repo-not-found`** — the pack repo could not be reached at all +- **`deprecated`** — pack is marked `deprecated: true`; it also moves to the Deprecated packs table These are visibility flags, not formal blockers, but a pack with persistent flags is signaling that something in this checklist has decayed. Tech lead reviews flags weekly.