Add package metadata diagnostics #230

Closed
opened 2026-06-28 22:33:11 -05:00 by erik · 3 comments
Owner

Goal

Expose enough package and compatibility metadata for slug doctor and future upgrade tooling to help generated sites stay current without automatic destructive rewrites.

Requirements

  • Implement the work described in docs/npm-specs/07-doctor-upgrade-metadata.md.
  • Define metadata shape for generated template version and consumed package versions.
  • Add shared metadata types to @evcraddock/slug-core if needed.
  • Update the template site to expose safe package/version metadata through an appropriate Slugkit API metadata route.
  • Update slug doctor to display package metadata and warn about incompatible or stale package combinations when available.
  • Design advisory slug upgrade output that reports package updates and migration notes before making changes.
  • Document how generated-site owners should apply package updates.
  • Publish any package that gains new public metadata helpers or CLI behavior and verify post-publish behavior.

Acceptance criteria

  • Template site exposes safe package/version metadata after runtime packages are consumed.
  • Generated sites include enough metadata to identify template and package versions.
  • slug doctor reports package compatibility information when available.
  • Upgrade behavior is advisory and non-destructive by default.
  • Documentation explains how to update generated-site package dependencies.
  • Any changed npm package is published and post-publish verification succeeds.
  • ./scripts/pre-pr.sh passes.

Dependencies

  • task-dce4aca3
## Goal Expose enough package and compatibility metadata for `slug doctor` and future upgrade tooling to help generated sites stay current without automatic destructive rewrites. ## Requirements - Implement the work described in `docs/npm-specs/07-doctor-upgrade-metadata.md`. - Define metadata shape for generated template version and consumed package versions. - Add shared metadata types to `@evcraddock/slug-core` if needed. - Update the template site to expose safe package/version metadata through an appropriate Slugkit API metadata route. - Update `slug doctor` to display package metadata and warn about incompatible or stale package combinations when available. - Design advisory `slug upgrade` output that reports package updates and migration notes before making changes. - Document how generated-site owners should apply package updates. - Publish any package that gains new public metadata helpers or CLI behavior and verify post-publish behavior. ## Acceptance criteria - [ ] Template site exposes safe package/version metadata after runtime packages are consumed. - [ ] Generated sites include enough metadata to identify template and package versions. - [ ] `slug doctor` reports package compatibility information when available. - [ ] Upgrade behavior is advisory and non-destructive by default. - [ ] Documentation explains how to update generated-site package dependencies. - [ ] Any changed npm package is published and post-publish verification succeeds. - [ ] `./scripts/pre-pr.sh` passes. ## Dependencies - task-dce4aca3
Author
Owner

Synced from todu comment by @todu on 2026-06-30T12:30:49.295Z

Review update

  • PR: #248 is open with Forgejo CI run #362 passing.
  • Result: approved for merge.
  • Verified: safe package metadata in /api/v1/meta, generated-site .slugkit-site.json metadata, slug doctor package diagnostics, advisory-only slug upgrade, generated-site package update docs, package dry-runs, ./scripts/pre-pr.sh, and Forgejo CI build-lint-test passed.
  • Follow-up after merge: publish changed packages in dependency order: @evcraddock/slug-core@0.1.1, @evcraddock/slug-api@0.1.1, @evcraddock/slug-template@0.1.1, then @evcraddock/slug-cli@0.6.1; verify post-publish behavior before task closure.
_Synced from todu comment by @todu on 2026-06-30T12:30:49.295Z_ ### Review update - PR: #248 is open with Forgejo CI run #362 passing. - Result: approved for merge. - Verified: safe package metadata in `/api/v1/meta`, generated-site `.slugkit-site.json` metadata, `slug doctor` package diagnostics, advisory-only `slug upgrade`, generated-site package update docs, package dry-runs, `./scripts/pre-pr.sh`, and Forgejo CI `build-lint-test` passed. - Follow-up after merge: publish changed packages in dependency order: `@evcraddock/slug-core@0.1.1`, `@evcraddock/slug-api@0.1.1`, `@evcraddock/slug-template@0.1.1`, then `@evcraddock/slug-cli@0.6.1`; verify post-publish behavior before task closure.
Author
Owner

