Skip to content

Shift left learning-path packaging checks (framing, depends, website.yaml description + trailing newline) - #434

Open
bonnywelsford-source wants to merge 3 commits into
mainfrom
chore/shift-left-lp-package-checks
Open

Shift left learning-path packaging checks (framing, depends, website.yaml description + trailing newline)#434
bonnywelsford-source wants to merge 3 commits into
mainfrom
chore/shift-left-lp-package-checks

Conversation

@bonnywelsford-source

@bonnywelsford-source bonnywelsford-source commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Reviewers (see #418) keep re-finding the same Learning Hub packaging issues on LP PRs after Pathfinder CI is already green:

  1. Framing / concept-intro packages listed in path milestones (should stay on disk for the website only)
  2. First hands-on milestone still depends on framing
  3. Missing path/step website.yaml description (required for Learning Hub meta / listings)
  4. Missing trailing newline on website.yaml (deploy-preview concatenates type: docs after cat, which breaks Hugo YAML — same class of failure as #453 / #419)

This PR encodes those rules in a script + CI so authors catch them before review, and documents the single source of truth for authoring and the LP review skill.

What changed

Area Change
.github/scripts/validate_learning_path_packages.py New validator (framing, depends, description, trailing newline; no PyYAML dep)
.github/workflows/validate-json.yml Wire validator into Validate Interactive Packages
docs/website-yaml-reference.md Document conventions + local CI command
.cursor/skills/review-learning-path/reference-checks.md Point Phase 2 at the script
.cursor/commands/create-learning-path/README.md Authoring checklist alignment

Test plan

  • python3 .github/scripts/validate_learning_path_packages.py passes on this branch
  • Stripping the final newline from any website.yaml fails the script with a clear message
  • Validate Interactive Packages job runs the new step on the PR

Add CI validation for framing-out-of-milestones, first hands-on depends, and required website.yaml description so LP PRs fail before review instead of after green Pathfinder checks. Backfill missing Azure descriptions so main stays green.

Co-authored-by: Cursor <cursoragent@cursor.com>
pathfinder-app@main requires Node >=24; Node 22 npm ci rejects the current lockfile (Missing typescript@5.9.3), which was breaking validate-packages on all recent PRs.

Co-authored-by: Cursor <cursoragent@cursor.com>
@bonnywelsford-source

Copy link
Copy Markdown
Contributor Author

CI failure on https://github.com/grafana/interactive-tutorials/actions/runs/29296638582 was not from the new packaging script — it died earlier at Install dependencies for grafana-pathfinder-app.

Root cause: pathfinder-app now declares engines.node: >=24, and on Node 22 npm ci fails with Missing: typescript@5.9.3 from lock file. Bumped workflow Node to 24 in validate + deploy.

Catch the deploy-preview Hugo front-matter break (missing final newline merges into type: docs) in Validate Interactive Packages instead of only at preview build time.

Co-authored-by: Cursor <cursoragent@cursor.com>
@bonnywelsford-source bonnywelsford-source changed the title Shift left learning-path packaging checks (framing, depends, website.yaml description) Shift left learning-path packaging checks (framing, depends, website.yaml description + trailing newline) Jul 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant