Thank you everyone for providing feedback on the Code Review RFC. We received 190 comments on the GitHub issue, which are summarized in this document.
The LLVM Foundation Board of Directors reviewed the feedback from the community and while we agree with many concerns regarding missing features and adjustments to make, we believe that the LLVM Project should move to GitHub Pull Requests for code review. We have set the transition date to October 1, 2023 in order to provide adequate time to address some of the concerns and provide the community with enough time to transition.
Before we get into some of the rationale for that decision we would like to acknowledge and say thank you to Google and all the Google engineers that have worked on maintaining Phabricator for the past 10 years. Phabricator is a critical part of the LLVM project and has really allowed the project to grow in ways that weren’t possible with the original email based code review process.
Unfortunately, Phabricator is reaching “end of life”, and we need a new solution. Phabricator is no longer maintained upstream, and it is breaking down as the software ecosystem continues to evolve (e.g. with new versions of PHP). Furthermore, as the LLVM Project continues to grow, we need to continue to evaluate the tools we are using to ensure that they are able to support us for the next decade, as well as serve the next generation of LLVM developers who will join the project in the future.
After evaluating many options, GitHub Pull Requests appears to be the best code review tool for the future of the LLVM project. There are many positive qualities to GitHub Pull Requests: it is a ubiquitous tool that is familiar for new and existing contributors, it has third party hosting, it is easy to integrate with CI and other forms of automation, and it allows us to easily enforce developer policies that allow us to scale as the number of contributors to the project continues to grow.
That said, we have heard your concerns and acknowledge that GitHub Pull Requests are not an exact replacement, and does not provide all the features that Phabricator has. For example, the Phabricator user interface seems to be preferred by the community, it offers “Stack Reviews”, allows you to comment on lines outside of the changed code, and has better automatic subscriptions.
Despite the challenges, we need to get off of Phabricator, and the “must have” developer workflows are already supported by GitHub. We don’t feel that the remaining deficiencies with GitHub Pull Requests overcome benefits of moving to Pull Requests have - but we do think it is important to try to improve the workflows and know it is important to give time for auxiliary workflows to adapt. To do this, we set the target transition date to October 1, 2023. Allowing over a year should provide enough time to adapt, and time to find workarounds/solutions for at least some of the deficiencies that remain.
The next steps now for the community are to tackle some of the Recommended Action Items in the Infrastructure Working Group’s summary of the Code Review RFC. Tom Stellard will be creating a project in GitHub and some issues to track these initial action items. If you have other ideas or things that we should do before the transition, please file an issue so we can track it in the project. If you see an issue that you can help with, please get involved. The more people that help, the smoother the transition will go.
LLVM Foundation Board of Directors