- pyproject.toml with pytest>=8 in [dependency-groups.dev] so
uv run --group dev pytest resolves without a global install
- tests/__init__.py and tests/conftest.py skeleton referencing issue #162
- pre-commit local hook runs pytest tests/ on Python file changes;
exit code 5 (no tests collected) is treated as success so commits
are not blocked while the test suite is being built out
Adds schema/metadata.json (JSON Schema draft-07) as the authoritative
schema for all rpms/*/metadata.yaml files. Key constraints:
- additionalProperties: false at both the top level and builds items,
so unknown fields are rejected outright
- name allows dots (fixes neovim-glibc-2.17)
- github is optional (fixes claude-code, which has no GitHub repo)
- repository enum includes fedora/42, fedora/43, fedora/44
- dist_tag boolean field documented in schema
Pre-commit hook (check-jsonschema 0.37.2) runs against every file
matching ^rpms/[^/]+/metadata\.yaml$ on every commit.
Also fixes rpms/claude-code/metadata.yaml: removes the unknown
claude_ai field and normalises field order.