[GHC DevOps Group] Phabricator -> GitHub?

Manuel M T Chakravarty manuel.chakravarty at tweag.io
Tue Oct 10 07:15:02 UTC 2017


[RESENT MESSAGE — see https://mail.haskell.org/pipermail/ghc-devops-group/2017-October/000004.html]

[Includes all of Simon’s message]


> Simon Peyton Jones <simonpj at microsoft.com <mailto:simonpj at microsoft.com>>:
> 
> I don’t have a well-informed opinion, but in instinct is to follow the mainstream even if a technically-better alternative exists, unless it’s a LOT better.  For the reasons Manuel outlines.
>  
> Am I right that GitHub code review has improved?

It has improved since this issue was discussed last. I believe one of the main criticisms in the past was that while people could comment on individual lines of a proposed contributions (aka pull request), there was no way to tie those into a code review unit. This facility has since been added. Moreover, contributors can now request code reviews from specific reviewers and the repositories can be configured such that contributions cannot be merged until signed off by a reviewer.

As Ben recently remarked, the main downside seems to be that GitHub code reviews don’t play very nicely with rebasing commits during a code review. However, some of these things are also a matter of using the right workflow.

As I mentioned before, the Swift compiler uses GitHub. They deal with a much bigger throughput. Here are their instructions to contributors (including the code review policy):

  https://swift.org/contributing/#contributing-code <https://swift.org/contributing/#contributing-code>

> Would using reviewable.io <http://reviewable.io/> impose similar socio-technical barriers that Phab does?

No, it is more lightweight. Contributors don’t need to install extra software. Contributions are still just pull requests, and it could be used only for complex contributions (i.e., most people wouldn’t have to deal with it).

Manuel

> From: Ghc-devops-group [mailto:ghc-devops-group-bounces at haskell.org <mailto:ghc-devops-group-bounces at haskell.org>] On Behalf Of Simon Marlow
> Sent: 09 October 2017 08:58
> To: Manuel M T Chakravarty <manuel.chakravarty at tweag.io <mailto:manuel.chakravarty at tweag.io>>
> Cc: ghc-devops-group at haskell.org <mailto:ghc-devops-group at haskell.org>
> Subject: Re: [GHC DevOps Group] Phabricator -> GitHub?
>  
> Personally I prefer to stay with Phabricator because it's better for code reviews, and because we already use it.  Having said that, if a majority of the developer community would prefer GitHub, and there is effort available to make the transition, then we should do it. But I do have strong feelings on a couple of things:
> 
>  
> 
> - We should consult the whole developer community. Changing the code review tool affects not just potential contributors, but also the people doing the reviewing. If the reviewers are less productive or less keen to spend time on reviews, then overall quality will drop. An increase in contributions can only be supported if we also have an increase in the pool of people reviewing and merging contributions. It's about increasing the size of the developer community, not drive-by contributions.
> 
>  
> 
> - We should use *one* code-review tool only.  Making a transition to a situation where we have two different code review tools (GitHub + reviewable.io <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Freviewable.io&data=02%7C01%7Csimonpj%40microsoft.com%7C614abea30185416ae0fa08d50eeb77f2%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636431326856129854&sdata=hvWIjcvsuaf1nOiiH88khDU%2Bt46JiZOH%2FHGN2GUZXGs%3D&reserved=0>) would be a step backwards. (after all, one of the arguments below is against learning a new random tool....)
> 
>  
> 
> The alternative that we discussed in the past is to better support contributions via GitHub, which we could still do.
> 
>  
> 
> Cheers
> 
> Simon
> 
>  
> 
>  
> 
> On 9 October 2017 at 07:44, Manuel M T Chakravarty <manuel.chakravarty at tweag.io <mailto:manuel.chakravarty at tweag.io>> wrote:
> 
> I have spoken to a number of people about the question of using GitHub pull requests and code reviews instead of Phabricator for GHC development. And while some people are quite happy with Phabricator and/or prefer it due to using it at work anyway, the majority of people I talked to would prefer to use GitHub. In fact, some people (such as Neil Mitchell, Will Jones (VP Engineering @ Habito), and myself) stated that they do not contribute patches to GHC because they don’t want to deal with the overhead that Phabricator imposes. (So far, I haven’t had anybody who said they would not contribute if they have to use GitHub, but obviously my sample set is small and likely skewed.)
> 
> Having said that, obviously, we will always find people preferring one tool over another. And also obviously, both tools can do the job (and for GitHub there are options for more sophisticated than the basic type of code reviews if need be: http://reviewable.io/ <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Freviewable.io%2F&data=02%7C01%7Csimonpj%40microsoft.com%7C614abea30185416ae0fa08d50eeb77f2%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636431326856129854&sdata=fVl8kNTSBU9j4AAwUbDJ%2FZWwwHV77O%2F3XtmodnYWVRc%3D&reserved=0>).
> 
> Hence, I like to offer two technical and one social reasons why we should replace Phabricator by GitHub (and I do mean replace, not run both side-by-side).
> 
> = Technical
> 
> (1) Rule One of DevOps: minimise custom infrastructure
> [Our resources are scarce. Why waste them on something that can be outsourced (for free)?]
> 
> (2) We really need to sort out CI and integration with GitHub is easier — see also (1).
> 
> = Social
> 
> * Virtually every developer knows how to use GitHub and custom-anything creates friction. That learning Phabricator is little effort compared to learning to contribute to GHC is a red herring IMHO. Firstly, if the learning curve is steep, you don’t make it steeper. Secondly, there are people (e.g., Neil and me) who can very well contribute to GHC, but who don’t, because they don’t want waste time on yet another random tool. Life is too short!
> 
> The reason why I don’t want to run Phabricator and GitHub side-by-side is because this would fail to help with the two technical reasons.
> 
> Cheers,
> Manuel
> 
> PS: This is *not* about moving Trac to GitHub. We are only talking about pull requests and code reviews.
> 
> 
> _______________________________________________
> Ghc-devops-group mailing list
> Ghc-devops-group at haskell.org <mailto:Ghc-devops-group at haskell.org>
> https://haskell.org/cgi-bin/mailman/listinfo/ghc-devops-group <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fhaskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-devops-group&data=02%7C01%7Csimonpj%40microsoft.com%7C614abea30185416ae0fa08d50eeb77f2%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636431326856129854&sdata=yDdTfjZ6ibIHpECQQH5JKBiFONdTSNcsx9nC0vvZrQ4%3D&reserved=0>
_______________________________________________
Ghc-devops-group mailing list
Ghc-devops-group at haskell.org
https://haskell.org/cgi-bin/mailman/listinfo/ghc-devops-group
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://haskell.org/pipermail/ghc-devops-group/attachments/20171010/327b9567/attachment-0001.html>


More information about the Ghc-devops-group mailing list