Tuesday, 19 March 2013

Phabricator - pretty()

Ah pretty() -- liking it too much! These days I'm into MongoDB so.. :P
Its like 3am ish now and I know, I'm blabbering ... Gotta sleep!
Ah! please bear with rest of my ramblings!

Last month, I was looking into some of the code review tools!
You know - reviewing the review tools! ;)

Well, I experimented with reviewboard, gerrit, barkeep.
Gerrit does not support post-commit review. I was looking for, a way to conduct code review, after the commit is pushed to git.
Reviewboard is cool. Its existing from a longer time. I experimented a lot on the cloud. Well, the post-review process was little painful with command line.
Barkeep installation is kind of different. I did not invest much time. But it looks interesting!

I went with Phabricator, released by Facebook and Open source too.
Wanna contribute ? Fork here https://github.com/facebook/phabricator/  : else go http://phabricator.org/
Okay I don't wanna geeko-Fi more with operators ;)

Well, Phabricator is used by many companies like Quora (unsure if they are presently using it or not, have a doubt , as I read in some quora thread), DropBox, Path (Android app), Disqus (online commenting system), deviantArt( Painting app -- famous in Chrome web store) .... Ah well, lots more!!

  • What's cool about Phabricator?

It has complete software tools. Ok!! You want ...

    • Code Review ? Differential
    • Post Commit Review ? Audits
    • Code Browser ? Diffusion
    • Bug Tracking ? Maniphest
    • Wiki ? Phriction
    • Want more ? It's under development... So you gonna get more too!
Well, personally, I prefer using Audits, Diffusion, Maniphest. 
Wiki - is used in Confluence/BitBucket -- so for now not essential.
Code Review -- Pre-commit reveiw process stalls the development in agile kinda environment. So not going with it.

  • How's the installation?
I read a question in Quora that why is it difficult to install Phabricator. I believe its not so difficult too. 
May be I will post -- how to install/configure everything with Phabricator. 
Please bear with the mentions about Quora, I'm a quor(a)ddict! :D

  • How to start with Audits?
To get started with the workflow, it does take time, probably because its still under development and documentation demands update. But the greatest thing, I love about Phabricator is, its still under the development and yet, functions -- as it purports to be!! That's Amazing! The UI is lovely too!

I faced this issue -- If you have huge repository, where codereview has never happened before, how do you start the process with previous commits? 
Unfortunately, you cannot do with existing commits! The commits that occur after installation/configuration of Phabricator with that repository, audits are possible.
You will have to create some rules that trigger post commit audits. Its called Herald in Phabricator.

I found a workaround for the old commits -- if you wanna review -- You can browse the repository with Diffusion, goto the module / code you are interested in and click on the commit number. 
Upon clicking on commit number, you have the freedom to post in-line comments/review comments, where even the diff is visible. 
After finishing your commenting process, you can cook it with Raise Concern. I also prefer mapping this with a task tracker -- I mean bug tracker ( Maniphest ) -- add the assignee, link to the comments you gave in description and assign. 
This will send a mail to the team.

Email configuration is one big task. 
I used Postfix with SMTP as configuring outbound mail and have updated in github Phabricator.

Mapping Your Projects/Audits/Team
This takes a lot of time and effort too. 
  • First, you need to create accounts for all. 
  • You will have to configure your remote repository (using git). 
  • Map the modules with the module owners and team lead.
  • Create herald rule which triggers audits.

So, you can set up completely in 2days. But its fun!! Audits can be real fun..!! :)
I will really recommend Phabricator! :D
Happy Tweaking! :)