Skip to content

Fix three review defects in the retro recipes and lint them in CI - #20

Merged
randroid88 merged 1 commit into
mainfrom
agent/review-retro-recipes
Aug 4, 2026
Merged

Fix three review defects in the retro recipes and lint them in CI#20
randroid88 merged 1 commit into
mainfrom
agent/review-retro-recipes

Conversation

@randroid88

Copy link
Copy Markdown
Contributor

Reviewing the two recipes just added found three defects, two of which would only have appeared on the Raspberry Pi they exist for.

1. --disable-wayland forced off (frontend)

Chosen against a host where Wayland libraries were absent anyway, so it changed nothing in testing. But Raspberry Pi OS defaults to a Wayland session, and forcing it off could leave the frontend unable to present in the operator's actual session. configure already detects and disables it when absent, so the flag is removed.

2. libgl1-mesa-dev required by name (frontend)

A Pi provides GLES, not desktop GL — so the precheck would have refused to run on the exact target this recipe exists for. GPU headers are now an any-of check across libgl1-mesa-dev and libgles2-mesa-dev, with the error naming which belongs to which target. The precheck also degrades to a notice on non-dpkg hosts rather than failing.

3. Generic dependency field, hard-coded zlib probe (cores)

Any future core declaring a different dependency would have been checked for the wrong library, then failed confusingly at link. The check now dispatches on the declared name. Verified by rewriting the field to an unknown package:

SKIP: this recipe has no probe for the declared dependency 'libfoo-dev'.
      Add one rather than letting the build fail at its link step.

shellcheck in CI

The build recipes are deliberately not run in CI (upstream archive availability), but linting needs no network and is deterministic. All three scripts are clean at --severity=style.

Re-verified after the fixes

shellcheck clean; cores recipe still produces aarch64 objects for two cores and skips snes9x with the correct reason; frontend still builds and reports Version: 1.22.2.

🤖 Generated with Claude Code

Reviewing the two recipes just added found three defects, two of which would
only have appeared on the Raspberry Pi they exist for.

The frontend recipe passed --disable-wayland. That flag was chosen against a
host where Wayland libraries were absent anyway, so it changed nothing during
testing, but Raspberry Pi OS defaults to a Wayland session and forcing it off
could leave the frontend unable to present in the operator's actual session.
configure already detects Wayland and disables it on its own when the libraries
are missing, so the flag is removed and detection is left to configure.

The frontend recipe also required libgl1-mesa-dev by name. A Raspberry Pi
provides GLES rather than desktop GL, so the precheck would have refused to run
on the exact target this recipe was written for. GPU headers are now an any-of
check across libgl1-mesa-dev and libgles2-mesa-dev, and the error message names
which package belongs to which target. The precheck is also skipped with a
notice on hosts without dpkg-query instead of failing, since configure is the
real authority there.

The cores recipe keyed a hard-coded zlib probe off a generic dependency field,
so any future core declaring a different dependency would have been checked for
the wrong library and then failed confusingly at its link step. The check now
dispatches on the declared name and refuses with an explicit message when no
probe exists for it. Verified by rewriting the field to an unknown package: the
recipe reports the dependency by name and skips rather than building.

Adds shellcheck over scripts/pi/*.sh to the pi bring-up job. The retro build
recipes are deliberately not run in continuous integration because they depend
on upstream archive availability, but linting them needs no network and is
deterministic, so a quoting or word-splitting defect cannot reach the Pi
unreviewed. All three scripts are clean at --severity=style.

Re-verified after the fixes: shellcheck clean, the cores recipe still produces
aarch64 objects for two cores and skips snes9x with the correct reason, and the
frontend still builds and reports Version 1.22.2.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 50 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 018203b6-f1bb-4a71-a78c-eeb99c280042

📥 Commits

Reviewing files that changed from the base of the PR and between a9f0583 and 74d03ce.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml
  • scripts/pi/build-retro-cores.sh
  • scripts/pi/build-retro-frontend.sh

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

@randroid88
randroid88 merged commit 6510108 into main Aug 4, 2026
8 checks passed
@randroid88
randroid88 deleted the agent/review-retro-recipes branch August 4, 2026 05:42
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