Add package metadata diagnostics #248

Merged
erik merged 1 commit from feat/task-83040556-package-metadata-diagnostics into main 2026-06-30 07:45:43 -05:00
Owner

Summary

  • Add safe package metadata types to @evcraddock/slug-core and optional metadata support to @evcraddock/slug-api meta responses.
  • Expose template/package version metadata from the template site's /api/v1/meta route and OpenAPI schema.
  • Add generated-site package metadata to .slugkit-site.json during slug init.
  • Update slug doctor to report package metadata and warn about stale known Slugkit package versions.
  • Add advisory-only slug upgrade output that reports recommended package updates without changing files.
  • Document generated-site package update workflow in docs/package-updates.md.
  • Bump changed publishable packages for release: @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.

Verification

  • npm run build --workspace @evcraddock/slug-core
  • npm run build --workspace @evcraddock/slug-api
  • npm run build --workspace @evcraddock/slug-template
  • npm run build --workspace @evcraddock/slug-cli
  • npm run typecheck --workspaces
  • npm test --workspace @evcraddock/slug-core
  • npm test --workspace @evcraddock/slug-api
  • npm test --workspace @evcraddock/slug-template
  • npm test --workspace @evcraddock/slug-cli -- commands.test.ts
  • npm test --workspace @slugkit/template-site -- src/api/__tests__/routes.test.ts
  • npm run package:pack:dry-run -- --workspace @evcraddock/slug-core
  • npm run package:release -- --workspace @evcraddock/slug-core --dry-run
  • npm run package:pack:dry-run -- --workspace @evcraddock/slug-api
  • npm run package:release -- --workspace @evcraddock/slug-api --dry-run
  • npm run package:pack:dry-run -- --workspace @evcraddock/slug-template
  • npm run package:release -- --workspace @evcraddock/slug-template --dry-run
  • npm pack --workspace @evcraddock/slug-cli --dry-run
  • ./scripts/pre-pr.sh

Task: #task-83040556

## Summary - Add safe package metadata types to `@evcraddock/slug-core` and optional metadata support to `@evcraddock/slug-api` meta responses. - Expose template/package version metadata from the template site's `/api/v1/meta` route and OpenAPI schema. - Add generated-site package metadata to `.slugkit-site.json` during `slug init`. - Update `slug doctor` to report package metadata and warn about stale known Slugkit package versions. - Add advisory-only `slug upgrade` output that reports recommended package updates without changing files. - Document generated-site package update workflow in `docs/package-updates.md`. - Bump changed publishable packages for release: `@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`. ## Verification - `npm run build --workspace @evcraddock/slug-core` - `npm run build --workspace @evcraddock/slug-api` - `npm run build --workspace @evcraddock/slug-template` - `npm run build --workspace @evcraddock/slug-cli` - `npm run typecheck --workspaces` - `npm test --workspace @evcraddock/slug-core` - `npm test --workspace @evcraddock/slug-api` - `npm test --workspace @evcraddock/slug-template` - `npm test --workspace @evcraddock/slug-cli -- commands.test.ts` - `npm test --workspace @slugkit/template-site -- src/api/__tests__/routes.test.ts` - `npm run package:pack:dry-run -- --workspace @evcraddock/slug-core` - `npm run package:release -- --workspace @evcraddock/slug-core --dry-run` - `npm run package:pack:dry-run -- --workspace @evcraddock/slug-api` - `npm run package:release -- --workspace @evcraddock/slug-api --dry-run` - `npm run package:pack:dry-run -- --workspace @evcraddock/slug-template` - `npm run package:release -- --workspace @evcraddock/slug-template --dry-run` - `npm pack --workspace @evcraddock/slug-cli --dry-run` - `./scripts/pre-pr.sh` Task: #task-83040556
feat: add package metadata diagnostics
All checks were successful
CI / build-lint-test (pull_request) Successful in 56s
b45d67bfa6
Task: #task-83040556
Author
Owner

Review summary

PR #248 adds safe Slugkit package metadata to the API surface, generated-site marker, slug doctor, and advisory-only slug upgrade output. It keeps upgrade behavior non-destructive and documents manual package update workflow.

Acceptance criteria

  • Template site exposes safe package/version metadata after runtime packages are consumed — /api/v1/meta now includes packageMetadata with template identity, Slugkit package versions, advisory-only flag, and migration notes URL.
  • Generated sites include enough metadata to identify template and package versions — slug init writes package metadata into .slugkit-site.json.
  • slug doctor reports package compatibility information when available — doctor now adds a packages check and warns when known Slugkit package versions are stale.
  • Upgrade behavior is advisory and non-destructive by default — slug upgrade returns/prints recommendations and explicitly changes no files.
  • Documentation explains how to update generated-site package dependencies — docs/package-updates.md documents manual update workflow.
  • Any changed npm package is published and post-publish verification succeeds — not applicable until after merge; changed publishable packages are version-bumped for release.
  • ./scripts/pre-pr.sh passes — verified locally and Forgejo CI run #362 passed.

Blocking issues

None for merging this implementation PR.

Warnings

  • Post-merge release required for changed publishable 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.
  • Publish order should be core → api → template → cli because downstream packages reference the bumped versions.

Verdict

Approved. Stop at the human merge gate.

### Review summary PR #248 adds safe Slugkit package metadata to the API surface, generated-site marker, `slug doctor`, and advisory-only `slug upgrade` output. It keeps upgrade behavior non-destructive and documents manual package update workflow. ### Acceptance criteria - [x] Template site exposes safe package/version metadata after runtime packages are consumed — `/api/v1/meta` now includes `packageMetadata` with template identity, Slugkit package versions, advisory-only flag, and migration notes URL. - [x] Generated sites include enough metadata to identify template and package versions — `slug init` writes package metadata into `.slugkit-site.json`. - [x] `slug doctor` reports package compatibility information when available — doctor now adds a `packages` check and warns when known Slugkit package versions are stale. - [x] Upgrade behavior is advisory and non-destructive by default — `slug upgrade` returns/prints recommendations and explicitly changes no files. - [x] Documentation explains how to update generated-site package dependencies — `docs/package-updates.md` documents manual update workflow. - [ ] Any changed npm package is published and post-publish verification succeeds — not applicable until after merge; changed publishable packages are version-bumped for release. - [x] `./scripts/pre-pr.sh` passes — verified locally and Forgejo CI run #362 passed. ### Blocking issues None for merging this implementation PR. ### Warnings - Post-merge release required for changed publishable 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`. - Publish order should be core → api → template → cli because downstream packages reference the bumped versions. ### Verdict Approved. Stop at the human merge gate.
erik merged commit b3edba2e62 into main 2026-06-30 07:45:43 -05:00
erik deleted branch feat/task-83040556-package-metadata-diagnostics 2026-06-30 07:45:43 -05:00
Sign in to join this conversation.
No reviewers
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!248
No description provided.