Phabricator

Facebook engineers rave about Phabricator, describing it with glowing terms like "okay" and "mandatory".

Phabricator is a software development tool written inside of Facebook, and currently open sourced. It is intended to make it easier to write, review and share source code.

This page is a documentation for evaluating this tool within MediaWiki.

Checkout
The git repo currently live in my github account, based off of the test git repo prepared by chad with a few changes. Check that out to your favorite folder.

git clone https://github.com/johnduhart/mwphb.git

Note: this tutorial will not cover how to use git in-depth.

Congrats! You now have a full (albeit stale) MediaWiki install! Pat yourself on the back.

Create an account
Waddle on over to the web interface and register.

At the moment Phabricator only supports OAuth login. I plan to add LDAP support at a later time.

Setup
Phabricator requires a program in the client PC in order to operate (You can skip this and use raw diffs hardcore but I won't go over that right now). The source code for the program is here. I've scripted most of the install so you can spend more time fixing bugs.

Run this and answer the questions.

./arc-setup

After that is done, you just need to source your profile and you should be able to run arc

arc help

If something goes wrong, please send me the output on IRC.

Make a change!
This whole setup would be pointless if you couldn't do anything. Lets' start by creating a new branch to work in.

git checkout master # Just make sure we're in master git checkout -b feature # Create a feature branch, name it something creative though

Now, make a change! For example:


 * Take a recent commit from svn and apply it here
 * Add crap to some file so we can reject your changes
 * etc.

When that's done, add those files to your index, or just use  on commit. Now, commit your changes

git commit

You may notice that we've hijacked your commit message!

<>

Summary:

Test Plan:

Reviewers:

CC:



This message is intended to be parsed by Phabricator when you submit your diff.

Note that all of these fields can be configured to our liking
 * Title Title for your change
 * Summary Longer and more descriptive summary of what has been changed
 * Test Plan A repeatable list of steps which document what you have done to verify the behavior of a change. More info
 * Reviewers People who should review this change (Optional)
 * CC People to notify about this change (Optional)

Fill out the fields and commit your change. To submit your change to differential, run this command

arc diff master

This command takes the difference of your branch against the master branch and submits it for review. Before doing so, it runs a linter over your changed code and (one day) unit tests.