The "core" lectures closely adhering to the i2ml prototype:
[X] lecture_i2ml
[x] lecture_advml
[x] lecture_sl
The "new ones" with potentially slightly different setup:
[ ] lecture_optimization
[ ] lecture_iml
Goals:
All slide .tex files in slides/* compile without error.
Even if the slides are WIP and content is not final, they must not throw errors. Comment out stuff if necessary.
Slide PDFs in slides-pdf/ should be up to date, i.e. slides/<topic>/<slide-name>.tex produces a PDF file which is identical to slides-pdf/<slide-name>.pdf.
Currently in many cases the only relevant deviations are minor (slightly moved text, addition of numbering etc.)
This is in my opinion a hard requirement for further tasks that depend on a quick and reliable way to ensure that changes to the underlying LaTeX infrastructure do not cause unintended problems with the slides (e.g. #6)
Suggested Process:
To enable this cleanup process, I have set up this lecture-checking thing which automatically generates an overview site here as an example, or locally if so desired.
Each lecture also has a GitHub action to generate such a table after each commit to slides, see here for I2ML.
The corresponding site is linked at the top of each lecture's README.
This table lists if:
a) Slide files compile without error (green checkmark)
b) If they compile, whether they are identical to the "truth" in slides/pdf or if not,
1) if they differ significantly (i.e. the PDFs have a different number of pages, a sign of larger differences), or
2) if there are pages with differences
For b), in either case a "PDF diff" is generated, which contains the differing pages (exclusively), with highlighting applied to the differences.
These differences might be extremely minor, in which case it should be an easy decision to just git commit the "new" version in slides-pdf.
Since these PDFs are "live" on the course websites, this should obviously done with care.
There are also new GitHub actions that attempt to automatically fix common issues, as seen here where a script fixes relative figure paths that work on Overleaf but not locally.
This serves a a pointer and aims to be "just fix it"-type of stuff.
For faster iteration I suggest cloning the aforementioned service repo and running checks locally (make or using lecheck, see README).
This is easiest on Ubuntu as I could reproducibly set up the required dependencies.
It should also work on macOS, but I have no idea how to make it work on Windows, sorry. Try WSL I guess?
Please be aware that having conda enabled can mess with assumptions about what's in $PATH, so it might be easier to disable conda temporarily.
It should be relatively straight-forward (albeit time-consuming) for at least one person per lecture to
1) look at the table (locally or on the GitHub action-produced site)
2) identify compilation errors and fix them
3) identify slide differences that are "ok" and commit the new version to slides-pdf
Any larger differences will of course need double checking if it is unclear if changes are intended or accidental.
Affects:
The "core" lectures closely adhering to the i2ml prototype:
lecture_i2ml
lecture_advml
lecture_sl
The "new ones" with potentially slightly different setup:
lecture_optimization
lecture_iml
Goals:
.tex
files inslides/*
compile without error. Even if the slides are WIP and content is not final, they must not throw errors. Comment out stuff if necessary.slides-pdf/
should be up to date, i.e.slides/<topic>/<slide-name>.tex
produces a PDF file which is identical toslides-pdf/<slide-name>.pdf
. Currently in many cases the only relevant deviations are minor (slightly moved text, addition of numbering etc.)This is in my opinion a hard requirement for further tasks that depend on a quick and reliable way to ensure that changes to the underlying LaTeX infrastructure do not cause unintended problems with the slides (e.g. #6)
Suggested Process:
To enable this cleanup process, I have set up this lecture-checking thing which automatically generates an overview site here as an example, or locally if so desired.
Each lecture also has a GitHub action to generate such a table after each commit to
slides
, see here for I2ML. The corresponding site is linked at the top of each lecture's README.This table lists if:
a) Slide files compile without error (green checkmark) b) If they compile, whether they are identical to the "truth" in
slides/pdf
or if not, 1) if they differ significantly (i.e. the PDFs have a different number of pages, a sign of larger differences), or 2) if there are pages with differencesFor b), in either case a "PDF diff" is generated, which contains the differing pages (exclusively), with highlighting applied to the differences. These differences might be extremely minor, in which case it should be an easy decision to just
git commit
the "new" version inslides-pdf
. Since these PDFs are "live" on the course websites, this should obviously done with care.There are also new GitHub actions that attempt to automatically fix common issues, as seen here where a script fixes relative figure paths that work on Overleaf but not locally. This serves a a pointer and aims to be "just fix it"-type of stuff.
For faster iteration I suggest cloning the aforementioned service repo and running checks locally (
make
or usinglecheck
, see README). This is easiest on Ubuntu as I could reproducibly set up the required dependencies. It should also work on macOS, but I have no idea how to make it work on Windows, sorry. Try WSL I guess? Please be aware that havingconda
enabled can mess with assumptions about what's in$PATH
, so it might be easier to disableconda
temporarily.It should be relatively straight-forward (albeit time-consuming) for at least one person per lecture to
1) look at the table (locally or on the GitHub action-produced site) 2) identify compilation errors and fix them 3) identify slide differences that are "ok" and commit the new version to
slides-pdf
Any larger differences will of course need double checking if it is unclear if changes are intended or accidental.