Pull Request Review Process
This document describes how pull requests are handled in desktop/desktop.
Review Team
Desktop pull requests are reviewed by the
desktop/code-reviewers team. Reviews are distributed via
GitHub's load-balanced code review assignment, which
considers each member's recent review requests and outstanding
reviews.
Review Ownership
The Assignee field indicates who owns the review process for a contribution. While others are welcome to add reviews, the assignee is responsible for seeing the PR through to completion. Assignees can request additional reviews from engineers with relevant domain expertise.
Internal Pull Requests
- Contributor opens a pull request (use draft mode if still in progress).
- When ready, the contributor marks it ready for review.
- A reviewer is auto-assigned via load-balanced code review assignment.
- Reviewer leaves feedback; contributor responds and iterates.
- Once approved, follow the 24-hour cooling-off period before merging.
No Self-Merges Without Review
Contributors should not merge their own PRs unless there are exceptional reasons (e.g., urgent CI fixes or packaging hotfixes). These should be called out with an explanation for bypassing the review process.
External Pull Requests
External PRs follow this workflow:
- Initial triage — PR receives the
externalandneeds-triagelabels. The First Responder performs a quick validity check:- Spam or AI sludge → Add
invalid(auto-closes) - Not linked to a help-wanted issue → Add
no-help-wanted-issue(auto-closes with comment) - Tiny fix (e.g., typo) → Review, test, and merge directly
- Valid → Add
ready-for-reviewand run CI (auto-removesneeds-triage, auto-posts acknowledging comment)
- Spam or AI sludge → Add
- Review assignment — The auto-assigned reviewer does
not act until
ready-for-reviewis applied. - Requesting changes — If changes are requested, the
contributor-input-neededlabel is auto-added (removesready-for-review). When the contributor responds,ready-for-reviewis re-applied automatically. - Stale PR handling — If no activity for 7 days, an automated message asks if the contributor is still interested. After another 7 days of inactivity, the PR auto-closes.
24-Hour Cooling-Off Period
After approval, most contributions remain in this state for at least 24 hours before merging. This ensures all team members across time zones have a chance to provide feedback.