mirror of
https://github.com/Comfy-Org/github-workflows.git
synced 2026-11-05 00:17:37 +00:00
[PR #108] [MERGED] feat(groom): raise the pr_size_limit default from 400 to 600 lines (BE-6161) #116
Labels
No labels
cursor-review-catalog-drift
groom
groom
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/github-workflows#116
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/github-workflows/pull/108
Author: @mattmillerai
Created: 8/2/2026
Status: ✅ Merged
Merged: 8/4/2026
Merged by: @mattmillerai
Base:
main← Head:matt/be-6161-groom-pr-size-limit-600📝 Commits (3)
3ef62a0feat(groom): raise the pr_size_limit default from 400 to 600 lines (BE-6161)5755028docs(groom): correct two overclaims in the pr_size_limit rationale (BE-6161)f07fd00Merge remote-tracking branch 'origin/main' into matt/be-6161-groom-pr-size-limit-600📊 Changes
1 file changed (+29 additions, -3 deletions)
View changed files
📝
.github/workflows/groom.yml(+29 -3)📄 Description
ELI-5
Groom's auto-builder refuses to open a PR whose patch changes more than
pr_size_limitlines — it files agroomissue instead so nobody has to review a giant machine-written diff. That ceiling was 400. This raises the shared default to 600, in the reusable workflow, so it changes once under review instead of 28 times across callers.Why 600, and why not 1000
Measured across both builder repos on 2026-08-02: 49
groomissues, 7 bail issues, exactly 1 patch-too-large — and that one was403 lines changed (> 400). Three lines over. The other 6 bails are CI-privileged-file / security refusals that no size change affects. So 400 was not systematically too tight; it caught one boundary case, and 600 buys headroom for that shape without a large jump.1000 was rejected deliberately, even though it is the org's human PR cap (
pr-size.ymlmax_lines), for two reasons — both now recorded in the input's description so the next person doesn't "harmonize" the numbers:pr-size.ymlcounts non-generated changed lines — it strips lockfiles andlinguist-generated/Code generatedoutput first, and offers anoversized-okbypass label. Groom counts raw changed lines with no exclusions. 1000-non-generated and 1000-raw are not the same quantity.pr_size_limitis a hard refusal on a diff with no author to interrogate; the failure mode is a reviewer approving 900 plausible-looking machine-written lines because nothing in it looks wrong. The machine does not get the same benefit of the doubt, on purpose.What changed
.github/workflows/groom.yml—pr_size_limitdefault400→600, plus the expanded description above (below-the-human-cap rationale + the measured evidence for the raise).e.g. 400.0) follows the default to600.0. The parsing behaviour it documents is unchanged.What deliberately did NOT change
pr_size_limitstays in_LOCKED_KEYS(.github/groom/config.py). It is the backstop against an unreviewably-large machine patch; a repo raising its own ceiling viaGROOM_CONFIGwithout review defeats it. Raising the shared default here, under review, is the sanctioned act. Already covered bytest_pr_size_limit_is_locked.bail_sink(BE-6157) is untouched. That ticket is about suppressing bail issues; this one is about producing fewer bails in the first place. Complementary, neither replaces the other.600. Nothing in.github/groom/tests/asserted400— the number lived in exactly one place (this default) — and a test that re-reads the YAML to assert the literal would recreate the two-places drift the ticket warns about. The invariant actually worth guarding (the key stays locked) is already tested.Propagation — this does not take effect immediately
Callers are SHA-pinned (
uses: ...@<sha>+ matchingworkflows_ref), so a repo keeps 400 until its pin advances past this commit: merge here →bump-groom-callers.ymlopens SHA-bump PRs for every repo inGROOM_CALLERS→ 600 takes effect per repo as those merge. Two consequences worth stating so nobody is surprised: the 4 callers absent fromGROOM_CALLERS(already stranded on older SHAs, BE-6015) will not get this; and the pending builder callers of BE-5920 inherit 600 for free since they pin current main at implementation time.Verification
python3 -m unittest discover -s .github/groom/tests -p 'test_*.py'→ 170 tests, OK.groom.ymlwith PyYAML and read the resolved input back:defaultis the integer600, and the folded description renders as the intended three paragraphs (blank-line handling in>-is easy to get wrong, so it was checked rather than assumed).pr-size.ymlagainst that file:max_linesdefault1000, generated/lockfile exclusion,oversized-okbypass label — all accurate.pr_size_limit/PR_SIZE_LIMIT/400across workflows,.github/groom/,.github/bump-callers/, and both READMEs: no caller in this repo passespr_size_limit, so no caller-side value silently keeps 400.Judgment calls
600appears in the prose only in the historical "raised 400 → 600" note; the forward-looking sentence says "the default" so the prose can't drift from the value.pr_size_limit:input echo, which shows the input default) — cannot be met inside this PR and are unverified here by construction.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
enabledis false #126enabled#319