Repository navigation
deps-auto: auto-merge in its own job with contents: write - #473
Merged
Merged
Conversation
… a systemd unit Unquoted, Environment=PC_BATTERY_WRAP=e2e-slot --exclusive ... is split at the spaces (found installing the timer on the desktop). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…5-10 (16 shards; replayed slowest shard 49 -> 35-38 min) - refresh --results is repeatable and takes the median per suite: a suite's time moves by half between runs on a shared runner, and the 15-shard split fitted to run 9 alone put run 10's shards anywhere from 21 to 50 min - battery.json seconds from runs 5-10 (required + optional passes); replaying runs 8 / 9 / 10 on the new split: max shard 38 / 37 / 35 min (was 49 / 38 / 49) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…et by hand
- deps-policy.cjs: new `battery` output = the PR moves the root app's npm packages and is not a major
- deps.yml: perf budget + plan/e2e only when battery=true (Actions, tools/agent and majors get ci.yml alone);
a major's deps-gate fails on purpose ("not tested here"); the optional set runs on workflow_dispatch only
- why: Dependabot's first round after 1.43.0 opened 9 PRs at once = ~380 jobs on the account's 20-job cap,
queueing the v1.43.0 release job and every lane's CI for hours (runs cancelled, re-run after this)
- RELEASING.md + depsCi test (9/9); check-ratchet 299/39 = baseline; actionlint clean
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- confirm / e2e-optional / optional-report / deps-gate used always(), which also runs after a cancel: cancelling Dependabot's 9 first-round runs still started their optional sets (18 shards each); now !cancelled() Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ub runner; medians from runs 5-12 - run 12 (#468, released 1.43.2 app code, CI-only diff) was the scatter suites' first run on the runner: scatter-select + scatter-convert red twice (shard + fresh confirm runner: "B has the terrain" never true), scatter-sources at the 600 s suite timeout twice (all its checks green until then) -> optional with reasons - scatter-edit was flaky (green on the confirm runner) and stays required - refresh --results over runs 5-12 (one durations file per run): 16 required shards ~35 min each Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- run 13 (#468): scatter-edit red on its shard and both confirm tries, the same 'B has the terrain' as scatter-select/convert in run 12 (where it was green on confirm); scatter-surface flaky, stays required Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- #460 (actions, class auto) went green through the gate on the 2k deps.yml, then the gate's auto-merge step failed: 'Resource not accessible by integration (enablePullRequestAutoMerge)' (it needs contents: write) - a separate automerge job after a green deps-gate holds contents + pull-requests write and checks nothing out, so the gate (which runs the PR's code) stays contents: read Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- the deadline was Date.now() + 0, which is truthy, so '|| Infinity' never applied: by hand (no flag) every suite after the first came out notrun. CI always passes --deadline, so the workflows were unaffected. Found by lane scatter-sync. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- red on its shard in runs 13, 14 and 16 (#473 run 16: shard + both confirm tries): the Add scatter click times out (locator.click 30 s) - a different failure from the late-joiner terrain race Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…the GitHub runner - the two required suites that fail on their shard about half the time (runs 10-17): knock-physics (shard red in 8, 9, 12, 14, 17; run 17 also both confirm tries, '2.3 (premise) B sees the ball parked') and env-preset-broadcast (shard red in 10, 12, 13); at ~50% a run loses all three tries ~1 in 8, so each alone turned deps-gate red every few runs. The rest of the flaky set is ~25% or less Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
AlexZ005
added a commit
that referenced
this pull request
Oct 25, 2026
…s skipped (#475) * [docs] deps-auto 3g: pc-battery — PC_BATTERY_WRAP has to be quoted in a systemd unit Unquoted, Environment=PC_BATTERY_WRAP=e2e-slot --exclusive ... is split at the spaces (found installing the timer on the desktop). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * [fix] deps-auto 2j: shards balance on the median runner time of runs 5-10 (16 shards; replayed slowest shard 49 -> 35-38 min) - refresh --results is repeatable and takes the median per suite: a suite's time moves by half between runs on a shared runner, and the 15-shard split fitted to run 9 alone put run 10's shards anywhere from 21 to 50 min - battery.json seconds from runs 5-10 (required + optional passes); replaying runs 8 / 9 / 10 on the new split: max shard 38 / 37 / 35 min (was 49 / 38 / 49) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * [fix] deps-auto 2k: battery only where it tests something; optional set by hand - deps-policy.cjs: new `battery` output = the PR moves the root app's npm packages and is not a major - deps.yml: perf budget + plan/e2e only when battery=true (Actions, tools/agent and majors get ci.yml alone); a major's deps-gate fails on purpose ("not tested here"); the optional set runs on workflow_dispatch only - why: Dependabot's first round after 1.43.0 opened 9 PRs at once = ~380 jobs on the account's 20-job cap, queueing the v1.43.0 release job and every lane's CI for hours (runs cancelled, re-run after this) - RELEASING.md + depsCi test (9/9); check-ratchet 299/39 = baseline; actionlint clean Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * [fix] deps-auto 2l: a cancelled deps run stays cancelled - confirm / e2e-optional / optional-report / deps-gate used always(), which also runs after a cancel: cancelling Dependabot's 9 first-round runs still started their optional sets (18 shards each); now !cancelled() Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * [fix] deps-auto 2m: three of 51's scatter suites optional on the GitHub runner; medians from runs 5-12 - run 12 (#468, released 1.43.2 app code, CI-only diff) was the scatter suites' first run on the runner: scatter-select + scatter-convert red twice (shard + fresh confirm runner: "B has the terrain" never true), scatter-sources at the 600 s suite timeout twice (all its checks green until then) -> optional with reasons - scatter-edit was flaky (green on the confirm runner) and stays required - refresh --results over runs 5-12 (one durations file per run): 16 required shards ~35 min each Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * [fix] deps-auto 2n: scatter-edit optional on the GitHub runner too - run 13 (#468): scatter-edit red on its shard and both confirm tries, the same 'B has the terrain' as scatter-select/convert in run 12 (where it was green on confirm); scatter-surface flaky, stays required Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * [fix] deps-auto 2o: auto-merge in its own job with contents: write - #460 (actions, class auto) went green through the gate on the 2k deps.yml, then the gate's auto-merge step failed: 'Resource not accessible by integration (enablePullRequestAutoMerge)' (it needs contents: write) - a separate automerge job after a green deps-gate holds contents + pull-requests write and checks nothing out, so the gate (which runs the PR's code) stays contents: read Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * [fix] deps-auto 2p: battery.cjs run with no --deadline runs every suite - the deadline was Date.now() + 0, which is truthy, so '|| Infinity' never applied: by hand (no flag) every suite after the first came out notrun. CI always passes --deadline, so the workflows were unaffected. Found by lane scatter-sync. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * [fix] deps-auto 2q: scatter-surface optional on the GitHub runner - red on its shard in runs 13, 14 and 16 (#473 run 16: shard + both confirm tries): the Add scatter click times out (locator.click 30 s) - a different failure from the late-joiner terrain race Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * [fix] deps-auto 2r: knock-physics + env-preset-broadcast optional on the GitHub runner - the two required suites that fail on their shard about half the time (runs 10-17): knock-physics (shard red in 8, 9, 12, 14, 17; run 17 also both confirm tries, '2.3 (premise) B sees the ball parked') and env-preset-broadcast (shard red in 10, 12, 13); at ~50% a run loses all three tries ~1 in 8, so each alone turned deps-gate red every few runs. The rest of the flaky set is ~25% or less Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * [fix] deps-auto 2s: automerge runs after a green gate even when the battery was skipped - #460 on c6dda92: run green (scope auto, ci green, deps-gate + pc-battery SUCCESS) but automerge SKIPPED: its implicit success() also checks the gate's own needs, and perf/plan/e2e are skipped for every PR without the battery. Now: !cancelled() && needs.gate.result == 'success' && class auto && base deps Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
On the new deps.yml (#468), Dependabot's Actions PR #460 passed everything:
scope: classauto,battery=falsepc-batterywas posted as "not needed"Then the gate's auto-merge step failed:
Enabling auto-merge needs
contents: write. The gate job checks out and runs the PR's code, so it should keepcontents: read. The fix moves auto-merge into its own job,automerge. That job:[scope, gate], so it runs only after a greendeps-gate;contents: write+pull-requests: write;gh pr merge --auto --squash(withGH_REPO).Checks: actionlint 1.7.7 clean. This PR is a manual one, so it runs the required battery once. Afterwards, an
@dependabot rebaseon #460 shows the auto-merge end to end.🤖 Generated with Claude Code