Commit Graph
657 Commits
Author SHA1 Message Date
Lawrence Angrave 2a4107d161 Merge pull request #225 from cs341-illinois/speed-up-ci
Speed up CI: install only the texlive packages the book needs
2026-08-24 02:34:47 -05:00
Lawrence Angrave 8bf29081d3 Speed up CI: install only the texlive packages the book needs
The PDF job takes ~9 minutes and is the whole workflow's wall clock,
because install.sh pulls texlive-full: 455 packages and 4.0 GB of every
language pack, ConTeXt and Metapost. The book needs 68 packages,
768 MB.

Measured by building the book both ways in ubuntu:24.04 and comparing:

                 packages   download   apt install   make pdf
  texlive-full   455        3995 MB    270s          188s
  reduced set     68         768 MB     92s          141s

Output is equivalent, not merely similar: all 19 PDFs (main plus 18
chapters) have identical page counts (main.pdf is 390 pages either
way), identical page sizes, and byte-identical pdftotext output, with
no unresolved references in either.

Also:
- fail-fast: false, so a WIKI failure 90 seconds in stops cancelling
  the 9 minute PDF job. That happened repeatedly while fixing CI: the
  run then says nothing about whether the PDF is healthy.
- concurrency groups, asymmetric on purpose. PR builds have no side
  effects so a superseded run is cancelled. Deploy is NOT cancelled
  mid-run: it pushes the wiki, force-pushes epub_deploy and pdf_deploy
  and nudges the website, and interrupting that can leave the three
  targets on different commits.
- timeout-minutes: 30, so a hung link check cannot burn six hours.
- pip cache. Marginal - five small pure-python wheels - but free.

Note make -j4 was tried and rejected: it cuts the build to 80s but
produces a wrong book, numbering the appendix 13 instead of 17 and
degrading a cross-reference to ??.
2026-08-24 02:06:06 -05:00
Lawrence Angrave c0294f8983 Merge pull request #224 from cs341-illinois/enable-site-deploy
Re-enable the website trigger using a deploy key
2026-08-23 22:29:02 -05:00
Lawrence Angrave d6977dd170 Re-enable the website trigger using a deploy key
The coursebook now publishes its wiki again, but nothing tells the
website to rebuild, so a change reaches the site only when someone
else pushes to it.

Restore that trigger with a deploy key (SITE_DEPLOY_KEY) rather than
the built-in token: GITHUB_TOKEN is scoped to this repo, and pushes
made with it deliberately do not trigger workflows. A deploy key also
has no expiry and is exempt from the org's SAML SSO, so it will not
silently lapse the way the old credentials did.

- point site_deploy.sh at cs341-illinois/cs341-illinois.github.io; it
  still named illinois-cs241, two renames stale
- add IdentitiesOnly so ssh cannot offer some other key
- seed known_hosts with ssh-keyscan instead of relying on the runner
- skip the site deploy when the secret is absent, so forks still pass
2026-08-23 22:27:42 -05:00
Lawrence Angrave 5299ca22c3 Merge pull request #223 from cs341-illinois/deploy-via-github-token
Deploy with the built-in GITHUB_TOKEN instead of deploy keys
2026-08-23 22:01:49 -05:00
Lawrence Angrave c688b2dd43 Deploy with the built-in GITHUB_TOKEN instead of deploy keys
Every deploy has been failing at the push with "git@github.com:
Permission denied (publickey)". The repo has no deploy keys registered
at all, so the keys inside site-deploy.enc and wiki-deploy.enc cannot
authenticate - most likely lost in the illinois-cs241 ->
cs341-illinois org rename. GPG decryption itself still works, so
GPG_PASSPHRASE is not the problem.

Comment out the gpg/ssh-agent machinery and push over https with the
built-in GITHUB_TOKEN, granting the job contents: write. Nothing to
rotate, and it survives future renames.

site_deploy.sh stays disabled: it pushes to a different repo to nudge
the website into rebuilding, which GITHUB_TOKEN cannot do, and it still
names the twice-stale illinois-cs241/illinois-cs241.github.io.
2026-08-23 22:01:35 -05:00
Lawrence Angrave c31ae44777 Merge pull request #222 from cs341-illinois/py311-ready
Move CI to Python 3.11 so it can run on ubuntu-26.04
2026-08-23 22:01:13 -05:00
Lawrence Angrave d25bb9ec8d Merge pull request #221 from cs341-illinois/fix-dead-links
Fix dead external links in the coursebook
2026-08-23 22:01:06 -05:00
Lawrence Angrave c99585de1a Move CI to Python 3.11 so it can run on ubuntu-26.04
Python 3.9 has builds only for ubuntu-22.04 and 24.04, so the pin added
in #220 blocks a future move to 26.04 runners. 3.11 covers 22.04, 24.04
and 26.04.

