codeconsole opened a new pull request, #16213:
URL: https://github.com/apache/grails-core/pull/16213

   Every pull request against a release branch computes the same 
release-drafter concurrency group, because the group is keyed on the branch it 
targets:
   
   ```yaml
   group: release-drafter-${{ github.event.pull_request.base.ref || 
github.ref_name }}
   cancel-in-progress: true
   ```
   
   Two pull requests pushed within seconds of each other therefore share one 
slot, and the later one cancels the earlier:
   
   ```
   05:30:24  feat/hiddenmethod-handler-mapping        cancelled   (#16183)
   05:30:36  perf/urlmapping-name-resolution-8.0.x    success
   ```
   
   The evicted pull request shows a cancelled check with nothing wrong with it, 
and never receives the labels the run exists to apply. Anything that raises 
several pull requests at once — rebasing a stack, merging a branch into each of 
them — makes it routine.
   
   Queueing instead of cancelling would not fix it: GitHub keeps one pending 
run per group and cancels the one pending before it, so a sweep of ten pull 
requests would still show eight cancellations, of queued runs rather than 
running ones.
   
   ## The group is the pull request
   
   ```yaml
   group: release-drafter-${{ github.event.pull_request.number || 
github.ref_name }}
   ```
   
   Pull requests no longer meet. `cancel-in-progress` still does the right 
thing within one subject: pushing twice to the same pull request supersedes its 
own earlier run, and pushes to a release branch still share a group by branch 
name.
   
   ## A pull request run labels; it does not draft
   
   ```yaml
   disable-releaser: ${{ github.event_name == 'pull_request' }}
   ```
   
   They shared a slot for a reason — two runs creating the same draft at once 
is how the duplicate drafts described in that file's header appear — so this 
removes the reason rather than working around it.
   
   Release notes are built from **merged** pull requests. An open one 
contributes nothing to the draft, so the releaser was rewriting the draft it 
had already written. Checked against the live `v8.0.0` draft: it lists merged 
pull requests only, which also corrects the claim in the workflow comment that 
the draft "picks up new PRs as soon as they are opened".
   
   Labels still apply on every pull request event. The draft is written by 
pushes to the release branch, which is when a merge can actually change it.
   
   `./gradlew validateActions` passes.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to