Skip to content

fix: make Ubuntu installation and CI actually runnable - #1

Merged
turinglambdaai merged 22 commits into
mainfrom
fix/ubuntu-runtime
Sep 18, 2026
Merged

turinglambdaai merged 22 commits into
mainfrom
fix/ubuntu-runtime

Conversation

@turinglambdaai

@turinglambdaai turinglambdaai commented Sep 17, 2026

Copy link
Copy Markdown
Owner

Fixes the concrete cross-platform failures reproduced in CI, with Ubuntu as the priority.

Root causes found

  1. raco pkg install --name tessera --link . is rejected by Racket 9.3 because . is not a valid ending path element for a named linked package, so CI previously never reached the real runtime tests.
  2. Linux smoke tests hard-coded Retina/2x framebuffer coordinates. Ubuntu/Xvfb reports scale 1.0, which caused out-of-range pixel reads.
  3. Linux CJK smoke coverage used fonts that the current pure-Racket TrueType/glyf parser cannot necessarily consume. CI now installs WenQuanYi Zen Hei and points TESSERA_FONT at its TTC.
  4. macos-latest is ARM64, while the old workflow installed x64 Racket and Homebrew installed arm64 GLFW, so FFI reported GLFW as missing due to an architecture mismatch.
  5. Several GLFW context-hint constants in the Racket FFI binding were incorrect. They are now aligned with glfw3.h.
  6. GitHub's hosted macOS 26 ARM64 runner can load Cocoa/NSGL GLFW but does not expose a usable NSGL pixel format. Full macOS window/render smoke tests therefore cannot be truthfully validated on that hosted runner.

Changes

  • install the linked package from an absolute workspace path
  • add a compile gate before runtime tests
  • install explicit GLFW/Mesa/Xvfb/font runtime dependencies on Ubuntu
  • run the complete Ubuntu GUI/OpenGL/snapshot suite under Xvfb with software Mesa
  • make pixel smoke tests use the actual framebuffer scale instead of hard-coded 2x coordinates
  • run native arm64 Racket on the current arm64 macOS runner
  • verify GLFW FFI loading and non-window tests on the macOS hosted runner
  • prefer 4x MSAA but retry window creation without multisampling when the requested pixel format is unavailable
  • allow Cocoa graphics switching/offline renderer selection on macOS
  • correct GLFW context-hint constants
  • add CI concurrency cancellation so superseded PR runs do not clog the queue
  • update English/Chinese setup, troubleshooting and CI documentation

Validation

  • Ubuntu 24.04 x64: package install, compile, GLFW/OpenGL runtime, text rendering, snapshots and full test suite pass under Xvfb + software Mesa.
  • macOS 26 ARM64 hosted runner: native ARM64 Racket install, package install, compile, Homebrew GLFW FFI loading and non-window tests pass.
  • Full macOS rendering remains a physical/self-hosted Mac validation responsibility because the GitHub-hosted runner has no usable NSGL pixel format.

Final CI run for head 237766319ad982d380ab3feb4b66326c32a0f1e4 is green on both matrix jobs.

@turinglambdaai
turinglambdaai merged commit 987841f into main Sep 18, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant