In our recent discussion with Thomas Petazzoni, Thomas mentioned the debate about using older collaboration methods such as emailing patches vs newer methods like Github pull requests (PRs). The following article is an excellent discussion of these trade-offs.
Doing an analysis on the MAINTAINERS file in the Linux source tree, I get 3045 unique maintainers:
[cbrake@mars linux]$ grep '^M' MAINTAINERS | uniq | wc -l 3045
The Github mirror shows 11,071 contributors.
Does the Github/PR model work for large open source projects? The Kubernetes projects has 2,893 contributors, 849 open pull requests, and 2,031 open issues. The Kubernetes project is roughly an order of magnitude smaller than the Linux kernel in terms of the number of contributors, and even then it does not seem to be keeping up with issues and PRs. I do like the PR workflow, but it appears that workflow probably only works for small/mid size projects. Github does provide a feature in their pull requests to compare across forks:
However, that appears to only go one level deep – for a Linux size project, it seems you would need to be able to nest forks many levels.
Gitlab looks similar in that you can target a pull request at any of a repos forks, but not sure if that extends to forks of forks.
Maybe there is an opportunity for a distributed pull request mechanism? Looks like someone already thought of this: