WUT_Computer_Science/Programming
Krzysztof kuhy Rudnicki 7b019d103f Gate the zero, and fix the LaTeX course the run guard exposed
The archive reached zero ruff findings this morning, so the standing rule in
.pre-commit-config.yaml -- a hook lands only once the thing it gates is clean
-- is finally satisfied for ruff. `ruff check` and `ruff format --check` are
hooks now, pinned at v0.16.5 per rules/dependency-freshness, plus
`no-suppressions`, which rejects `# noqa` and `# type: ignore`. CLAUDE.md has
always claimed a hook did that; until now the only thing stopping them was
whoever was reading ruff's output, and I typed `# noqa-free` three times in
this session by accident. mypy stays out: six of its errors are third-party
typing limits rather than our code.

The first attempt used `language: system`, which passed `pre-commit run
--all-files` and then failed the actual commit with "Executable `ruff` not
found" -- git hooks do not get ~/.local/bin on PATH. Taking the hooks from
astral-sh/ruff-pre-commit means pre-commit installs ruff itself, which is also
what makes the pin mean anything.

`ruff format --check` failed the moment it was wired up, on four TRAK files I
wrote today and never formatted. Formatted, and the ray_tracing0 render is
still 02484bdb6b6c1ddeff317d7e5566580f.

Then the run guard from f780d023 needed proving on more than TRAK, since it
now applies to every course kind. make, cpp and python courses pass it; node
and target and obj are all properly gitignored, so npm, maven and dotnet
builds cannot trip it either. But NotProgramming/MOM failed, and not because
of the guard:

`_first_file '*.tex'` used `find -print -quit`, which returns whatever readdir
hands back. After the 19 reports were split into sections, that was
`report_three/sections/02-model-dwukryterialny.tex`, and latexmk faithfully
tried to typeset a bare `\section` as a document. DOCS-runnability.md has
recorded MOM as runnable throughout. The tex branch now picks a file that
actually contains `\documentclass`.

Deliberately not sorted, and that is the interesting part. Sorting is the
obvious fix and it made things worse: it swapped ELAC's pick to projectA and
AIS's to report/final/ver1, both of which fail with latexmk exit 12. Those two
documents are broken independently, and sorting merely surfaced them; turning
two green courses red to fix a third is a bad trade. Recorded in
TODO-refactor-remaining.md instead. MOM, ELAC, AIS, SPD, ZPOB, SDM, DPZ and
ESOEN all exit 0 now.

`_works` also grew a `timeout 5`, because `unityhub --version` never returns
on this machine and a probe without one would hang the status sweep.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-29 08:41:34 +02:00
..
AIS Split 19 over-cap LaTeX reports, proving each PDF is unchanged 2026-08-28 19:47:12 +02:00
BD2 Add a run.sh to every course, and fix the code that would not build 2026-08-28 18:37:55 +02:00
BSS Run all 33 safe courses; fix what that broke 2026-08-28 18:52:31 +02:00
E-PSYOPS Run all 33 safe courses; fix what that broke 2026-08-28 18:52:31 +02:00
EADS Add a run.sh to every course, and fix the code that would not build 2026-08-28 18:37:55 +02:00
EARIN PORR runs in 28s, and three checks so the next pass cannot repeat my mistakes 2026-08-28 20:50:46 +02:00
ECOAR Add a run.sh to every course, and fix the code that would not build 2026-08-28 18:37:55 +02:00
ECOTE ECOTE and ECRYPT_PROJECT: zero findings, tests still green 2026-08-28 20:03:01 +02:00
ECRYPT Hold the coursework to the same lint bar as the tooling 2026-08-28 19:53:04 +02:00
ECRYPT_PROJECT ECOTE and ECRYPT_PROJECT: zero findings, tests still green 2026-08-28 20:03:01 +02:00
EGUI Add a run.sh to every course, and fix the code that would not build 2026-08-28 18:37:55 +02:00
EOOP Run all 33 safe courses; fix what that broke 2026-08-28 18:52:31 +02:00
EOPSY Split 19 over-cap LaTeX reports, proving each PDF is unchanged 2026-08-28 19:47:12 +02:00
EPFU Add a run.sh to every course, and fix the code that would not build 2026-08-28 18:37:55 +02:00
ERSMS-project ERSMS-project: zero findings, and the SQL is parameterised now 2026-08-29 08:30:01 +02:00
NLP PORR: zero findings, 18 tests still passing after every refactor 2026-08-28 21:01:13 +02:00
PBAD PBAD: zero findings across three notebooks, outputs bit-for-bit intact 2026-08-29 08:15:56 +02:00
PORR PORR: zero findings, 18 tests still passing after every refactor 2026-08-28 21:01:13 +02:00
PSD PSD: zero findings, and four modules that no longer run on import 2026-08-29 08:22:57 +02:00
psd_project Add a run.sh to every course, and fix the code that would not build 2026-08-28 18:37:55 +02:00
TRAK Gate the zero, and fix the LaTeX course the run guard exposed 2026-08-29 08:41:34 +02:00
twm_4 twm_4: zero findings, with the notebook's outputs proved untouched 2026-08-29 08:10:31 +02:00
USD Add a run.sh to every course, and fix the code that would not build 2026-08-28 18:37:55 +02:00
WDWR Hold the coursework to the same lint bar as the tooling 2026-08-28 19:53:04 +02:00
ZPOB Make ZPOB build: its essay was handed in without a bibliography 2026-08-28 19:18:11 +02:00