Changeset View
Changeset View
Standalone View
Standalone View
src/docs/flavor/project_history.diviner
@title Phabricator Project History | @title Phorge Project History | ||||
@group lore | @group lore | ||||
A riveting tale of adventure. In this document, I refer to worldly and | A riveting tale of adventure. | ||||
sophisticated engineer Evan Priestley as "I", which is only natural as I am he. | |||||
This document is mostly just paragraph after paragraph of self-aggrandizement. | |||||
= In The Beginning = | = In The Beginning = | ||||
I wrote the original version of Differential in one night at a Facebook | Evan Priestley wrote the original version of Differential in one night at a | ||||
Hackathon in April or May 2007, along with Luke Shepard. I joined the company in | Facebook Hackathon in April or May 2007, along with Luke Shepard. He joined the | ||||
April and code review was already an established and mostly-mandatory part of | company in April and code review was already an established and mostly-mandatory | ||||
the culture, but it happened over email and was inefficient and hard to keep | part of the culture, but it happened over email and was inefficient and hard to | ||||
track of. I remember feeling like I was spending a lot of time waiting for code | keep track of. Evan remembers feeling like he was spending a lot of time waiting | ||||
review to happen, which was a major motivator for building the tool. | for code review to happen, which was a major motivator for building the tool. | ||||
The original name of the tool was "Diffcamp". Some time earlier there had been | The original name of the tool was "Diffcamp". Some time earlier there had been | ||||
an attempt to create a project management tool that was a sort of hybrid between | an attempt to create a project management tool that was a sort of hybrid between | ||||
Trac and Basecamp called "Traccamp". Since we were writing the code review tool | Trac and Basecamp called "Traccamp". Since they were writing the code review tool | ||||
at the height of the brief popularity Traccamp enjoyed, we integrated and called | at the height of the brief popularity Traccamp enjoyed, Evan and Luke integrated | ||||
the new tool Diffcamp even though it had no relation to Basecamp. Traccamp fell | and called the new tool Diffcamp even though it had no relation to Basecamp. | ||||
by the wayside shortly thereafter and was eventually removed. | Traccamp fell by the wayside shortly thereafter and was eventually removed. | ||||
However, Diffcamp didn't share its fate. We spent some more time working on it | However, Diffcamp didn't share its fate. Evan and Luke spent some more time | ||||
and got good enough to win hearts and minds over emailing diffs around and was | working on it and got good enough to win hearts and minds over emailing diffs | ||||
soon the de facto method of code review at Facebook. | around and was soon the de facto method of code review at Facebook. | ||||
= The Long Bloat = | = The Long Bloat = | ||||
For the next two and a half years, Diffcamp grew mostly organically and gained a | For the next two and a half years, Diffcamp grew mostly organically and gained a | ||||
number of features like inline commenting, CLI support and git support (Facebook | number of features like inline commenting, CLI support and git support (Facebook | ||||
was 100% SVN in early 2007 but 90%+ of Engineers worked primarily in git with | was 100% SVN in early 2007 but 90%+ of Engineers worked primarily in git with | ||||
SVN bridging by 2010). As these patches were contributed pretty much randomly, | SVN bridging by 2010). As these patches were contributed pretty much randomly, | ||||
it also gained a lot of performance problems, usability issues, and bugs. | it also gained a lot of performance problems, usability issues, and bugs. | ||||
Through 2007 and 2008 I worked mostly on frontend and support infrastructure; | Through 2007 and 2008 Evan worked mostly on frontend and support infrastructure; | ||||
among other things, I wrote a static resource management system called Haste. In | among other things, he wrote a static resource management system called Haste. | ||||
2009 I worked on the Facebook Lite site, where I built the Javelin Javascript | In 2009 Evan worked on the Facebook Lite site, where he built the Javelin | ||||
library and an MVC-flavored framework called Alite. | Javascript library and an MVC-flavored framework called Alite. | ||||
But by early 2010, Diffcamp was in pretty bad shape. Two years of having random | But by early 2010, Diffcamp was in pretty bad shape. Two years of having random | ||||
features grafted onto it without real direction had left it slow and difficult | features grafted onto it without real direction had left it slow and difficult | ||||
to use. Internal feedback on the tool was pretty negative, with a lot of | to use. Internal feedback on the tool was pretty negative, with a lot of | ||||
complaints about performance and stability. The internal XTools team had made | complaints about performance and stability. The internal XTools team had made | ||||
inroads at fixing these problems in late 2009, but they were stretched thin and | inroads at fixing these problems in late 2009, but they were stretched thin and | ||||
the tool had become a sprawling landscape of architectural and implementation | the tool had become a sprawling landscape of architectural and implementation | ||||
problems. | problems. | ||||
= Differential = | = Differential = | ||||
I joined the new Dev Tools team around February 2010 and took over Diffcamp. I | Evan joined the new Dev Tools team around February 2010 and took over Diffcamp. | ||||
renamed it to Differential, moved it to a new Alite-based infrastructure with | He renamed it to Differential, moved it to a new Alite-based infrastructure with | ||||
Javelin, and started making it somewhat less terrible. I eventually wrote | Javelin, and started making it somewhat less terrible. He eventually wrote | ||||
Diffusion and built Herald to replace a very difficult-to-use predecessor. These | Diffusion and built Herald to replace a very difficult-to-use predecessor. These | ||||
tools were less negatively received than the older versions. By December 2010 I | tools were less negatively received than the older versions. By December 2010, | ||||
started open sourcing them; Haste became //Celerity// and Alite became | Evan started open sourcing them; Haste became //Celerity// and Alite became | ||||
//Aphront//. I wrote Maniphest to track open issues with the project in January | //Aphront//. He wrote Maniphest to track open issues with the project in January | ||||
or February, left Facebook in April, and shortly after, we open sourced | or February, left Facebook in April, and shortly after, open sourced | ||||
Phabricator. | Phabricator. | ||||
= Phork = | |||||
In 2021, Evan announced that Phabricator was no longer maintained. A group of | |||||
open-source contributors came together and forked it. This new | |||||
group called renamed the project "Phorge" and continues to maintain this | |||||
beloved and well-used project. |
Content licensed under Creative Commons Attribution-ShareAlike 4.0 (CC-BY-SA) unless otherwise noted; code licensed under Apache 2.0 or other open source licenses. · CC BY-SA 4.0 · Apache 2.0