[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/docs/flavor/ -> project_history.diviner (source)

   1  @title Phabricator Project History
   2  @group lore
   3  
   4  A riveting tale of adventure. In this document, I refer to worldly and
   5  sophisticated engineer Evan Priestley as "I", which is only natural as I am he.
   6  
   7  This document is mostly just paragraph after paragraph of self-aggrandizement.
   8  
   9  = In The Beginning =
  10  
  11  I wrote the original version of Differential in one night at a Facebook
  12  Hackathon in April or May 2007, along with Luke Shepard. I joined the company in
  13  April and code review was already an established and mostly-mandatory part of
  14  the culture, but it happened over email and was inefficient and hard to keep
  15  track of. I remember feeling like I was spending a lot of time waiting for code
  16  review to happen, which was a major motivator for building the tool.
  17  
  18  The original name of the tool was "Diffcamp". Some time earlier there had been
  19  an attempt to create a project management tool that was a sort of hybrid between
  20  Trac and Basecamp called "Traccamp". Since we were writing the code review tool
  21  at the height of the brief popularity Traccamp enjoyed, we integrated and called
  22  the new tool Diffcamp even though it had no relation to Basecamp. Traccamp fell
  23  by the wayside shortly thereafter and was eventually removed.
  24  
  25  However, Diffcamp didn't share its fate. We spent some more time working on it
  26  and got good enough to win hearts and minds over emailing diffs around and was
  27  soon the de facto method of code review at Facebook.
  28  
  29  = The Long Bloat =
  30  
  31  For the next two and a half years, Diffcamp grew mostly organically and gained a
  32  number of features like inline commenting, CLI support and git support (Facebook
  33  was 100% SVN in early 2007 but 90%+ of Engineers worked primarily in git with
  34  SVN bridging by 2010). As these patches were contributed pretty much randomly,
  35  it also gained a lot of performance problems, usability issues, and bugs.
  36  
  37  Through 2007 and 2008 I worked mostly on frontend and support infrastructure;
  38  among other things, I wrote a static resource management system called Haste. In
  39  2009 I worked on the Facebook Lite site, where I built the Javelin Javascript
  40  library and an MVC-flavored framework called Alite.
  41  
  42  But by early 2010, Diffcamp was in pretty bad shape. Two years of having random
  43  features grafted onto it without real direction had left it slow and difficult
  44  to use. Internal feedback on the tool was pretty negative, with a lot of
  45  complaints about performance and stability. The internal XTools team had made
  46  inroads at fixing these problems in late 2009, but they were stretched thin and
  47  the tool had become a sprawling landscape of architectural and implementation
  48  problems.
  49  
  50  = Differential =
  51  
  52  I joined the new Dev Tools team around February 2010 and took over Diffcamp. I
  53  renamed it to Differential, moved it to a new Alite-based infrastructure with
  54  Javelin, and started making it somewhat less terrible. I eventually wrote
  55  Diffusion and build Herald to replace a very difficult-to-use predecessor. These
  56  tools were less negatively received than the older versions. By December 2010 I
  57  started open sourcing them; Haste became //Celerity// and Alite became
  58  //Aphront//. I wrote Maniphest to track open issues with the project in January
  59  or February and we open sourced Phabricator in late April, shortly after I left
  60  Facebook.


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1