I suppose I'll take this opportunity to bring this thread back on topic and have everyone read my thoughts guilt free.
As a newcomer who recently submitted my first patch, I disagree with Chris's points. I'm just a junior developer who has never worked on a compiler before, so maybe the experience will be different for people from other backgrounds. I guess you're allowed to disagree with me even if you're from a similar background.
In my (short) experience, Github vs Phabricator, using Arc, and the points mentioned in the linked blog like coding style and comments were all non issues. Again, this is just my experience and others might feel differently, but if so I encourage them to raise their points and hopefully also explain in detail the issues encountered.
For me the only issue was being able to understand the code base. Sadly, this was actually a huge barrier because, rather embarrassingly, after months of reading through the code, in the end I only managed to submit a patch after Simon told me exactly what I needed to do. Even more depressingly, the other Simon (Marlow) was unhappy because it caused a performance regression so the patch was rejected! Sad life..
In other words, I found the difficulty in actually being able to contribute a meaningful patch is far greater than any difficulty in learning to use the tools and process required to submit a patch.
Of course this is to be expected from a code base as large, old, and complicated as GHC's, and I'm not too sure what can be done from a technical standpoint to address this, besides better documentation. From a process standpoint though, if I didn't have personal assistance from Simon and Ben (Thank you!!!) I imagine I would have given up much sooner, despite having been relatively motivated.
I don't know if this would be possible of course considering GHC developers are very busy as it is, but it would be great if newcomers could be assigned a mentor to contact when in need of help. Maybe I am just weird, but I actually felt bad emailing everyone for help, so I would typically go much longer than comfortable before asking for help. As you can imagine, as the struggle increases, the likelihood of giving up also does, and I will admit I thought about giving up many times.
I realize this would probably be difficult to scale, but hopefully as new developers come, they would also be able to mentor others. I think this is similar to what is done in the industry by many companies as well.
In summary, difficulty of understanding code base >>> difficulty of using tools and following documentation.