Skip to content

chore(examples): bump bgfx-external to labelle-bgfx v0.2.0 (de-vendored gamepad packages) - #415

Merged
apotema merged 3 commits into
mainfrom
chore/386-bgfx-external-v0.2.0
Jun 29, 2026
Merged

chore(examples): bump bgfx-external to labelle-bgfx v0.2.0 (de-vendored gamepad packages)#415
apotema merged 3 commits into
mainfrom
chore/386-bgfx-external-v0.2.0

Conversation

@apotema

@apotema apotema commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Follow-up to the bgfx extraction. labelle-bgfx v0.2.0 no longer vendors the shared gamepad sources — they're now standalone packages:

labelle-bgfx depends on them via url+hash, making it a thin backend package and giving the gamepad sources a reusable, versioned home for future backend extractions (raylib/sokol). No source change — same gamepad code, now packaged.

This bumps the opt-in examples/bgfx-external to v0.2.0 so the examples-integration CI step verifies the de-duped package graph: the backend stages thin (no vendored sub-packages) and the gamepad packages resolve as fetched url+hash deps.

Verified locally: install (fetch) → generate (staged labelle-bgfx has no sdl_gamepad/android_gamepad subdirs) → full graph resolves (zig build --help, fetching both gamepad packages + zbgfx/zglfw + url core/audio).

The in-tree backends/sdl_gamepad / backends/android_gamepad are unchanged — the still-bundled raylib/sokol keep using them. Repinning those onto the new packages (and deleting the in-tree copies) is a follow-up that travels with their own extraction.

Summary by CodeRabbit

  • Chores
    • Updated the bundled external bgfx backend package to version 0.2.0.
  • Tests
    • Refined the examples integration test to better validate external backend wiring and code generation output, including ensuring additional gamepad sources are handled via URL+hash and referenced in the generated build manifest.

labelle-bgfx v0.2.0 depends on the new labelle-sdl-gamepad / labelle-android-gamepad
packages instead of vendoring them. Point the opt-in CI example at v0.2.0 so the
examples-integration step verifies the de-duped package graph resolves (the
gamepad packages are now fetched as url+hash deps, not staged from inside bgfx).
@coderabbitai

coderabbitai Bot commented Jun 29, 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: f71e8070-618e-476c-896a-219a0879d12c

📥 Commits

Reviewing files that changed from the base of the PR and between b1ec0ab and cc53be4.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/ci.yml

📝 Walkthrough

Walkthrough

The external bgfx example package is bumped to version 0.2.0, and CI checks are updated to match the staged backend’s dependency-based layout instead of vendored gamepad subdirectories.

Changes

bgfx External Backend Updates

Layer / File(s) Summary
bgfx package version update
examples/bgfx-external/project.labelle
Updates the bgfx backend package version from 0.1.0 to 0.2.0, preserving the package name and repository.
external bgfx CI checks
.github/workflows/ci.yml
Updates the examples integration test comment and rewrites the external bgfx assertions to check the staged manifest, generated dependency wiring, and absence of vendored gamepad directories.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐇 I hopped through CI with a tidy grin,
bumped one version, let new checks in.
No gamepads staged in little nests,
just dependency paths and manifest tests.
Hop hop—0.2.0 shines!

🚥 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: bumping bgfx-external to labelle-bgfx v0.2.0 and de-vendoring gamepad packages.
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/386-bgfx-external-v0.2.0

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 updates the version of the bgfx backend package from 0.1.0 to 0.2.0 in the project.labelle configuration file for the bgfx-external example. There are no review comments, and 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.

labelle-bgfx v0.2.0 no longer vendors the gamepad sub-packages, so the staged
backend has no sdl_gamepad/android_gamepad subdirs. Replace the stale
`test -d` vendored-subdir checks with: the staged build.zig.zon references the
labelle-sdl-gamepad / labelle-android-gamepad packages (url deps), and the
subdirs are absent (de-vendored).

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

Actionable comments posted: 1

🤖 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.

Inline comments:
In @.github/workflows/ci.yml:
- Around line 512-513: The current CI checks only grep for the package slugs in
build.zig.zon, which does not verify the de-vendored dependency contract. Update
the workflow step to assert the actual dependency fields for the relevant
entries in build.zig.zon, specifically that the `labelle-sdl-gamepad` and
`labelle-android-gamepad` entries include the expected `url` and `hash` values
rather than just matching names. Use the existing CI step around the `grep`
checks in `.github/workflows/ci.yml` to tighten the validation so a different
dependency form cannot pass.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1bb4d611-3830-47ba-bb0a-c2824fbc9d81

📥 Commits

Reviewing files that changed from the base of the PR and between 99b7fd9 and b1ec0ab.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml

Comment thread .github/workflows/ci.yml Outdated
Match the actual `.url = "...labelle-*-gamepad...tar.gz"` lines so the check
proves the gamepad sources are real url package deps (the de-vendoring point),
not a slug that could appear in a comment.
@apotema
apotema merged commit 76a39e2 into main Jun 29, 2026
6 checks passed
@apotema
apotema deleted the chore/386-bgfx-external-v0.2.0 branch June 29, 2026 21:42
apotema added a commit that referenced this pull request Jun 30, 2026
… (#418)

Pluggable-backends Phases 5+6 (epic #386): the assembler can now FETCH, verify,
and build out-of-tree backend packages, and bgfx is extracted to its own repo.

- #409 6a: remote .backend_package cache-fetch (fetched like a plugin)
- #410 6b: contract-verify an external backend (assertBackend/Window/Input)
- #411: conform raylib + null windows to the canonical window contract
- #412 Phase 5: enum-as-shorthand resolution (a built-in tag can resolve to a package)
- #413 6c: bgfx extracted -> github.com/labelle-toolkit/labelle-bgfx; opt-in CI-verified
- #414: select the GUI bridge by backend name, not the enum (external backends)
- #415: labelle-bgfx v0.2.0 — gamepad sources extracted to their own packages
- #416/#417: the two flip-blockers (callback-external guard; android enum-fallthrough)

Opt-in today via .backend_package; built-in .backend = .bgfx still ships bundled
(the default-flip is a follow-up gated on this release). Built-in backends are
byte-identical. External bgfx validated on-device (Galaxy Tab A7): builds, runs
crash-free, behaves identically to bundled.
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