On Tue, Jul 24, 2012 at 10:25 PM, Steven Walling
<steven.walling(a)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/