Skip to content

chore(#520): drop migrated raylib/sokol examples + repoint CI to null - #522

Merged
apotema merged 1 commit into
mainfrom
chore/520-drop-backend-examples
Jul 2, 2026
Merged

chore(#520): drop migrated raylib/sokol examples + repoint CI to null#522
apotema merged 1 commit into
mainfrom
chore/520-drop-backend-examples

Conversation

@apotema

@apotema apotema commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

What

The pure-raylib and pure-sokol examples were migrated into their backend packages — labelle-raylib#7 and labelle-sokol#5, both merged, each shipping its own generate + build CI. The assembler is backend-agnostic, so it no longer needs to own backend-coupled examples in its own repo/CI.

This PR:

  • Removes examples/raylib/ and examples/sokol/ (they now live in labelle-raylib / labelle-sokol).
  • CI (.github/workflows/ci.yml): removes the "Generate + build the raylib example" step. Coverage now lives in labelle-raylib's CI. Updates the integration-job comment to explain the assembler tests its generate → build path against the backend-agnostic null backend.
  • Keeps the null headless example + step (the agnostic codegen fixture — the right thing for the assembler to smoke-test its own generate→build→run path) and the plugin-controllers step (also .null). No sokol example build step existed in CI to remove (the backends/sokol && zig build test step tests the in-tree backend package, not the example — left intact).
  • Scrubs two stale prose refs to examples/raylib (flows-smoke README, asset-streaming-smoke sprite_marker.zig).

Remaining-backend-coupled examples (audit)

Agnostic — kept:

  • null.null backend, headless codegen fixture
  • plugin-controllers.null backend
  • external-null — out-of-tree nullfixture backend_package (agnostic fetch/stage/codegen test)

Backend-coupled — left in place, follow-ups (need a home before removal):

  • sokol_imgui.sokol + needs labelle-imgui
  • gamepad.raylib + imgui
  • gamepad-android.sokol (Android)
  • flows-smoke.raylib
  • asset-streaming-smoke.raylib

Verify

zig build ✅ and zig build test --summary all ✅ (1195 tests pass) — removing the example dirs does not touch the assembler's own build/tests.

Refs / closes #520.

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

https://claude.ai/code/session_01P7B7UzgrWEbBYLT3YBrAog

Summary by CodeRabbit

  • Chores

    • Simplified CI example coverage by skipping one end-to-end example build step and continuing with the remaining smoke tests.
    • Removed several example assets, scene files, and example-specific configuration from the raylib and sokol samples.
    • Cleaned up example scripts and component definitions tied to those removed sample flows.
  • Documentation

    • Updated example comments and readme text to better reflect the current CI/build expectations.

… (assembler is backend-agnostic)

The pure-raylib and pure-sokol examples were migrated into their backend
packages (labelle-raylib#7 + labelle-sokol#5, both merged, each with its
own generate+build CI). The assembler no longer owns them, so remove the
example dirs and drop the raylib generate+build CI step. The assembler now
tests its own generate->build path against the backend-AGNOSTIC null
backend (the null + plugin-controllers steps).

- rm examples/raylib/ and examples/sokol/
- ci.yml: remove "Generate + build the raylib example" step; update the
  integration-job comment; keep the null + plugin-controllers agnostic steps
- scrub stale prose refs to examples/raylib in flows-smoke README and
  asset-streaming-smoke sprite_marker.zig

Closes #520.

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

https://claude.ai/code/session_01P7B7UzgrWEbBYLT3YBrAog
@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

CI workflow comments were expanded and the raylib example build step removed from the assembler's integration test job. Related documentation and comments referencing examples/raylib were updated, and the Score struct was removed from the raylib example's components.

Changes

Assembler CI decoupling from raylib example

Layer / File(s) Summary
CI workflow: remove raylib build step and update comments
.github/workflows/ci.yml
Comments were expanded to describe backend-agnostic null-backend validation, and the raylib example generate+build step was deleted from the examples integration job.
Remove raylib references and Score component
examples/asset-streaming-smoke/components/sprite_marker.zig, examples/flows-smoke/README.md, examples/raylib/components/score.zig
Comments and README text referencing examples/raylib were simplified, and the Score struct was removed from the raylib example.

Estimated code review effort: 1 (Trivial) | ~4 minutes

Possibly related PRs

Poem

A rabbit hops through CI's grass,
Trims the raylib step, lets old code pass,
Comments now clearer, references clean,
No more Score left lingering unseen,
Hop, hop — the pipeline's light again! 🐇✨

🚥 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 concisely describes the main change: dropping migrated raylib/sokol examples and switching assembler CI to null.
Linked Issues check ✅ Passed The PR removes raylib/sokol example ownership from the assembler and repoints CI to the null backend, matching the issue's agnostic remainder scope.
Out of Scope Changes check ✅ Passed The changes stay focused on backend-example removal, CI repointing, and related stale prose cleanup; no unrelated code paths are introduced.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/520-drop-backend-examples

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

@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 raylib and sokol example projects, including all of their associated assets, components, scenes, and scripts. Additionally, references to these deleted examples have been cleaned up in the documentation and comments of the remaining examples, such as flows-smoke and asset-streaming-smoke. There are no review comments, so I have no feedback to provide.

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.

@apotema

apotema commented Jul 2, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. More of your lovely PRs please.

Reviewed commit: 7dcd74f240

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@coderabbitai coderabbitai 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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/ci.yml (1)

189-217: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Stale "raylib example above" references after step removal.

Removing the "Generate + build the raylib example" step leaves two dangling comments that no longer point to anything: the asset-streaming-smoke step says "Same recipe as the raylib example above —", and the gamepad example step says "Gamepad input demo (raylib + imgui). Build-only, same recipe as the raylib example." Both now reference a step that was deleted from the file.

📝 Suggested comment updates
       # Smoke test for the Asset Streaming RFC (labelle-assembler#55,
-      # labelle-engine#437). Same recipe as the raylib example above —
-      # build-only, not a headless runtime check. Runtime exercise
+      # labelle-engine#437). Build-only, not a headless runtime check.
+      # Runtime exercise
       # requires a display (raylib creates its GL context at init);
       # local `labelle run --timeout=Ns` covers the render path.
       # Gamepad input demo (raylib + imgui). Build-only, same recipe as the
-      # raylib example. Exercises the engine input-mixin gamepad forwarders
+      # asset-streaming-smoke example above. Exercises the engine input-mixin gamepad forwarders
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci.yml around lines 189 - 217, The two workflow comments
still refer to a deleted “raylib example above” step, so update the wording in
the asset-streaming-smoke and gamepad example sections of ci.yml to remove or
replace those stale references. Keep the descriptions accurate by pointing to
the current build-only pattern or another existing example, using the nearby
step names as the anchor for the rewrite.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In @.github/workflows/ci.yml:
- Around line 189-217: The two workflow comments still refer to a deleted
“raylib example above” step, so update the wording in the asset-streaming-smoke
and gamepad example sections of ci.yml to remove or replace those stale
references. Keep the descriptions accurate by pointing to the current build-only
pattern or another existing example, using the nearby step names as the anchor
for the rewrite.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: b17f6c0e-a89c-4bd5-8987-dd4622c8d1f5

📥 Commits

Reviewing files that changed from the base of the PR and between 0a50c22 and 7dcd74f.

⛔ Files ignored due to path filters (4)
  • examples/raylib/assets/sprites.png is excluded by !**/*.png
  • examples/sokol/assets/jump.png is excluded by !**/*.png
  • examples/sokol/assets/sprites.png is excluded by !**/*.png
  • examples/sokol/labelle.lock is excluded by !**/*.lock
📒 Files selected for processing (42)
  • .github/workflows/ci.yml
  • examples/asset-streaming-smoke/components/sprite_marker.zig
  • examples/flows-smoke/README.md
  • examples/raylib/.gitignore
  • examples/raylib/assets/sprites.json
  • examples/raylib/components/coin.zig
  • examples/raylib/components/player.zig
  • examples/raylib/components/score.zig
  • examples/raylib/components/velocity.zig
  • examples/raylib/components/wall.zig
  • examples/raylib/gizmos/coin.zon
  • examples/raylib/gizmos/player.zon
  • examples/raylib/hooks
  • examples/raylib/prefabs/coin.jsonc
  • examples/raylib/prefabs/player.jsonc
  • examples/raylib/prefabs/wall.jsonc
  • examples/raylib/project.labelle
  • examples/raylib/scenes/main.jsonc
  • examples/raylib/scenes/menu.jsonc
  • examples/raylib/scenes/obstacles.jsonc
  • examples/raylib/scripts/menu/menu_system.zig
  • examples/raylib/scripts/paused/unpause.zig
  • examples/raylib/scripts/playing+paused/camera_control.zig
  • examples/raylib/scripts/playing/01_player_movement.zig
  • examples/raylib/scripts/playing/02_pause_check.zig
  • examples/raylib/scripts/scene_switcher.zig
  • examples/sokol/.gitignore
  • examples/sokol/assets/jump.json
  • examples/sokol/assets/sprites.json
  • examples/sokol/components/coin_marker.zig
  • examples/sokol/components/jumper_marker.zig
  • examples/sokol/components/player_marker.zig
  • examples/sokol/components/wall_marker.zig
  • examples/sokol/gizmos/coin_marker.zon
  • examples/sokol/gizmos/jumper_marker.zon
  • examples/sokol/gizmos/player_marker.zon
  • examples/sokol/gizmos/wall_marker.zon
  • examples/sokol/project.labelle
  • examples/sokol/scenes/main.jsonc
  • examples/sokol/scripts/quit_on_escape.zig
  • examples/sokol/scripts/running/01_camera_wasd.zig
  • examples/sokol/scripts/running/02_jump_animation.zig
💤 Files with no reviewable changes (39)
  • examples/raylib/scenes/menu.jsonc
  • examples/sokol/components/player_marker.zig
  • examples/raylib/prefabs/coin.jsonc
  • examples/raylib/prefabs/player.jsonc
  • examples/sokol/scripts/quit_on_escape.zig
  • examples/sokol/components/jumper_marker.zig
  • examples/sokol/components/wall_marker.zig
  • examples/raylib/scripts/playing/01_player_movement.zig
  • examples/sokol/scripts/running/01_camera_wasd.zig
  • examples/raylib/prefabs/wall.jsonc
  • examples/raylib/gizmos/coin.zon
  • examples/raylib/components/wall.zig
  • examples/sokol/gizmos/wall_marker.zon
  • examples/sokol/.gitignore
  • examples/raylib/scripts/playing/02_pause_check.zig
  • examples/sokol/assets/sprites.json
  • examples/sokol/components/coin_marker.zig
  • examples/sokol/gizmos/player_marker.zon
  • examples/raylib/.gitignore
  • examples/raylib/scenes/obstacles.jsonc
  • examples/raylib/scripts/paused/unpause.zig
  • examples/raylib/hooks
  • examples/sokol/assets/jump.json
  • examples/raylib/assets/sprites.json
  • examples/sokol/gizmos/jumper_marker.zon
  • examples/raylib/scripts/playing+paused/camera_control.zig
  • examples/raylib/project.labelle
  • examples/raylib/scenes/main.jsonc
  • examples/raylib/components/player.zig
  • examples/raylib/gizmos/player.zon
  • examples/sokol/scenes/main.jsonc
  • examples/raylib/scripts/scene_switcher.zig
  • examples/raylib/components/coin.zig
  • examples/raylib/components/score.zig
  • examples/raylib/components/velocity.zig
  • examples/sokol/project.labelle
  • examples/raylib/scripts/menu/menu_system.zig
  • examples/sokol/scripts/running/02_jump_animation.zig
  • examples/sokol/gizmos/coin_marker.zon

@apotema
apotema merged commit eef1c97 into main Jul 2, 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.

agnosticism remainder (#386): move backend-coupled examples out of the assembler → backend packages + a showcase repo

1 participant