<div dir="ltr">while i'm a novice at using ANY code review tools, having some persistent tooling for patch reviews would be really great! theres a lot of good feedback that otherwise only exists in an email somewhere!</div>

<div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jun 6, 2014 at 12:05 AM, Austin Seipp <span dir="ltr"><<a href="mailto:austin@well-typed.com" target="_blank">austin@well-typed.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello all,<br>
<br>
Recently, while doing server maintenance, several of the<br>
administrators for Haskell.org set up an instance of Phabricator[1],<br>
located at <a href="https://phabricator.haskell.org" target="_blank">https://phabricator.haskell.org</a><br>
<br>
For those who aren't aware, Phabricator (or "Phab") is a suite of<br>
tools for software development. Think of it like a polished,<br>
semi-private GitHub with a lot of applications and tools for all kinds<br>
of needs. We've been using it to do issue tracking for Haskell.org<br>
maintenance and like it a lot so far.<br>
<br>
One very nice aspect of Phabricator though is it has a very nice code<br>
review tool, called 'Differential', that is very useful. For people<br>
who have used a tool like Review Board, it's similar. Furthermore, it<br>
has a very convenient userland tool called 'Arcanist' which makes it<br>
easy for newcomers to post a review and get it merged when it's ready<br>
all from the command line.<br>
<br>
I'd like to see if people are interested in using Phab _strictly_ for<br>
code review of GHC patches. It is a dedicated tool specifically for<br>
this, and I think it works much better than Trac or inline GitHub<br>
comments.<br>
<br>
Also, Phab can also support post-commit reviews. So if I touch<br>
something in the runtime system and just push, perhaps Simon or Edward<br>
would like to look, and they can be alerted right when I do this, and<br>
then yell if I did something stupid.<br>
<br>
Before I go much further, I'd like to ask: is there *any* interest in<br>
this? Or are people satisifed with Trac? The primary motivations are<br>
roughly, in no particular order:<br>
<br>
 1) Code review is good for everyone, a good way for people to learn<br>
the code and ask questions, and useful to give feedback to newcomers.<br>
And even experienced GHC hackers can learn things from reading code,<br>
as we all do regularly, or find things that need cleanup.<br>
<br>
 2) Phabricator in particular makes it very easy to submit patches for<br>
review. To submit a patch, I just run the command 'arc diff' and it<br>
Does The Right Thing. It also makes it easy to ensure people are<br>
*alerted* when a patch might be relevant to them.<br>
<br>
 3) They can be uploaded and created from the command line, and merged<br>
easily afterwords the same way. This is particularly useful for<br>
newcomers, and for me. :)<br>
<br>
 4) Differential is dedicated to code review, and much better at it<br>
than just reading patches on Trac IMO.<br>
<br>
 5) It supports both post-commit code review, as well as pre-commit<br>
review. Post commit would be especially useful for us too, I think.<br>
<br>
Point #2 and #3 are mostly relevant for me, because I mostly handle<br>
incoming patches. But I think in general it would be nice, and make it<br>
a lot easier for newcomers to submit patches, and us to look over<br>
them.<br>
<br>
Here's an example of a Differential code review:<br>
<br>
<a href="https://phabricator.haskell.org/D4" target="_blank">https://phabricator.haskell.org/D4</a><br>
<br>
This is a demo using my 'wip/ermsb' patch. You'll need to create an<br>
account to login, but it shouldn't be much trouble, you can login<br>
several ways. I'll fix the login requirement soon. Feel free to read<br>
the code, comment on it, and play around. It's more of a<br>
demonstration, but real code review would be welcome too. :)<br>
<br>
If people are interested in doing this, I can add notes to the wiki<br>
pages for newcomers, and I'll send another email about Phab so people<br>
can understand it a little better. But I want to ask first.<br>
<br>
There is an argument that our team is so small, code review has<br>
unnecessary burdens. But I think Phab could help a lot with tracking<br>
outside patches and getting good reviews for incoming patches, and<br>
it'll make it easier for newcomers. And experienced pros can probably<br>
learn a thing as well.<br>
<br>
Again, to be clear, I don't propose we migrate anything to Phabricator<br>
from, say, Trac. There's no real pressure to do so and it would be<br>
tons of work. I only propose we use it for code review, which is<br>
perfectly fine, and how other projects like LLVM do code review (they<br>
use Bugzilla).<br>
<br>
I also don't think the usage of Phabricator should be mandatory<br>
(unless we decide that later because we like it), but I would like to<br>
see people use it if possible.<br>
<br>
[1] <a href="http://phabricator.org" target="_blank">http://phabricator.org</a><br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Regards,<br>
<br>
Austin Seipp, Haskell Consultant<br>
Well-Typed LLP, <a href="http://www.well-typed.com/" target="_blank">http://www.well-typed.com/</a><br>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/ghc-devs" target="_blank">http://www.haskell.org/mailman/listinfo/ghc-devs</a><br>
</font></span></blockquote></div><br></div>