utils/.github/workflows
Krzysztof kuhy Rudnicki a473e91485 Stop installing linters the pre-commit jobs never use, and add cache fallbacks
Two follow-ups measured on the warm-cache run of d56b936, where the three
pre-commit jobs were 39-44s split as: 4s runner setup, 9s pip, 2s cache
restore, 23s hooks.

The 9s pip was pure waste. Every linting hook runs in its own isolated env
-- ruff, mypy, pylint, bandit and codespell each come from their own
repo+rev, mypy and pylint declaring their own additional_dependencies -- and
the only local hooks in the pre-commit stage need bash and python3. The
pytest-coverage hook, the one thing that would need the real dependency set,
is stages: [pre-push] and never runs here. Verified by running all three
configs green in a venv containing pre-commit and nothing else. The pin is
grepped out of requirements.txt so it cannot drift from the
dependency-freshness gate.

restore-keys is added because the exact key includes the config hash, so the
next hook-rev bump -- this session did one -- would have been a total miss
and reinstalled everything. A prefix hit rebuilds only the changed hook.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019kMvSMtsVMB3d2uoZ56pbp
2026-09-12 18:22:39 +02:00
..
crdt-sync-dart-tests.yml crdt_sync_dart: latest stable + exact pins, 100% coverage, CI for both crdt_sync packages 2026-08-28 12:32:24 +02:00
crdt-sync-flutter-tests.yml crdt_sync_dart: latest stable + exact pins, 100% coverage, CI for both crdt_sync packages 2026-08-28 12:32:24 +02:00
crdt-sync-precommit.yml Stop installing linters the pre-commit jobs never use, and add cache fallbacks 2026-09-12 18:22:39 +02:00
crdt-sync-tests.yml Cache pre-commit hooks per package, and pip, so CI stops reinstalling 2026-09-12 18:16:51 +02:00
dependency-freshness.yml Refuse to overwrite utils' own checker with the delegate shim 2026-08-28 16:02:34 +02:00
design-system-tests.yml Wire design_system into CI, and drop EmptyState's speculative action slot 2026-08-14 23:08:59 +02:00
file-length.yml One Python per repo, always the newest, and the gate that enforces it 2026-08-28 20:58:19 +02:00
freedays-precommit.yml Stop installing linters the pre-commit jobs never use, and add cache fallbacks 2026-09-12 18:22:39 +02:00
freedays-tests.yml Cache pre-commit hooks per package, and pip, so CI stops reinstalling 2026-09-12 18:16:51 +02:00
gatelock-precommit.yml Stop installing linters the pre-commit jobs never use, and add cache fallbacks 2026-09-12 18:22:39 +02:00
gatelock-tests.yml Cache pre-commit hooks per package, and pip, so CI stops reinstalling 2026-09-12 18:16:51 +02:00
github-device-auth-tests.yml github_device_auth: extract the GitHub device flow from four apps 2026-08-15 15:57:19 +02:00
md-naming.yml Add the shared markdown-naming gate and migrate utils' own docs 2026-08-24 15:53:12 +02:00
music-theory-tests.yml music_theory: music theory from first principles, as code you can hear 2026-09-11 18:29:13 +02:00
palette-drift.yml One Python per repo, always the newest, and the gate that enforces it 2026-08-28 20:58:19 +02:00
shared-gates-tests.yml One Python per repo, always the newest, and the gate that enforces it 2026-08-28 20:58:19 +02:00
sync-settings-ui-tests.yml Add sync_settings_ui: shared Firebase-only sync settings screen 2026-08-12 23:10:17 +02:00
ts-core-tests.yml Move ts_core and web_ui to vitest 5, React 19.3 and pnpm 12 2026-09-12 17:52:30 +02:00
web-ui-tests.yml Move ts_core and web_ui to vitest 5, React 19.3 and pnpm 12 2026-09-12 17:52:30 +02:00