On Dec 6, 2014, at 8:45 AM, Brett Cannon <bcannon@gmail.com> wrote:



On Fri Dec 05 2014 at 3:24:38 PM Donald Stufft <donald@stufft.io> wrote:

On Dec 5, 2014, at 3:04 PM, Brett Cannon <bcannon@gmail.com> wrote:
<words>

This looks like a pretty good write up, seems to pretty fairly evaluate the various sides and the various concerns.

Thanks! It seems like I have gotten the point across that I don't care what the solution is as long as it's a good one and that we have to look at the whole process and not just a corner of it if we want big gains.

One potential solution is Phabricator (http://phabricator.org) which is a gerrit like tool except it also works with Mercurial. It is a fully open source platform though it works on a “patch” bases rather than a pull request basis. They are also coming out with hosting for it (http://phacility.com/) but that is “coming soon” and I’m not sure what the cost will be and if they’d be willing to donate to an OSS project. It makes it easier to upload a patch using a command like tool (like gerrit does) called arc. Phabricator itself is OSS and the coming soon page for phacility says that it’s easy to migrate from a hosted to a self-hosted solution.

Phabricator supports hosting the repository itself but as I understand it, it also supports hosting the repository elsewhere. So it could mean that we host the repository on a platform that supports Pull Requests (as you might expect, I’m a fan of Github here) and also deploy Phabricator on top of it. I haven’t actually tried that so I’d want to play around with it to make sure this works how I believe it does, but it may be a good way to enable both pull requests (and the web editors that tend to come with those workflows) for easier changes and a different tool for more invasive changes.

Terry spoke about CLAs, which is an interesting thing too, because phabricator itself has some workflow around this I believe, at least one of the examples in their tour is setting up some sort of notification about requiring a CLA. It even has a built in thing for signing legal documents (although I’m not sure if that’s acceptable to the PSF, we’d need to ask VanL I suspect). Another neat feature, although I’m not sure we’re actually setup to take advantage of it, is that if you run test coverage numbers you can report that directly inline with the review / diff to see what lines of the patch are being exercised by a test or not.

I’m not sure if it’s actually workable for us but it probably should be explored a little bit to see if it is and if it might be a good solution. They also have a copy of it running which they develop phabricator itself on (https://secure.phabricator.com/) though they also accept pull requests on github.

---
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA