Hi all,
I’d like to ask about the workflow approval step for fork PRs, specifically what a contributor should do when the documented path does not produce a result.
The documented path. When a ciflow label is applied to a fork PR, the bot posts:
Once a maintainer approves the workflows (scroll to the bottom of the PR page), the corresponding CI jobs will be triggered automatically. Please ping one of the reviewers if you do not have access to approve and run workflows.
So the process has one step: ping a reviewer. The contribution guide does not cover this case, and I have not found a documented fallback for when that ping goes unanswered.
Where that leaves three of my PRs. All are open, all are mergeable, and none has ever run CI:
- #176434 (export.load deserialization moved to C++), opened March 4. Eight comments from me over that period. Two checks have ever run, both trivial. Has ciflow/inductor, still awaiting workflow approval.
- #177985 (SDPA memory-efficient attention crash at num_heads >= 65536), opened March 20. Four pings. Three checks. No ciflow label was ever applied.
- #195100 (thread safety in torch.export.load), opened August 28. Has ciflow/inductor, awaiting approval.
I am not raising this about any individual reviewer. Everyone is busy, and an unanswered ping is a normal outcome. The issue is that the process treats a ping as reliable when it is not, and offers nothing after it.
A relevant precedent. My PR #175983 sat in exactly this state for about seven weeks. What eventually cleared it was a maintainer running @pytorchbot rebase, which triggered the pending workflows as a side effect. That worked, but it happened incidentally rather than through any documented route, and it is not something a contributor can do for themselves.
Questions.
- Is there a way for a contributor with a merge history to have fork workflows approved without a per-PR ping? I have five merged PRs since October 2024 (#132049, #138964, #172123, #173391, #175983), so the first-time-contributor protection this gate provides no longer seems to apply.
- Failing that, is there a documented escalation when a ping goes unanswered for an extended period? A triage rotation, a channel, or a bot command would all work.
- Should ciflow labels be applicable by the PR author once they have merged commits? That would remove one of the two gates without weakening the approval protection.
Happy to help with documentation on this if it would be useful, since the current behaviour is not described anywhere I could find.
Don (@tolleybot)