3.9 was chosen because panflute 1.10.6 imports MutableSequence from
collections, removed in Python 3.10. That does not require a pandoc
upgrade: panflute 1.12.5 fixed the import and still targets pandoc
2.7's AST (pandoc-types 1.17.5.4), so install.sh, the Makefile and the
filters are all unchanged.

Verified by building both stacks and diffing the output: all 20 wiki
files are byte-identical, and the EPUB is identical apart from the
random urn:uuid and build timestamp. Also clean on 3.12 and 3.14.
2026-08-23 21:48:52 -05:00
Lawrence Angrave 6a27c988c1 Point four vanished pages at Wayback Machine snapshots
All four sources removed the referenced content; no equivalent page
exists on the original site any more. Each replacement snapshot was
fetched and confirmed to return 200 with the expected content.

- malloc: IBM developerWorks 'Data alignment' article -- ibm.com now
  redirects the whole /developerworks/library/ tree to the
  developer.ibm.com home page. Snapshot 20190313121701.
- post_mortems: geek.com shut down; the origin now serves an S3
  AccessDenied 403. Snapshot 20191216004115 (title confirmed:
  'What caused Gandhi's insatiable bloodlust in Civilization').
- filesystems: goo.gl/LwFIy resolved to a Google Faculty Summit 2010
  PDF that is now 404. Snapshot 20160910131226 returns the original
  storage_architecture_and_challenges.pdf (application/pdf, 85 KB).
- background: the osxfuse project moved to macfuse and deleted the
  SSHFS wiki page; GitHub now redirects it to the macfuse wiki home.
  Snapshot 20240913220726 (title confirmed: 'SSHFS - osxfuse Wiki').
2026-08-23 21:47:05 -05:00
Lawrence Angrave 7dcacf080e Fix 404 Beej's Guide getaddrinfo man-page link
Beej's Guide to Network Programming dropped the old
output/html/multipage/ layout; getaddrinfoman.html now 404s.
Updated to the current split-HTML man page section
https://beej.us/guide/bgnet/html/split/man-pages.html#getaddrinfoman
(verified 200 OK).
2026-08-23 21:47:05 -05:00
Lawrence Angrave 9bcdbac16d Fix dead memory-barriers link (lxr.free-electrons.com is offline)
lxr.free-electrons.com still resolves in DNS but refuses connections
(free-electrons rebranded to Bootlin and retired the lxr host). The
WIKI build's pandoc_header_filter.py calls requests.head() on every
link, so a connection failure aborts CI.

Replaced with the same document served by kernel.org:
https://www.kernel.org/doc/Documentation/memory-barriers.txt (200 OK).
2026-08-23 21:47:05 -05:00
Lawrence Angrave c1e8df5046 Merge pull request #220 from cs341-illinois/fix-ci-python-version
Fix CI: python 3.7 is unavailable on ubuntu-latest
2026-08-23 21:44:10 -05:00
Lawrence Angrave 31c92844bb Do not fail the build when a link cannot be reached
The WIKI build died on www.gnu.org with "[Errno 101] Network is
unreachable". gnu.org is not down: it has an AAAA record and GitHub
runners have no IPv6 route, so the connection fails before IPv4 is
tried. Reachability of the build machine is not a property of the book,
so warn and carry on instead of aborting.

Also add a 15s timeout - the failing host stalled the job for over two
minutes of retries - and report non-2xx as a warning. The previous
status test was `code < 200 and code > 299`, which no integer can
satisfy, so no status has ever been checked. It stays non-fatal
deliberately: www.gnu.org answers a bare requests HEAD with 403 (it
blocks the default user agent), so failing on non-2xx would break the
build on links that are perfectly fine in a browser.
2026-08-23 21:29:30 -05:00
Lawrence Angrave 9506ef103a Replace the dead cyber.dhs.gov link in the security chapter
cyber.dhs.gov no longer has an A record, so the link check in
pandoc_header_filter.py died with "No address associated with hostname"
and took the WIKI build down with it.

CISA moved Emergency Directive 19-01; point at its current home.
2026-08-23 21:24:30 -05:00
Lawrence Angrave de335bcd66 Fix CI: python 3.7 is unavailable on ubuntu-latest
Every build and deploy job has been failing at the "Setup python" step
with "Version 3.7 with arch x64 not found". ubuntu-latest now resolves
to ubuntu-24.04, and actions/python-versions only ships 3.7 builds for
20.04 and 22.04.

Move to 3.9, which does have a 24.04 build. 3.9 is the newest release
that still works with the pinned panflute 1.10.6: it imports
MutableSequence from collections, which was removed in Python 3.10, so
3.10+ would fail on import instead.

Also bump checkout/setup-python to v4/v5, since the v2 actions run on a
deprecated Node version.
2026-08-23 21:20:59 -05:00
Lawrence Angrave 3cb339563e Merge pull request #219 from cs341-illinois/generic-edstem-link
Use a generic Edstem link in the background chapter
2026-08-23 21:17:08 -05:00
Lawrence Angrave 0e776a01dd Use a generic Edstem link in the background chapter
The URL pointed at a specific past semester's course
(us/courses/61021), which no longer applies. The surrounding text
already says to use the current semester's CS341 Edstem, so link
edstem.org itself and let that sentence do the work.
2026-08-23 21:15:33 -05:00
Lawrence Angrave 3480410a2a Fix typo in university name in README 2026-07-09 09:44:48 -05:00
Lawrence Angrave 41decabf89 Merge pull request #211 from ekcom/fix/threads-typos
Fix threads typos
2024-09-30 13:17:53 -05:00
Elijah Mock 22ffe172d9 Fix formatting errors and typos 2024-09-30 12:02:37 -05:00
Lawrence Angrave 9368370dba Merge pull request #210 from ekcom/fix/processes-typos
Small fixes on Processes page
2024-09-16 09:36:06 -05:00
Elijah Mock de769af07e Fix indentation errors 2024-09-14 17:26:17 -05:00
Elijah Mock de5f2d24f9 Remove extra tag that was rendering as text 2024-09-14 17:23:32 -05:00
Elijah Mock b6b5323b14 Various grammar fixes and consistency adjustments 2024-09-14 17:22:27 -05:00
Elijah Mock 45b0bd9846 Remove additional link text
- remove hyperlink text from page
- keyword is linked already
2024-09-14 17:19:37 -05:00
Elijah Mock 4dcfeeb824 Specifically name getting values from child proc 2024-09-14 17:18:23 -05:00
Elijah Mock 7b7d037973 Syntax corrections 2024-09-14 17:18:01 -05:00
Elijah Mock 4a76bcfb7a Add missing word 2024-09-14 17:15:45 -05:00
Elijah Mock a680353192 Fix inserting xor symbol
- previously, was putting hat over X character
2024-09-14 17:14:05 -05:00
Lawrence Angrave 53754c71e1 Merge pull request #208 from ekcom/fix/more-background-corrections
Small fixes on Background page
2024-08-28 19:43:42 -05:00
Elijah Mock 9f29f10fc6 Update Edstem discussion link for 2024 FA semester 2024-08-28 19:35:21 -05:00
Elijah Mock 8d718491eb Correct grammar and flow of sentence 2024-08-28 19:33:55 -05:00
Elijah Mock 0ce9968008 Fix comma grammar 2024-08-28 19:33:21 -05:00
Lawrence Angrave f2c4c38fb5 Merge pull request #207 from ekcom/fix/background-typos
Grammar fixes on Background page
2024-08-27 15:16:04 -05:00
Elijah Mock 234c899d20 Add Elijah to authors list 2024-08-27 15:11:09 -05:00
Elijah Mock c17bf43183 Clear up wording in Git section 2024-08-27 13:56:55 -05:00
Elijah Mock 32f9bd337b Grammar and typo fixes in hyperthreading section 2024-08-27 13:45:54 -05:00
Elijah Mock a5e38fd46b Correct i.e.s to e.g.s in Interrupts section 2024-08-27 13:42:20 -05:00
Elijah Mock a5c3a47f42 Grammar fix in Interrupts section 2024-08-27 13:41:22 -05:00
Elijah Mock a7eab587ce Grammar fix in Caching section 2024-08-27 13:40:40 -05:00
Elijah Mock 279cc79a41 Add commas to clause in Caching section 2024-08-27 13:39:34 -05:00
Elijah Mock 5fcb5c2fe9 Grammar fix in Caching section 2024-08-27 13:38:13 -05:00
Lawrence Angrave 643ca6d18f Merge pull request #206 from illinois-cs241/Fix_triple_equal__typo
Fix_triple_equal__typo
2024-08-27 11:35:55 -05:00
Lawrence Angrave bdf1ceeaed replaced Piazza with more generic "the class forum" 2024-08-27 11:33:57 -05:00
Lawrence Angrave d98e6284a2 Fix_triple_equal__typo 2024-08-27 11:21:21 -05:00
Jadon T Schuler 81397599fb Update c_memory_model.tex
String literals are stored in read-only, not code (at least not in modern standards)
2024-04-22 11:53:21 -05:00
Maya Nayak 0eae9e2402 Merge pull request #205 from illinois-cs241/delorie-removal
Removed broken Delorie GDB link (fix to coursebook build failure)
2024-04-05 17:30:13 -05:00
Maya Nayak fef4754a67 Added alternative link 2024-04-05 11:46:10 -05:00
Maya Nayak df779efea3 Removed broken Delorie GDB link 2024-04-05 01:42:56 -05:00