WUT_Computer_Science/gates/runnability-local.tsv
Krzysztof kuhy Rudnicki e512bde26f Gate the invariants, fix ECOTE's unrunnable tests, contain build output
Two invariants had been established by hand and left ungated, which is the
"a remedy that only works if someone remembers" pattern:

  - scripts/check_ignore_consistency.sh fails the commit if any TRACKED file
    is also gitignored. .binary-allowlist used to *instruct* the reader to
    re-run that check; now it is enforced. Verified both ways -- passes on the
    tree, and fails when an ignored file is force-added.

DOCS-runnability.md now really has two columns. Each environment writes only
its own gates/runnability-<env>.tsv and the doc renders from both, so a CI run
cannot clobber the local results. The ci tsv is gitignored: committing a copy
generated here would label this machine's capabilities as the runner's.
Rendering it surfaced a classic bug -- awk's NR==FNR idiom silently swallows
the SECOND file when the first is empty, so the table came out with a header
and no rows. It compares FILENAME instead.

runnability.yml deliberately does NOT diff against a committed baseline. A
status is a property of the machine, so `runnable` locally and `blocked` on a
runner is correct rather than drift, and diffing would make the workflow red
by construction. It fails on `error` instead -- a runner that crashes or
reports an unknown kind.

Then five more courses were actually run, because EADS alone had produced four
real bugs and one sample proves nothing:

  - ECOAR and EPFU build (nasm + 32-bit gcc, and gcc respectively).
  - ECOTE's 17 test modules could not run AT ALL. Its package is named `code/`,
    which shadows the standard library: pytest's debugging plugin imports pdb,
    pdb imports code, and it got this directory instead, so the suite died
    with an INTERNALERROR before collecting a single test. Renamed to
    translator/ with all 17 imports updated -- 26 tests now pass.
  - A LaTeX report builds. That one exposed a hazard rather than a bug:
    latexmk wrote its PDF beside the source, and in a course where the built
    name matches the submitted one it would have silently overwritten a
    tracked deliverable. Both the LaTeX and C++ runners now build into a
    gitignored build/, and rebuilding ECOGR leaves `git status` empty.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0172dj34FDpao6wsix8ZuCzE
2026-08-28 18:43:13 +02:00

2.7 KiB

1NotProgramming/DPZrunnablebuilds the report with latexmk
2NotProgramming/ECOGRrunnablebuilds the report with latexmk
3NotProgramming/EDABArunnablebuilds the report with latexmk
4NotProgramming/EDABA-LABrunnablebuilds the report with latexmk
5NotProgramming/EDISErunnablebuilds the report with latexmk
6NotProgramming/EDISPno-codesubmitted lab reports as PDFs only; no source was produced
7NotProgramming/ELACrunnablebuilds the report with latexmk
8NotProgramming/EMISYrunnablebuilds the report with latexmk
9NotProgramming/ENUMEblockedneeds MATLAB or Octave (none of: matlab octave)
10NotProgramming/EPHY2no-codesubmitted lab reports as PDFs only; no source was produced
11NotProgramming/EPOGAIno-codea presentation only; no source was produced
12NotProgramming/ERPMrunnablebuilds the report with latexmk
13NotProgramming/ESDP1runnablebuilds the report with latexmk
14NotProgramming/ESOENrunnablebuilds the report with latexmk
15NotProgramming/MOMrunnablebuilds the report with latexmk
16NotProgramming/SDMrunnablebuilds the report with latexmk
17NotProgramming/SDM2runnablebuilds the report with latexmk
18NotProgramming/SPDrunnablebuilds the report with latexmk
19NotProgramming/STUPrunnablenpm install && npm start
20Programming/AISrunnablebuilds the report with latexmk
21Programming/BD2runnablenpm install && npm start
22Programming/BSSrunnablebuilds the report with latexmk
23Programming/EADSrunnablecompiles each standalone .cpp
24Programming/EARINrunnablepython3 the entry script
25Programming/ECOARrunnablemake
26Programming/ECOTErunnablepython3 /home/kuhy/WUT_Computer_Science/Programming/ECOTE/program/translator/main.py
27Programming/ECRYPTno-codetest1.py is a 0-byte stub; this course produced no submitted code
28Programming/ECRYPT_PROJECTrunnablepython3 /home/kuhy/WUT_Computer_Science/Programming/ECRYPT_PROJECT/code
29Programming/EGUIrunnabledotnet build
30Programming/EOOPrunnablecompiles each standalone .cpp
31Programming/EOPSYrunnablemake
32Programming/EPFUrunnablemake
33Programming/E-PSYOPSrunnableopens in the Unity editor
34Programming/ERSMS-projectrunnabledocker compose up
35Programming/NLPrunnablepython3 the entry script
36Programming/PBADrunnablejupyter nbconvert --execute
37Programming/PORRrunnablepython3 /home/kuhy/WUT_Computer_Science/Programming/PORR/code
38Programming/PSDrunnablestarts the Kafka/Flink stack (installs packages with sudo)
39Programming/psd_projectrunnablemvn package
40Programming/TRAKrunnablepython3 the entry script
41Programming/twm_4runnablejupyter nbconvert --execute
42Programming/USDno-codeREADME describes a MetaDrive RL assignment; no implementation was submitted
43Programming/WDWRrunnablepython3 the entry script
44Programming/ZPOBrunnablebuilds the report with latexmk