Allow for more clarity on disposition of merge requests
Summary
New labels and practices are proposed for handling merge requests. In particular, we try to provide strategies for handling stale merge requests.
Background
A merge request may go stale for many reasons. The author may not have responded to feedback or may not have received feedback from reviewers. An accompanying issue may have gone stale because of unclear priority or timeline. It can be hard to tell whether a merge request is still "active" but there are no guidelines for public two-way communication of whether an MR is on track to be reviewed, and whether the contributor or reviewers have any intention of following up.
It does not help the contributor or the reviewer to simply rebase the MR periodically. Rebasing is often not a true requirement for an issue or merge request to receive initial feedback or even complete review, and is a false indication of how "active" an issue is.
If developers try to prescreen merge requests to determine which old merge requests are simply overlooked versus those that are not likely to receive further attention, there has not been a clear action to take while reviewing the issues.
A merge request can be closed without deleting the branch from which it is made and without affecting the issue status. A closed MR remains linked from issues whether closed or not.
Many merge requests will never be reviewed. When it seems clear to a number of potential reviewers that a merge request is not likely to be reviewed any time soon, the merge request will be closed in order to indicate that it is not actively under review or consideration. The merge request may be reopened, but the contributor should respond to review threads, resolve merge conflicts, and communicate with other developers before doing so.
A working proposal
The following process may be partially or fully automated, but can be carried out by a group of developers.
A merge request that has had no updates for six months or more can acquire the status label "Status::Stale"
If the proposed change still seems important and the next steps are unclear, contributors with stale issues are encouraged
- to contact existing reviewers (or potential reviewers),
- to participate in the developer mailing list, and
- to attend the biweekly teleconference to coordinate.
If the future of the merge request has not become clear within a month (especially if it has become stale multiple times), developers may close the merge request with a label indicating why it has entered a "closed" state.
"Status::Stale" and "Status::Closed, " should not be assumed to imply that the merge request has been reviewed unless it is explicitly rejected.
The above notes will be added to the contributing guidelines and to the documentation on GitLab labels (in a merge request in preparation by @eirrgang). New labels will be created and described by @eirrgang shortly.