WUT_Computer_Science/DOCS-runnability.md
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

3.8 KiB

Runnability

Generated by ./run.sh status. Do not edit by hand.

Status is recorded PER ENVIRONMENT, from gates/runnability-local.tsv and gates/runnability-ci.tsv. A directory that is runnable locally and blocked in CI is the normal case, not drift: the runner has no MATLAB, no Unity and no .NET SDK. Each environment rewrites only its own file, so a CI run cannot clobber the local column.

- means that environment has not probed yet.

Course local ci Detail (local)
NotProgramming/DPZ runnable - builds the report with latexmk
NotProgramming/ECOGR runnable - builds the report with latexmk
NotProgramming/EDABA runnable - builds the report with latexmk
NotProgramming/EDABA-LAB runnable - builds the report with latexmk
NotProgramming/EDISE runnable - builds the report with latexmk
NotProgramming/EDISP no-code - submitted lab reports as PDFs only; no source was produced
NotProgramming/ELAC runnable - builds the report with latexmk
NotProgramming/EMISY runnable - builds the report with latexmk
NotProgramming/ENUME blocked - needs MATLAB or Octave (none of: matlab octave)
NotProgramming/EPHY2 no-code - submitted lab reports as PDFs only; no source was produced
NotProgramming/EPOGAI no-code - a presentation only; no source was produced
NotProgramming/ERPM runnable - builds the report with latexmk
NotProgramming/ESDP1 runnable - builds the report with latexmk
NotProgramming/ESOEN runnable - builds the report with latexmk
NotProgramming/MOM runnable - builds the report with latexmk
NotProgramming/SDM runnable - builds the report with latexmk
NotProgramming/SDM2 runnable - builds the report with latexmk
NotProgramming/SPD runnable - builds the report with latexmk
NotProgramming/STUP runnable - npm install && npm start
Programming/AIS runnable - builds the report with latexmk
Programming/BD2 runnable - npm install && npm start
Programming/BSS runnable - builds the report with latexmk
Programming/EADS runnable - compiles each standalone .cpp
Programming/EARIN runnable - python3 the entry script
Programming/ECOAR runnable - make
Programming/ECOTE runnable - python3 /home/kuhy/WUT_Computer_Science/Programming/ECOTE/program/translator/main.py
Programming/ECRYPT no-code - test1.py is a 0-byte stub; this course produced no submitted code
Programming/ECRYPT_PROJECT runnable - python3 /home/kuhy/WUT_Computer_Science/Programming/ECRYPT_PROJECT/code
Programming/EGUI runnable - dotnet build
Programming/EOOP runnable - compiles each standalone .cpp
Programming/EOPSY runnable - make
Programming/EPFU runnable - make
Programming/E-PSYOPS runnable - opens in the Unity editor
Programming/ERSMS-project runnable - docker compose up
Programming/NLP runnable - python3 the entry script
Programming/PBAD runnable - jupyter nbconvert --execute
Programming/PORR runnable - python3 /home/kuhy/WUT_Computer_Science/Programming/PORR/code
Programming/PSD runnable - starts the Kafka/Flink stack (installs packages with sudo)
Programming/psd_project runnable - mvn package
Programming/TRAK runnable - python3 the entry script
Programming/twm_4 runnable - jupyter nbconvert --execute
Programming/USD no-code - README describes a MetaDrive RL assignment; no implementation was submitted
Programming/WDWR runnable - python3 the entry script
Programming/ZPOB runnable - builds the report with latexmk