mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-04 06:15:09 +00:00
- mypy.ini parses again (multi-line exclude and inline value comments made mypy reject the file); the mypy pre-commit hook is manual-only until the ~500 existing errors in src/ are paid down, and CONTRIBUTING says so - .gitignore: ignore all of config/ except the templates (ytm_auth.json and others weren't ignored) - .gitattributes: LF for .sh and .service - claude-code-review: skip fork PRs, which have no secrets - check_system_compatibility.sh: 3.13 supported, <3.10 an error - docs/scripts drift: emulator guide, README API Metrics, route count, docs index, scripts README; pyflakes nits in dev scripts Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
90 lines
2.8 KiB
Plaintext
90 lines
2.8 KiB
Plaintext
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
|
|
# Secrets and per-device state. Everything the software writes into config/
|
|
# is local to one device -- config.json, config_secrets.json, wifi_config.json,
|
|
# ytm_auth.json (a login session), saved_repositories.json, font_overrides.json,
|
|
# and the temp files atomic writes leave behind when interrupted -- so only
|
|
# the templates are tracked. Listing files one by one missed several.
|
|
config/*
|
|
!config/*.template.json
|
|
credentials.json
|
|
token.pickle
|
|
|
|
# Environment
|
|
.env
|
|
.venv
|
|
env/
|
|
venv/
|
|
venv*/
|
|
ENV/
|
|
|
|
# IDE
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
*.swo
|
|
emulator_config.json
|
|
|
|
# Testing
|
|
.pytest_cache/
|
|
.coverage
|
|
htmlcov/
|
|
.mypy_cache/
|
|
|
|
# Cache directory (root level only, not src/cache which is source code)
|
|
/cache/
|
|
|
|
# Development plugins directory: symlinks into a ledmatrix-plugins checkout
|
|
# See docs/PLUGIN_DEVELOPMENT_GUIDE.md and docs/MULTI_ROOT_WORKSPACE_SETUP.md
|
|
plugins/*
|
|
!plugins/.gitkeep
|
|
# Local settings for scripts/dev/dev_plugin_setup.sh (template: dev_plugins.json.example)
|
|
/dev_plugins.json
|
|
|
|
# Binary files and backups
|
|
bin/pixlet/
|
|
config/backups/
|
|
|
|
# Starlark apps runtime storage (installed .star files and cached renders)
|
|
/starlark-apps/
|
|
|
|
# JS test deps (test/js)
|
|
node_modules/
|
|
package-lock.json
|
|
|
|
# Team logos fetched at runtime.
|
|
#
|
|
# src/logo_downloader.py and LogoHelper write into assets/sports/<league>_logos/
|
|
# whenever a plugin meets a team whose logo is not on disk. Those directories are
|
|
# also tracked -- 209 NCAA logos and 153 soccer ones ship with the repo -- so
|
|
# every rig accumulated untracked files it was never meant to commit and
|
|
# `git status` was permanently dirty. That noise is not harmless: it trains
|
|
# everyone to ignore the one signal that says a checkout is not what you think
|
|
# it is, which is how a stale tree sat unnoticed on a rig until a restart
|
|
# surfaced four dead sports plugins.
|
|
#
|
|
# Ignoring a directory does not untrack what is already in it, so the logos that
|
|
# ship keep shipping. Only new downloads are hidden.
|
|
#
|
|
# Adding a logo on purpose is rare and deliberate -- the last time was #415, four
|
|
# named NCAA logos a plugin needed, and there has been no other in a year. Do it
|
|
# with an explicit override:
|
|
# git add -f assets/sports/ncaa_logos/DUKE.png
|
|
assets/sports/*_logos/
|
|
assets/stocks/ticker_icons/
|
|
assets/stocks/crypto_icons/
|
|
|
|
# Plugin operation state written at runtime.
|
|
#
|
|
# web_interface/app.py writes data/plugin_state.json and data/operation_history.json
|
|
# (older releases also data/plugin_operations.json) as the web interface runs, into
|
|
# a directory that ships tracked (data/.gitkeep). Unignored, every rig that ever
|
|
# opened the web UI -- and every test run that constructs the app -- would leave
|
|
# untracked files behind and a permanently dirty `git status`. Same reasoning as
|
|
# the logo rule above: a checkout that is always dirty is a checkout nobody reads.
|
|
data/*
|
|
!data/.gitkeep
|