Synced from todu comment by @todu on 2026-06-30T12:58:00.980Z

Merge and release update

  • PR #248 merged into main.
  • Forgejo push CI passed: run #363.
  • Published changed npm packages in dependency order:
    • @evcraddock/slug-core@0.1.1 via run #364.
    • @evcraddock/slug-api@0.1.1 via run #365.
    • @evcraddock/slug-template@0.1.1 via run #366.
    • @evcraddock/slug-cli@0.6.1 via run #367.
  • Verified npm registry availability for all four published versions.
  • Verified post-publish behavior in a temp project with @evcraddock/slug-cli@0.6.1 installed from npm:
    • npx slug init generated .slugkit-site.json package metadata with template version 0.1.1.
    • Generated site used published @evcraddock/slug-core@0.1.1.
    • Generated site did not keep @evcraddock/slug-template as a runtime dependency.
    • slug upgrade --json returned advisory-only recommendations without changing files.
_Synced from todu comment by @todu on 2026-06-30T12:58:00.980Z_ ### Merge and release update - PR #248 merged into `main`. - Forgejo push CI passed: run #363. - Published changed npm packages in dependency order: - `@evcraddock/slug-core@0.1.1` via run #364. - `@evcraddock/slug-api@0.1.1` via run #365. - `@evcraddock/slug-template@0.1.1` via run #366. - `@evcraddock/slug-cli@0.6.1` via run #367. - Verified npm registry availability for all four published versions. - Verified post-publish behavior in a temp project with `@evcraddock/slug-cli@0.6.1` installed from npm: - `npx slug init` generated `.slugkit-site.json` package metadata with template version `0.1.1`. - Generated site used published `@evcraddock/slug-core@0.1.1`. - Generated site did not keep `@evcraddock/slug-template` as a runtime dependency. - `slug upgrade --json` returned advisory-only recommendations without changing files.
erik 2026-06-30 08:05:50 -05:00
Author
Owner

Synced from todu comment by @todu on 2026-06-30T13:04:15.443Z

Closing summary

All acceptance criteria are satisfied.

  • Template site exposes safe package/version metadata through /api/v1/meta.
  • Generated sites include .slugkit-site.json package metadata identifying template and package versions.
  • slug doctor reports package metadata and stale package warnings when available.
  • slug upgrade is advisory-only and non-destructive by default.
  • docs/package-updates.md explains manual generated-site package update workflow.
  • PR #248 merged into main; Forgejo push CI run #363 passed.
  • Published and verified changed packages: @evcraddock/slug-core@0.1.1, @evcraddock/slug-api@0.1.1, @evcraddock/slug-template@0.1.1, and @evcraddock/slug-cli@0.6.1.
  • Post-publish verification succeeded with a temp npm-installed CLI, npx slug init, generated package metadata, published package dependencies, and advisory slug upgrade --json.
_Synced from todu comment by @todu on 2026-06-30T13:04:15.443Z_ ### Closing summary All acceptance criteria are satisfied. - Template site exposes safe package/version metadata through `/api/v1/meta`. - Generated sites include `.slugkit-site.json` package metadata identifying template and package versions. - `slug doctor` reports package metadata and stale package warnings when available. - `slug upgrade` is advisory-only and non-destructive by default. - `docs/package-updates.md` explains manual generated-site package update workflow. - PR #248 merged into `main`; Forgejo push CI run #363 passed. - Published and verified changed packages: `@evcraddock/slug-core@0.1.1`, `@evcraddock/slug-api@0.1.1`, `@evcraddock/slug-template@0.1.1`, and `@evcraddock/slug-cli@0.6.1`. - Post-publish verification succeeded with a temp npm-installed CLI, `npx slug init`, generated package metadata, published package dependencies, and advisory `slug upgrade --json`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
erik/slugkit#230
No description provided.