Hi everyone,
given that we have currently 53 open pull requests, some of them being quite old, shows that we aren’t doing a good job at handling contributions by non-committers (some are also by committers and on hold for various reasons, but this definitely doesn’t apply to all of them). As this can deter new contributors and doesn’t make contributing to XWiki a nice experience, I would suggest to create an effort to change that. At the moment, all committers are responsible for all pull requests, and I think this creates part of the problem as nobody feels truly responsible for checking that a pull request is actually either merged or closed at some point.
To change this, I suggest that we start making use of the “Assignee”-feature in GitHub. I suggest that we aim to achieve the following:
- When a pull request is opened, at least one committer assigns him/herself to the pull request.
- It is then the responsibility of the assignee to
- Either directly review the pull request or to ask other committers for feedback
- Merge the pull request when all relevant feedback has been addressed
- Apply the changes to stable branches where appropriate
- Close the Jira issue and make sure that the documentation is updated when necessary
- Handle any breakages that are caused by the pull request, if possible in coordination with the contributor
- Take over the work to complete the pull request when the contributor is unable to address the feedback or doesn’t respond anymore at some point if this seems reasonable, e.g., when the work already done by the contributor provides a value to XWiki and it wouldn’t be faster to just start from scratch.
- Close the pull request (without merging) when this seems reasonable
- To ensure that contributions are accepted in a timely manner, we commit on a best-effort basis to assign a committer within two working days and merge contributions for the next RC release if they were submitted at least one week before it and are in a reasonably good state.
Due to the time requirements for this, the expectation would be that primarily committers who are working full-time on XWiki take the responsibility of assigning themselves to pull requests. By default, committers would assign themselves to their own pull requests, but I would suggest we explicitly offer that another committer takes the assignee role for pull requests created by committers who aren’t working full-time on XWiki or who are new. The expectation would be that while the committer who created the pull request does most of the work, the assignee would help with time-critical tasks when the author of the pull request is unavailable and the assignee could also help with following all best practices that might not be that well-known to a committer who contributes only occasionally.
To make sure we also handle the existing pull requests, I suggest that every committer who is working on XWiki as part of the monthly roadmaps picks an open pull request every week, assigns himself and tries to handle it as part of the bug fixing days, with the goal of either merging or closing it until the next bug fixing day.
If we agree on this proposal, I suggest to document these rules on the committership document, basically as a more detailed version of
- Committers must do a best effort of accepting Pull Requests (PRs) from contributors, reviewing them and when they are satisfied the quality and relevance are good enough, applying them.
Any opinions on these ideas?