diff --git a/src/docs/configuration_guide.diviner b/src/docs/configuration/configuration_guide.diviner similarity index 100% rename from src/docs/configuration_guide.diviner rename to src/docs/configuration/configuration_guide.diviner diff --git a/src/docs/configuring_accounts_and_registration.diviner b/src/docs/configuration/configuring_accounts_and_registration.diviner similarity index 100% rename from src/docs/configuring_accounts_and_registration.diviner rename to src/docs/configuration/configuring_accounts_and_registration.diviner diff --git a/src/docs/configuring_inbound_email.diviner b/src/docs/configuration/configuring_inbound_email.diviner similarity index 100% rename from src/docs/configuring_inbound_email.diviner rename to src/docs/configuration/configuring_inbound_email.diviner diff --git a/src/docs/configuring_outbound_email.diviner b/src/docs/configuration/configuring_outbound_email.diviner similarity index 100% rename from src/docs/configuring_outbound_email.diviner rename to src/docs/configuration/configuring_outbound_email.diviner diff --git a/src/docs/managing_daemons.diviner b/src/docs/configuration/managing_daemons.diviner similarity index 100% rename from src/docs/managing_daemons.diviner rename to src/docs/configuration/managing_daemons.diviner diff --git a/src/docs/upgrade_schema.diviner b/src/docs/configuration/upgrade_schema.diviner similarity index 100% rename from src/docs/upgrade_schema.diviner rename to src/docs/configuration/upgrade_schema.diviner diff --git a/src/docs/contrib_intro.diviner b/src/docs/contributing/contrib_intro.diviner similarity index 63% rename from src/docs/contrib_intro.diviner rename to src/docs/contributing/contrib_intro.diviner index 19701414cd..9d3d81eeb8 100644 --- a/src/docs/contrib_intro.diviner +++ b/src/docs/contributing/contrib_intro.diviner @@ -25,7 +25,7 @@ development install for open tasks in the "Bootcamp" project which are owned by "Up For Grabs". These are small-to-medium-sized bugs and projects intended to introduce new contributors to the codebase. -= Required Reading = += Suggested Reading = You should read the relevant coding convention documents before you submit a change and make sure you're following the project guidelines: @@ -33,17 +33,3 @@ change and make sure you're following the project guidelines: - @{article:General Coding Standards} (for all languages) - @{article:PHP Coding Standards} (for PHP) - @{article:Javascript Coding Standards} (for Javascript) - -= Philosophy = - -The Phabricator philosophy is simple tools that work well. Performance, -reliability, and ease of use are of paramount importance. This does not exclude -a rich featureset, but adding features shouldn't compromise these pillars. - -One of Phabricator's main strengths is that it's pretty fast, but it got there -by accepting only patches which are also pretty fast and reverting out a bunch -of garbage that was really slow. Accepting a few slow patches undoes all this -work, so you need to be prepared to defend the performance of your patches. The -best way you can do this is to do your homework and come armed with concrete -performance measurements and information (XHProf profiles, EXPLAIN for query -plans, etc.) diff --git a/src/docs/general_coding_standards.diviner b/src/docs/contributing/general_coding_standards.diviner similarity index 100% rename from src/docs/general_coding_standards.diviner rename to src/docs/contributing/general_coding_standards.diviner diff --git a/src/docs/javascript_coding_standards.diviner b/src/docs/contributing/javascript_coding_standards.diviner similarity index 100% rename from src/docs/javascript_coding_standards.diviner rename to src/docs/contributing/javascript_coding_standards.diviner diff --git a/src/docs/php_coding_standards.diviner b/src/docs/contributing/php_coding_standards.diviner similarity index 100% rename from src/docs/php_coding_standards.diviner rename to src/docs/contributing/php_coding_standards.diviner diff --git a/src/docs/adding_new_css_and_js.diviner b/src/docs/developer/adding_new_css_and_js.diviner similarity index 100% rename from src/docs/adding_new_css_and_js.diviner rename to src/docs/developer/adding_new_css_and_js.diviner diff --git a/src/docs/flavortext/please_please_please.diviner b/src/docs/flavortext/please_please_please.diviner index eecbc62d10..35c83cfa1e 100644 --- a/src/docs/flavortext/please_please_please.diviner +++ b/src/docs/flavortext/please_please_please.diviner @@ -1,6 +1,8 @@ @title Please Please Please @group flavortext +Please read this document. + When you send a message that says "I got an error when I tried to do something": = Please Please Please = diff --git a/src/docs/flavortext/project_history.diviner b/src/docs/flavortext/project_history.diviner new file mode 100644 index 0000000000..ce4916dbc0 --- /dev/null +++ b/src/docs/flavortext/project_history.diviner @@ -0,0 +1,60 @@ +@title Phabricator Project History +@group flavortext + +A riveting tale of adventure. In this document, I refer to worldly and +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 = + +I wrote the original version of Differential in one night at a Facebook +Hackathon in April or May 2007, along with Luke Shepard. I joined the company in +April and code review was already an established and mostly-mandatory part of +the culture, but it happened over email and was inefficient and hard to keep +track of. I remember feeling like I was spending a lot of time waiting 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 +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 +at the height of the brief popularity Traccamp enjoyed, we integrated and called +the new tool Diffcamp even though it had no relation to Basecamp. 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 +and got good enough to win hearts and minds over emailing diffs around and was +soon the de facto method of code review at Facebook. + += The Long Bloat = + +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 +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, +it also gained a lot of performance problems, usability issues, and bugs. + +Through 2007 and 2008 I worked mostly on frontend and support infrastructure; +among other things, I wrote a static resource management system called Haste. In +2009 I worked on the Facebook Lite site, where I built the Javelin Javascript +library and an MVC-flavored framework called Alite. + +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 +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 +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 +problems. + += Differential = + +I joined the new Dev Tools team around February 2010 and took over Diffcamp. I +renamed it to Differential, moved it to a new Alite-based infrastructure with +Javelin, and started making it somewhat less terrible. I eventually wrote +Diffusion and build Herald to replace a very difficult-to-use predecessor. These +tools were less negatively received than the older versions. By December 2010 I +started open sourcing them; Haste became //Celerity// and Alite became +//Aphront//. I wrote Maniphest to track open issues with the project in January +or February and we open sourced Phabricator in late April, shortly after I left +Facebook. diff --git a/src/docs/flavortext/soon_static_resources.diviner b/src/docs/flavortext/soon_static_resources.diviner new file mode 100644 index 0000000000..7b8139bc73 --- /dev/null +++ b/src/docs/flavortext/soon_static_resources.diviner @@ -0,0 +1,123 @@ +@title Things You Should Do Soon: Static Resources +@group flavortext + + +Over time, you'll write more JS and CSS and eventually need to put systems in +place to manage it. + += Manage Dependencies Automatically = + +The naive way to add static resources to a page is to include them at the top +of the page, before rendering begins, by enumerating filenames. Facebook used to +work like that: + + COUNTEREXAMPLE +