ci: watch for a bundled driver pin left behind - #705
Merged
Conversation
The drift guard answers "did someone edit a driver here" and runs on every pull request. Nothing answered the opposite question, so a pin could sit still while a fix landed upstream. That is how a Pixii poll-counter flap reached customer hardware a second time: fixed in device-drivers, still bundled here, and no signal in between. sync-bundled-drivers.sh gains --behind, which compares drivers/ against device-drivers main instead of against the pin. It reports which drivers would change, not merely that the commit id moved, so a doc change or a dependency bump upstream stays quiet. A daily job runs it and keeps one issue up to date rather than opening a new one each morning. It closes that issue once the pin catches up. An exit code other than 0 or 1 fails the job: a network or API failure must not read as "the pin is fine". Verified against the current master, whose pin is genuinely five commits behind: --behind reports pixii, solaredge_legacy and sungrow and exits 1, while --check and plain sync are unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Fredrik Ahlgren <fredrik@sourceful-labs.com>
frahlg
force-pushed
the
scheduled-check-for-a-stale-bundled-driver-pin
branch
from
July 28, 2026 19:17
db97189 to
77de17d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the gap named in #704. That PR moves the pin; this one notices next time.
Two opposite questions
drivers/is a snapshot ofsrcfl/device-drivers, and it can go wrong in two directions.--check, thedriversjob intest.yml--behind, this workflowOnly the first had an answer. That is how a Pixii poll-counter flap reached customer hardware a second time — fixed in device-drivers, still bundled here, and nothing in between to say so. The pin had aged five commits before anyone looked.
What it does
sync-bundled-drivers.shgains--behind, which resolves device-driversmainand comparesdrivers/against it rather than against the pin.It reports which drivers would change, not that the commit id moved. A doc change or a dependency bump upstream stays quiet, which is what makes a daily schedule bearable — of the five commits this pin was behind, only two touched a bundled driver.
The workflow keeps one issue up to date instead of opening a new one each morning, and closes it once the pin catches up. An exit code other than 0 or 1 fails the job: a network or API failure must not read as "the pin is fine", and must not open an issue claiming drivers changed when we never found out.
Verification
Run against the current
master, whose pin really is behind:That is the real staleness #704 fixes, found by the check rather than by a customer.
Existing modes are unchanged:
--checkstill passes against the old pin (37 drivers match), plain sync is still a no-op, and an unknown option now exits 2 rather than being silently treated as sync.bash -npasses, which is whatmakealready runs over this script.Once #704 merges,
--behindgoes quiet on its own.🤖 Generated with Claude Code