Skip to content

build: re-run PR title check on synchronize without cancelling - #227

Merged
tokoko merged 1 commit into
substrait-io:mainfrom
nielspardon:fix/pr-title-check-synchronize
Jul 20, 2026
Merged

build: re-run PR title check on synchronize without cancelling#227
tokoko merged 1 commit into
substrait-io:mainfrom
nielspardon:fix/pr-title-check-synchronize

Conversation

@nielspardon

Copy link
Copy Markdown
Member

Problem

The PR title / description conforms to semantic-release check — a required status check on main — stops being reported once a PR receives a new commit, leaving the PR permanently BLOCKED (e.g. #224). The check runs and passes when the PR is opened, but pushing a follow-up commit never re-reports it.

Root cause

GitHub keys required status checks to the head commit of the PR. #203 dropped synchronize from the workflow triggers (to fix the double check-run race in #198), so a push no longer runs the check. The passing check-run stays attached to the previous head commit, and the new head commit has no PR title / description conforms to semantic-release run at all — so the status rollup can never be satisfied.

Dropping synchronize is fundamentally incompatible with this being a required check: any contributor who pushes after opening a PR strands the required check.

Fix

  • Re-add synchronize so the check reports on every head commit.
  • Set cancel-in-progress: false so the chore(deps): bump actions/checkout from 6 to 7 #198 race doesn't return. That race left a cancelled check-run because synchronize and edited (fired together by a Dependabot rebase on the same commit) landed in the same concurrency group and one cancelled the other. With cancellation disabled the second event queues behind the first and both finish as successes — two harmless SUCCESS check-runs instead of one SUCCESS + one CANCELLED. The concurrency group is kept so runs for a PR still serialize and the comment job can't race with itself.

🤖 Generated with AI

The "PR title / description conforms to semantic-release" check is a
required status check, and GitHub keys required checks to the head
commit. After substrait-io#203 dropped `synchronize` from the triggers, pushing a
new commit to a PR no longer re-reported the check on the new head
commit, leaving it stranded on the previous commit and blocking the PR
indefinitely (e.g. substrait-io#224).

Re-add `synchronize` so the check reports on every head commit, and set
`cancel-in-progress: false` to avoid reintroducing the double check-run
race from substrait-io#198: a Dependabot rebase fires `synchronize` and `edited` on
the same commit at once, and cancelling one leaves a cancelled check-run
on the head commit that fails the status rollup. With cancellation
disabled the second event queues behind the first and both finish as
successes.

🤖 Generated with AI
@tokoko
tokoko merged commit 3a10afb into substrait-io:main Jul 20, 2026
21 checks passed
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.

2 participants