Skip to content

feat(#386): slim — remove in-tree backends/raylib - #451

Merged
apotema merged 1 commit into
mainfrom
feat/386-slim-raylib
Jun 30, 2026
Merged

apotema merged 1 commit into
mainfrom
feat/386-slim-raylib

Conversation

@apotema

@apotema apotema commented Jun 30, 2026 •

Copy link
Copy Markdown
Contributor

Step 5/5 of the raylib extraction (#386). The flip (PR #450) already routes builtinProvider(.raylib) to the external labelle-raylib@0.1.0 package, so the in-tree backends/raylib is dead in the production codegen path. This removes it.

Changes (21 files, +8 / −8137)

  • git rm -r backends/raylib — its unit-test coverage (slot-allocator, etc.) lives in labelle-raylib's own CI now.
  • test/build_zig_tests.zig — drop the 3 tests pinning local:backends/raylib (links raylib artifact, raylib build does not link libudev, unifies labelle-core onto the raylib backend input module).
  • test/preview_mode_tests.zig — drop the 3 permanently-skipped raylib-PBO tests; drop the raylib case from the real-template helper test (it read backends/raylib/templates/desktop.txt from disk — mirrors how bgfx/wgpu/null were already removed there). Kept the external backend does not pull in raylib PBO readback negative test + all sokol/lifecycle cases.
  • .github/workflows/ci.yml — remove only the raylib backend slot-allocator tests step. The examples/raylib, video, gamepad+imgui, and flow-scanner integration jobs stay — they now validate the assembler resolving raylib via the external package.
  • src/cache.zig, src/cache/resolve.zig, src/codegen/preview.zig — refreshed 3 stale doc-comment paths.

zig build test and zig build both exit 0 locally.

After this merges, sokol is the only remaining backend to flip — completing the backend-agnostic assembler (#386).

https://claude.ai/code/session_017pW3ifKf9wgxNg4viy6okw

Summary by CodeRabbit

  • Refactor

    • Raylib backend files and templates were removed from the repository.
    • Related build, manifest, and helper code was cleaned up.
  • Tests

    • Removed raylib-specific unit and build tests.
    • Updated preview-mode test coverage to match the new layout.
  • Chores

    • CI no longer runs the removed raylib test step.
    • Documentation comments were updated to reference the new backend location.

Step 5/5 of extracting raylib out of the assembler. The flip already
landed on main (builtinProvider(.raylib) returns external
labelle-raylib@0.1.0), so backends/raylib is dead in the production
path. Remove it and its now-redundant coupling.

- git rm -r backends/raylib (16 files); its unit coverage (slot_alloc
  etc.) lives in labelle-raylib's own CI.
- test/build_zig_tests.zig: drop the 3 in-tree raylib backend tests
  that pinned local:backends/raylib (links artifact, no libudev,
  core-unify on backend_input) — covered by labelle-raylib CI.
- test/preview_mode_tests.zig: drop the 3 permanently-skipped
  raylib-PBO readback tests (raylib-desktop-bundled only, unreachable
  in-tree). Kept the external-no-PBO negative test + sokol PBO tests.
  Also drop the raylib case from the real-template helper test (its
  template now lives out-of-tree).
- .github/workflows/ci.yml: remove the raylib slot-allocator test step;
  kept the examples/raylib build, video, gamepad+imgui demo, and
  flow-scanner steps (they validate external-package resolution).
- Refresh stale backends/raylib doc-comment paths in src/.

zig build and zig build test both exit 0.

Claude-Session: https://claude.ai/code/session_017pW3ifKf9wgxNg4viy6okw

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request removes the in-tree raylib backend entirely, extracting it into an external package (labelle-raylib). This involves deleting the backend's source files, build configurations, templates, and associated unit tests. References to the raylib backend in the cache resolution, codegen comments, and test suites have been updated or removed to reflect its out-of-tree status. As there are no review comments to assess, I have no feedback to provide on the review itself.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@coderabbitai

coderabbitai Bot commented Jun 30, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 62a0e249-8e4e-40dc-9f3f-826ec7b7ec46

📥 Commits

Reviewing files that changed from the base of the PR and between cc47610 and d6d55a9.

📒 Files selected for processing (21)
  • .github/workflows/ci.yml
  • backends/raylib/backend.manifest.zon
  • backends/raylib/build.zig
  • backends/raylib/build.zig.zon
  • backends/raylib/build_fragments/backend_dep.txt
  • backends/raylib/build_fragments/link.txt
  • backends/raylib/src/astc.zig
  • backends/raylib/src/audio.zig
  • backends/raylib/src/gfx.zig
  • backends/raylib/src/input.zig
  • backends/raylib/src/slot_alloc.zig
  • backends/raylib/src/stb_truetype.h
  • backends/raylib/src/stb_truetype_impl.c
  • backends/raylib/src/window.zig
  • backends/raylib/templates/desktop.txt
  • backends/raylib/templates/wasm.txt
  • src/cache.zig
  • src/cache/resolve.zig
  • src/codegen/preview.zig
  • test/build_zig_tests.zig
  • test/preview_mode_tests.zig
💤 Files with no reviewable changes (16)
  • backends/raylib/build.zig.zon
  • backends/raylib/src/stb_truetype_impl.c
  • backends/raylib/build_fragments/link.txt
  • backends/raylib/build_fragments/backend_dep.txt
  • backends/raylib/templates/desktop.txt
  • backends/raylib/src/astc.zig
  • backends/raylib/src/input.zig
  • backends/raylib/backend.manifest.zon
  • backends/raylib/build.zig
  • backends/raylib/src/gfx.zig
  • backends/raylib/src/audio.zig
  • backends/raylib/templates/wasm.txt
  • .github/workflows/ci.yml
  • backends/raylib/src/slot_alloc.zig
  • backends/raylib/src/window.zig
  • test/build_zig_tests.zig

📝 Walkthrough

Walkthrough

This PR removes the entire in-tree raylib backend implementation, including build.zig, build.zig.zon, manifest, build fragments, all source modules (gfx, audio, input, window, astc, slot_alloc), templates, and the C stub. It removes a CI test step and updates comments/tests referencing raylib to either backends/sokol or the external labelle-raylib package.

Changes

Raylib Backend Removal

Layer / File(s) Summary
Backend source, build, and manifest deletion
backends/raylib/build.zig, backends/raylib/build.zig.zon, backends/raylib/backend.manifest.zon, backends/raylib/build_fragments/*, backends/raylib/src/*, backends/raylib/templates/*, backends/raylib/src/stb_truetype_impl.c
Deletes all raylib backend implementation files (gfx, audio, input, window, astc, slot_alloc), build configuration, manifest, build fragments, desktop/wasm templates, and the stb_truetype implementation entrypoint, eliminating the in-tree raylib backend entirely.
CI step removal
.github/workflows/ci.yml
Removes the Linux-only CI step that ran raylib slot-allocator tests, going directly from sokol tests to plugins/debug tests.
Documentation comment updates
src/cache.zig, src/cache/resolve.zig, src/codegen/preview.zig
Updates doc comments/examples to reference backends/sokol or the external labelle-raylib package instead of the deleted in-tree raylib backend.
Test suite cleanup
test/build_zig_tests.zig, test/preview_mode_tests.zig
Removes raylib-specific build.zig assertions (linking, udev exclusion, override import) and preview-mode tests (PBO/SHM/IOSurface emission), and removes the in-tree raylib desktop template from the REAL backend template test case list.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related issues

Possibly related PRs

Poem

A backend hops away tonight,
Out of the burrow, into the light,
Gfx and audio, window and slot —
External now, the raylib plot.
One less warren for us to tend,
Sokol carries on, my friend! 🐇

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: removing the in-tree backends/raylib code.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/386-slim-raylib

Comment @coderabbitai help to get the list of available commands.

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