WUT_Computer_Science/gates/vendored.txt
Krzysztof kuhy Rudnicki bd24dd57ea Hold the coursework to the same lint bar as the tooling
kuhy overruled the "do not fix coursework to be better than it was submitted"
rule: git history is the archive, so the working tree can be clean. This lands
the config and the mechanical half of the cleanup -- 9,281 ruff findings under
the fleet config down to 3,686, with no per-file-ignores anywhere.

What is in here:

- pyproject.toml, the first one in this repo. select = ["ALL"], mypy strict,
  and the vendored list mirrored into ruff exclude and coverage omit. Five
  rules are off and each says why; CPY001 is the only judgement call, because
  stamping a copyright header onto 137 university assignments would assert a
  licence that was never claimed. No hook is wired up yet -- a gate lands only
  once its subject is clean.

- ruff format + the safe fixes, then a second pass over the docstring rules
  ruff marks unsafe (they only edit docstring text). 108 files.

- TRAK/sightpy is vendored, not coursework: it is rafael-fuente/Python-Raytracer
  (BSD 3-Clause). Verified against a fresh upstream clone with line endings
  normalised -- 30 of 32 files byte-identical, ray.py and scene.py carrying a
  12- and 13-line local patch that counts rays for the report. 35 files that
  should never have been linted, now excluded and restored.

- WDWR, SPD, MOM and ECRYPT are fully clean, by hand and verified by running
  them: WDWR's three plot scripts print the same statistics as before, MOM's
  PuLP model solves to the same cost. WDWR's graph.py had a 342-character CSV
  header embedded as a string literal, which cannot be wrapped -- the data
  moved to data/pareto_front.csv. Two 0-byte .py stubs are deleted; an empty
  file is not a deliverable and git still has it.

Three harness bugs found by actually running things:

- `run` now forces MPLBACKEND=Agg. TRAK finished its ray trace in 37 seconds
  and then sat for 45 minutes: plt.show() had opened an image viewer and was
  waiting for someone to close the window.
- TRAK's main.py only pops that viewer with --show now, and its runner writes
  to a gitignored build/ via the new --entry-args. The default output path is
  outputs/output.png, which is TRACKED -- a plain run overwrote a submitted
  deliverable.
- course_lib.sh was 357 lines, over this repo's own cap. Split into
  course_probe.sh and course_run.sh.

Verified: ECOTE 26 tests pass, ECRYPT_PROJECT 99 pass, TRAK renders
cornell_box in 37s and exits 0, every module compiles, and every import ruff
removed was checked to be genuinely unused.

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

84 lines
4.5 KiB
Plaintext

# gates/vendored.txt -- third-party and department-provided content.
#
# THE source of truth for "not kuhy's code". Every gate reads this list:
# - the 250-line cap and the md-naming gate, via the "WUT_Computer_Science"
# key in VENDORED_SUBPATHS (~/utils/file_length/_tables.py)
# - ruff, via [tool.ruff] exclude in pyproject.toml
# - coverage, via [tool.coverage.run] omit
# - prettier, via .prettierignore
# Those four are MIRRORS. Edit this file, then re-run ./run.sh sync-vendored.
#
# Vendored content is exempt from lint, coverage and the line cap. It is NOT
# exempt from the no-binaries gate -- a vendored .png is still a binary.
#
# One path per line, repo-relative, no trailing slash. Every entry carries the
# reason AND how it was verified, because an unverified entry is a suppression
# wearing a costume.
# --- Third-party web libraries -------------------------------------------
# jQuery, Bootstrap, jquery-validation, jquery-validation-unobtrusive as
# shipped by the ASP.NET MVC scaffolder. 14 JS files (30,875 lines) and 16 CSS
# files (43,027 lines) -- 98.6% of all JS and 98.9% of all CSS in the repo.
# Verified: directory is the scaffolder's wwwroot/lib layout; files carry
# upstream copyright headers and match released dist/ builds.
Programming/EGUI/lab2/lab2/wwwroot/lib
# --- Unity engine and template content ------------------------------------
# Stock TextMesh Pro package assets shipped by Unity, not authored here.
# Verified: matches the TMP package's Assets payload; no file under it is
# referenced from Assets/Scripts.
Programming/E-PSYOPS/theProject/Assets/TextMesh Pro
# Unity's "Tutorial Info" new-project template (Readme asset + its editor
# script). Verified: unmodified from the Unity 2D template.
Programming/E-PSYOPS/theProject/Assets/TutorialInfo
#
# NOTE: Assets/Input System/BetterInput.cs is NOT listed. It is generated by
# com.unity.inputsystem's InputActionCodeGenerator and already carries an
# "auto-generated by" banner in its first 5 lines, so the shared gate's
# GENERATED_MARKERS check exempts it without an entry here. Assets/Scripts/**
# (12 .cs files) is authored and stays fully gated.
# --- Electronic component libraries ---------------------------------------
# Manufacturer-supplied Altium / EAGLE / PADS / Proteus / SOLIDWORKS symbol
# and footprint libraries for the OLED display and the HMC5883L magnetometer,
# downloaded from the vendors. Includes their own license.txt and part_info.txt.
# Verified: each tree contains the vendor's PADS/ export and license file.
# Only these two subtrees -- EMISY's README.md, declaration/ and report/ are
# kuhy's own writing and stay capped.
NotProgramming/EMISY/componentSchematic
NotProgramming/EMISY/schematic
# --- Department-provided simulator source ---------------------------------
# The EOPSY course ships its scheduler and memory-management simulators as
# tarballs; the lab is to run and analyse them, and the report is the
# deliverable. work/ is not hand-written -- it is the extraction target of
# `make setup` (see each task's README).
#
# Verified 2026-08-28 by extracting the committed tarballs and diffing:
# ftp/sched.tgz -> lab3 work/: 6/6 java files BYTE-IDENTICAL
# ftp/memory.tgz -> lab4 work/: 8/8 java files BYTE-IDENTICAL
# Zero student modification, and fully regenerable from ftp/. That is what
# makes this vendored rather than a judgement call -- and it is why
# ControlPanel.java (1852 lines) and Kernel.java (511) are not split.
Programming/EOPSY/lab3/task3/work
Programming/EOPSY/lab4/task4/work
# --- Third-party ray tracer ------------------------------------------------
# sightpy, the rendering engine from rafael-fuente/Python-Raytracer (BSD
# 3-Clause, (c) 2021 Rafael de la Fuente). TRAK's assignment was photon
# mapping ON TOP of it; the engine itself was not written here.
#
# Verified 2026-08-28 against a fresh clone of the upstream repository, after
# normalising line endings (the copy here is LF, upstream ships CRLF):
# 30 of 32 .py files BYTE-IDENTICAL
# sightpy/ray.py +12 lines: RAYS / PRIMARY_RAYS counters and get_rays()
# sightpy/scene.py +13 lines: prints those counters in the render summary
# Both patches are kuhy's instrumentation for the report's ray statistics and
# are the only authored lines inside this tree.
#
# NOT covered by this entry, and still fully gated: TRAK's own main.py,
# photon_mapping.py, rendering.py, lab6.py, utils.py, code/ and scenes/.
# scenes/ is adapted from the upstream examples rather than copied -- the
# closest example differs by more lines than the scene file has.
Programming/TRAK/sightpy