Skip to content

ci: let every Changelog guard run finish, so none is left cancelled - #642

Merged
lywinged merged 1 commit into
mainfrom
ci/changelog-guard-no-cancel
Oct 28, 2026
Merged

lywinged merged 1 commit into
mainfrom
ci/changelog-guard-no-cancel

Conversation

@lywinged

Copy link
Copy Markdown
Collaborator

What this changes

Removes the concurrency group from .github/workflows/changelog-guard.yml and leaves a comment in its place saying why there is none.

Dependabot labels a pull request as it opens it, so one pull request starts three guard runs within a second, one for opened and one for each labeled, and cancel-in-progress cancelled all but one. On #639 that left cancelled runs beside the one that passed, and the pull request stayed blocked with an approval on its head and every other required check green. I re-ran the two cancelled runs at 03:02 UTC on 28 October and changed nothing else; auto-merge merged it at 03:04:41Z. #641's first head had the same three runs, two of them cancelled. #636 and #637, whose last push was a single synchronize, had one run each and merged.

Each run reads only its own event's base, head and labels and finishes in seconds, so letting all of them finish costs nothing.

Not done instead: a job-level if that skips label events other than changelog. A skipped job reports success and does not block a merge even when it is a required check, so on a pull request that edits CHANGELOG.md any unrelated label would clear the guard's failure. The comment in the workflow says this too, so the group is not put back and the if is not reached for.

Type of change

None of these: a CI workflow only.

  • Editorial (typo, link fix, clarification: no normative effect)
  • Non-breaking spec change (new optional field, new platform profile, informative addition)
  • Breaking spec change (requires 14-day comment period and Project Lead sign-off)
  • Schema change
  • Example addition

Spec section

None.

Tests for a fix

Not a code or schema fix. The behaviour it changes is the one shown on #639 above. actionlint 1.7.12, the version the Workflow lint job pins, is clean on every workflow with this change, as it is on main.

Changelog entry

None: a CI workflow change, with nothing in the specification or the package changed.

Checklist

  • DCO sign-off on all commits (git commit -s)
  • Breaking changes marked with <!-- CHANGED: #NNN: description --> in spec text
  • Backward compatibility statement included (for breaking changes)

Generated by Claude Code

Dependabot labels a pull request as it opens it, so one pull request starts
several guard runs at once, and cancel-in-progress cancelled all but one. A
cancelled run kept the required Changelog guard check from passing and held
the merge until the cancelled runs were re-run. Each run reads only its own
event and finishes in seconds, so the concurrency group goes and every run
finishes.

A job-level if that skips label events other than changelog would also avoid
the extra runs, but a skipped job passes a required check, so an unrelated
label added to a pull request that edits CHANGELOG.md would clear its failure.

Signed-off-by: Louie Lu <48041247+lywinged@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UtTRZHH7SXtpEikWace636
@lywinged
lywinged requested review from a team and rajnisht7 as code owners October 28, 2026 03:09
@lywinged
lywinged merged commit e1a8f81 into main Oct 28, 2026
13 checks passed
@lywinged
lywinged deleted the ci/changelog-guard-no-cancel branch October 28, 2026 09:58
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.

3 participants