Skip to content

Nothing checks that glossary.json has the shape the page expects #54

Description

@pushpam2404

Context

js/glossary.js reads term, short, full and seeAlso. A contributor adding an entry can misspell a key, omit short, or make seeAlso a string instead of an array, and CI will happily pass — the page just renders a half-empty card.

What to change

Files: A new script, plus .github/workflows/lint.yml

Requirements:

  • Add a checker that validates every entry has term and short as non-empty strings
  • full is optional; seeAlso, when present, must be an array of strings
  • Fail on duplicate terms, case-insensitively
  • Report the offending entry by term and index, not just "invalid"
  • Wire it into the existing lint workflow as a blocking check
  • Follow scripts/build_contributors.py for style — Python 3 standard library only

Acceptance criteria

  • A malformed entry fails the check with a message naming it
  • A duplicate term fails
  • The current file passes
  • It runs in CI on every pull request
  • The error message tells a first-time contributor how to fix it

How to verify locally

python3 scripts/check_glossary.py

Difficulty

Intermediate. Mirrors what build_contributors.py --check does for the wall.


New here? Comment /claim on this issue and a bot will assign it to you. Then read CONTRIBUTING.md.

Stuck at any point? Comment here saying what you have tried and where it stopped working — that is not an admission of failure, it is how we find out the instructions were unclear. You can also come to a PR Debug Clinic (Oct 12 or Oct 21).

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciGitHub Actions, linting, automationdifficulty: intermediateRequires reading existing codedomain: os-devxOpen Source & Developer ExperiencehacktoberfestCounts toward Hacktoberfest 2026test-coverageAdding or improving tests

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions