Skip to content

Fix/registry schema validation#2583

Open
stevenjoezhang wants to merge 2 commits into
masterfrom
fix/registry-schema-validation
Open

Fix/registry schema validation#2583
stevenjoezhang wants to merge 2 commits into
masterfrom
fix/registry-schema-validation

Conversation

@stevenjoezhang

Copy link
Copy Markdown
Member

What changed

This PR extends the existing registry validation so the Tester workflow can catch malformed theme/plugin metadata before maintainers need to review it manually.

It adds validation for:

  • Theme YAML schema:
    • required description, link, preview, and non-empty tags
    • unsupported top-level fields
    • optional repository field shape and value types
    • optional author must be a string
  • Plugin YAML schema:
    • required description, link, and non-empty tags
    • unsupported top-level fields
    • optional repository field shape and value types
  • Case-insensitive registry conflicts:
    • theme names such as Pure vs pure
    • plugin names with case-only differences
    • theme screenshot filenames such as Pure.png vs pure.png

Why

Recent PRs exposed two validation gaps:

  • Invalid theme YAML could pass because only screenshot validation was reported.
  • Case-only duplicate filenames can merge successfully on GitHub/Linux, but break local checkouts on case-insensitive filesystems such as default macOS.

Test plan

  • node --check scripts/validate.js
  • Verified invalid fixture-style data reports schema errors locally.

@github-actions github-actions Bot added the infra infrastructure, configuration of this repo label Jul 7, 2026
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

❌ Theme names conflict by case: Pure, pure.
❌ Theme screenshot filenames conflict by case: Pure.png, pure.png.
❌ Theme thumbnails or registry schema validation failed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infra infrastructure, configuration of this repo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant