Commit graph

5 commits

Author SHA1 Message Date
mauvehed
20690fb188
ci(validate): skip convention checks on schema-invalid data
Schema errors were reported but the cross-file checks still walked the
data as if it were well-formed, so a null list entry or a null item in
socialmedialinks crashed with an AttributeError and hid every other
error. Treat schema validation as a gate: report and skip the file.

Also skip the 'not listed in peoplelist.json' check when peoplelist.json
itself fails the schema, so the root cause is not buried.
2026-09-05 14:39:57 -05:00
mauvehed
7491bf1ce1
ci(validate): compare image paths case-sensitively
The is_file() check passed on macOS for /images/bill.jpg because the
filesystem is case-insensitive, while GitHub Pages and the Actions runner
are not. Match against the actual images/ listing instead.
2026-09-05 14:34:42 -05:00
mauvehed
657082e940
ci: validate memorial json against schema and site conventions
Add schema/person.schema.json and scripts/validate_people.py, run via a
pre-commit hook and a GitHub Actions job on pull requests. Checks:

- people/*.json match the schema (keys, types, item shapes)
- every peoplelist.json entry has a file and every file is listed once
- filenames are lowercase alphanumeric (two legacy names grandfathered)
- local image paths exist under images/
- link fields are http(s) with no surrounding whitespace
- text-only fields contain no HTML; maintext stays raw HTML by design

Warns (non-fatal) on gallery items with no title, which the page uses as
alt text. Adds a pip dependabot entry for scripts/requirements.txt.
2026-09-05 10:25:02 -05:00
mauvehed
379ddb47c7 remove scripts that are not needed 2026-03-14 22:53:55 -05:00
mauvehed
59f31e8506
Add issue processing automation - Phase 1 complete
Create comprehensive automation system for processing GitHub Issues
to generate memorial JSON files.

Phase 1 deliverables:
- Core Python script with issue fetching and parsing
- Configuration system with YAML support
- GitHub Issue template parser (handles * and - bullets)
- Person data extraction and normalization
- Filename generation logic
- Memorial JSON generator
- Dry-run mode with explicit CLI flags
- Comprehensive project documentation in devdocs/

Documentation includes:
- Architecture and component design
- Implementation phases and roadmap
- Data mapping from issues to JSON
- Testing checklist
- High-priority person list
- Progress tracker

Testing:
- Verified on issue 197 (Kevin Mitnick)
- Verified on issue 251 (Kris Nova)
- All tests run in safe dry-run mode
2025-12-18 20:12:21 -06:00