On Tue, Jul 24, 2012 at 10:25 PM, Steven Walling steven.walling@gmail.com wrote:
But do we have a plan for improving Gerrit in a substantial way?
Depends on your definition of "substantial", but yes, we do have a plan to invest in Gerrit. We have been holding off on some of that investment until after the tooling decision is made, but we plan to use some of our contractor budget to make high priority fixes to Gerrit. I don't want to promise more than we can deliver on that front, because the budget we have will only go so far, but we should be able to make substantial progress if we choose wisely.
As Sumana mentioned, even if we stick with Gerrit, we still want a GitHub strategy. This will mean: * Mirroring to GitHub (very important, and relatively easy. Chad just needs to find the time) * Accepting pull requests from GitHub (very important, but harder. Needs support in Gerrit, and might need support in GitHub.) * Accruing reputation back to contributors on GitHub. I spoke with David a while back on this, and thought I understood, but honestly, I think it's just simply a matter of making sure that commits are credited to an email address associated with the contributor's account on GitHub.
The pull request bit is the most complicated. I've done some reading this evening on this (see this recent thread[1]) I have no idea if this is relevant, but Linus Torvalds went on a tear recently about pull requests from GitHub stripping important metadata[2], which makes me worry that GitHub pull requests may not have enough to make a satisfying Gerrit<->GitHub integration possible.
I can get behind the decision to use a currently substandard tool in order to preserve Wikimedia's long term freedom.
Even if we accept that Gerrit is substandard (which I don't), preserving freedom is a motivating factor. Moving fully to GitHub means not merely letting people who are more comfortable with proprietary tools use them. It crosses the line to requiring it for everyone, which sucks.
But to stick with Gerrit, we must have a plan for fixing it that does not simply declare that the ability to make changes means that the magic FOSS fairy will make it so. [...] This isn't just about attracting scores of new volunteers or having a "reputational economy". It's a push for change driven by the fact that Gerrit seriously undercuts developer productivity and happiness. When we've got so many difficult, ambitious projects under way, I think those are two things we should be prioritizing. By that measuring stick, Gerrit fails miserably and GitHub is a winner.
I don't think this is true. Our most prolific reviewers seem to prefer Gerrit, and there's good reason for that. Gerrit has a clearer model for pre-commit review, and was designed for it. With the right query fu, you can get a unified list of stuff to review, spanning repository borders. As near as I can tell, there's no unified interface for all pull requests spanning all repositories. That means anyone who wants a holistic view of what is waiting has to fish through each repository for the changes waiting in that repo.
We're not familiar with all of the problems of GitHub because we're not using it now. While I'll concede that GitHub is *generally* more usable, I believe it is quite likely there are critical issues with using GitHub alone that are every bit as difficult to mitigate as the problems we're facing with Gerrit now.
It wasn't *that* long ago that Launchpad had all of the momentum[3], and before that Google Code, and before that SourceForge. Right now, it seems GitHub is here to stay, and I wouldn't bet against it, but a lot can change in a year or two.
A lot can change in a year or two with Gerrit, as well, and the signs seem to be for the better. We've had two upgrades in the short time we've been using it that have had noticeable improvements. I hope we can be patient with it.
Rob
[1] "Workflowing Gerrit to GitHub: Ideas and Actions" - somewhat rambling thread which has a pretty good history of all of the various GitHub/Gerrit integration public conversations that have happened: https://groups.google.com/forum/#!msg/repo-discuss/rersrCtdEiY/ZDKEDBzHgM4J [2] Linus Torvalds' rant about GitHub's pull requests: https://github.com/torvalds/linux/pull/17#issuecomment-5654674 [3] "Launchpad and the Future of Package Management" http://redmonk.com/sogrady/2008/08/12/launchpad_package_management/