chore: raise the bar for CI-runner-time-only changes - #6213
Closed
prql-bot wants to merge 1 commit into
Closed
Conversation
Collaborator
Author
|
Closing as superseded — max-sixty/tend#1015 makes this change in the bundled Not deleting the branch, in case any of the wording is worth salvaging. |
This was referenced Aug 19, 2026
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.
Adds a Bar for CI-only changes section to the
running-tendskill, so future sweeps hold self-initiated CI work to a higher bar than they did on #6211. Requested by @max-sixty in this comment — "we should have a much higher bar for changes that only affect CI runner time".The rule requires all three of: recurrence across distinct incident windows (not runs), a cost beyond runner minutes, and a fix proportionate to that — a line or two, not a new script. When it doesn't clear the bar, the sweep notes the run IDs on the thread and stops rather than opening an issue or PR. Maintainer-requested CI work and a genuinely red
mainare carved out.Worth flagging that tend's bundled
running-in-ciskill already carries this rule, in its Weighing a Fix section — "fix waste only when the fix is a simple knob (a cadence value, a deleted step, a one-line condition); otherwise note the cost where the maintainer will see it and move on." #6211 is a straight violation of it. The reason it didn't bind is framing: every example there is about tend's own session compute ("a no-op session, a duplicated survey, a run lost to a blip that a later tick retries"), so a sweep looking at the repo's CI runner time doesn't read itself as the addressee. So this section is written to point back at that rule and widen its scope rather than restate it, which keeps the overlay short. I've also filed the framing gap upstream in tend, since it would fire the same way in any consumer.The proportionality clause is the one #6211 most needed: that PR started as a
timeoutaddition and reached 88 added lines across 6 files, because each review round found a real gap and each fix was individually justified. So the bar has to be re-checked as the diff grows, not just at the point the work is proposed.On "looks like this only happened once?"
Close, but not exactly — the shape recurred, which is why I want the bar written in terms of cost and proportionality rather than a recurrence count alone.
Scanning
testsruns onmainfor jobs that ran past 60 minutes, the 360-minutecancelledshape on the muslbuild-prqlc*legs appears in four runs across ~3.5 months, in three distinct incident windows:The last two are ~14 hours apart and are one mirror incident, not two. I confirmed the apt-stall cause only for the August window — the June runs match on job shape and duration, but their logs weren't checked, so the common cause there is inferred rather than verified.
Either way the conclusion is the same as the one in the comment: roughly monthly, self-correcting on a re-run, and costing runner minutes only. That doesn't earn a retry script across six workflow files.
Method:
repos/PRQL/prql/actions/runs/<id>/jobsover the 60 most recent completedtestsruns onmain, filtered to jobs with a completed-minus-started duration over 60 minutes; widened to 400 runs (2026-04-30 → present) using run-level duration over 300 minutes, since a 6h job forces a 6h run.