jdaugherty commented on PR #16673:
URL: https://github.com/apache/grails-core/pull/16673#issuecomment-6278216598

   Thanks for the careful read. All of it is folded into the single commit, now 
9cdcfeaac2.
   
   1. **Retries.** The commit read is retried five times with a growing pause 
(2, 4, 8, 16 s). If it still fails, the policy runs the tests, as every pull 
request did before this change, and leaves a warning annotation and a note in 
the job summary. The policy job no longer fails on an API error, so nothing 
behind it is skipped.
   2. **Manual runs.** In `apache/grails-core` a `workflow_dispatch` keeps 
following the branch rule. That is deliberate: the way to test an older branch 
is a pull request or a `[run tests]` commit. In a fork, where the runner time 
is the fork owner's rather than the ASF's, a manual run now runs the tests 
unless the commit says `[skip tests]`.
   3. **Mechanical check.** Agreed, and we will add it to the repository 
conventions task when this is merged up to 8.0.x. That task lives in 
`build-logic` on 8.0.x and later only, so it cannot ride in a pull request 
against 7.0.x. The rule is: in any workflow with a `pull_request` trigger, 
every job either needs `policy`, directly or through another job, or carries 
the label-and-draft `if`. A job with `always()` in its `if` ignores a skipped 
dependency, so it has to restrict the event or repeat the label check, as 
`publish` does.
   4. **`labeled` trigger.** We would rather not. GitHub cannot filter a 
`labeled` event by label name before the run starts, so every label event, 
including the autolabeler on every pull request open, would start a run of all 
eight pull-request workflows. Each of those needs a concurrency exception or it 
cancels the real run for that ref, and their skipped jobs become the latest 
check runs for the commit, replacing the green results in the merge box. 
Setting the label and then pushing, or marking the draft ready, is cheaper, and 
a `no ci` label on a pull request that is already running is a one-click cancel.
   5. **Concurrency.** Yes: a push to a draft cancels the in-flight run for 
that pull request, exactly as every pull request push did before this change, 
because `cancel-in-progress` is on for `pull_request` events. The only new part 
is that the replacing run does nothing, since the draft rule skips every job. 
The cancelled run was for a superseded commit anyway, so that is the wanted 
outcome. It is now documented in AGENTS.md and CONTRIBUTING.md.
   6. **Labels.** `no ci` and `run ci` now exist on the repository.
   


-- 
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