tools: prefilter commit queue metadata#64343
Conversation
|
Review requested:
|
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
|
FWIW there's |
Run `git node metadata --readme` in the lightweight commit queue selector before starting the checkout-heavy landing job. The selector keeps `commit-queue` on PRs that are only waiting for approvals, TSC approval count, or wait time. Other metadata failures continue to the existing commit queue script so failure labels and comments are still produced by the current landing path. Fetch age-based, fast-track, and broader queue buckets before deduplicating the list so not-yet-ready PRs do not crowd out PRs that would otherwise have been selected. Signed-off-by: Filip Skokan <panva.ip@gmail.com>
a463eb1 to
557131b
Compare
|
Reworked based on @joyeecheung's observation. This now uses Everything else is left to the existing |
|
A proper API for NCU is still a thing to take care of. The selector currently has to classify Then this workflow could defer only the reason codes it intentionally owns, and pass everything else to the existing landing path without depending on exact wording in CLI output. |
|
Updated to consume structured The selector now runs
This removes the brittle grep-based classifier while keeping the original split of responsibility: the lightweight selector only owns deferrable readiness states, and the existing landing path still owns failure labels/comments for hard failures. |
Alternative to #64340, #64262, and #62498 which unlike the others keeps the existing commit queue landing and failure-reporting path intact, while only adding a lightweight metadata prefilter before the heavy checkout job.
This makes the
commit-queuelabel addable before a PR is fully landable. The lightweight selector runsgit node metadata --readmewithout checking out the repository. If a PR is only waiting for approval count, TSC approval count, or wait time, the workflow leaves the label in place and retries on a later scheduled run.Everything else still goes through the existing
commit-queue.shpath: CI state, requested changes, conflicts, stale review/CI state, new contributor checks, closed/merged PRs, and unknown failures. That keeps the currentcommit-queue-failedlabel and failure comment behavior where it is today.The candidate query also fetches the previous age-based and fast-track buckets before the broader queue and deduplicates them in that order, so early-queued PRs do not crowd out PRs that would have been selected by the previous query if GitHub caps or paginates results.