Files
Nikolay Miroshnichenko 4eb54da53c tools: local corpus guard against real ETS projects
Public CI only runs synthetic fixtures, but every regression we have actually
shipped showed up on real projects, which are confidential and cannot reach a
GitHub runner. corpus_check.py runs a local corpus through the full pipeline
(parse, checks, HA YAML, entity suggestions) and diffs the counts against a
recorded baseline.

Only numbers are committed: counts, severity and code histograms, and a short
digest per source file. The project map with real paths lives in
tools/corpus_map.json, which is gitignored; corpus_map.example.json shows the
shape. Verified both directions: a deliberate change to the diagnostics filter
made the guard exit 1 and name the two metrics that moved, a clean tree exits 0,
and a machine without a map exits 2 without doing anything.

Wired into CONTRIBUTING and into the release checklist before the build step.
2026-09-12 21:31:44 +02:00

36 lines
533 B
Plaintext

# Python
__pycache__/
*.py[cod]
*.egg-info/
.eggs/
build/
dist/
*.egg
# Virtualenvs
.venv/
venv/
env/
# Test / type / lint caches
.pytest_cache/
.mypy_cache/
.ruff_cache/
# Workspace / generated artifacts (never commit live project exports blindly)
knx-workspace/
*.knxproj
*.knxkeys
*.keyring
# ...except the curated synthetic demo (no real topology / no secrets)
!examples/demo-home/demo-home.knxproj
# OS / editors
.DS_Store
.idea/
.vscode/
*.swp
# local corpus map: real project paths, never committed
tools/corpus_map.json