slds-lmu / teaching_devops_issues

Meta-repo for teaching infrastructure issues
0 stars 0 forks source link

Ensure slides compile without error and are up to date #12

Closed jemus42 closed 3 months ago

jemus42 commented 1 year ago

Affects:

The "core" lectures closely adhering to the i2ml prototype:

The "new ones" with potentially slightly different setup:

Goals:

  1. 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.
  2. 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.

jemus42 commented 5 months ago

This has now been done for i2ml, other lectures still to go.