Phabricator

Phabricator is an open-source software development platform used for project management, bug reporting, feature requests, and code review in an integrated fashion.

For a Wikimedia-centric overview, watch the Tech Talk [https://plus.google.com/events/c8qe7l0vtf4v6u07k3o059du2lg The Very Basics of Phabricator]. Bugzilla users are encouraged to read our versus>Phabricator/versus Bugzilla|Phabricator versus Bugzilla comparison.

1>#Get started|Get started! First missions include


 * phab-account>Phabricator/Help#Creating your account|Creating your account
 * phab-task>Phabricator/Help#Creating a task|Creating a task
 * phab-projects>Phabricator/Creating and renaming projects|Creating a project and learning about phab-manage>Phabricator/Project management|project management in Phabricator.

Check our phab-help>Phabricator/Help|Phabricator Help. Your talk-phab>Talk:Phabricator/Help|questions are very welcome.

For Phabricator support and camaraderie, join .

phabricator.wikimedia.org


After a favorable request>Requests for comment/Phabricator|request for comment, we are deploying https://phabricator.wikimedia.org to replace Bugzilla, RT, Trello, Mingle, Gerrit, and gitblit. Why?


 * The volume and complexity of our software projects keeps increasing; MediaWiki and Bugzilla fall short for project management.


 * WMF teams are increasingly using Mingle and Trello, 3rd-party commercial services that are alien to the Wikimedia community and principles. This is creating a divide. Wikimedia Germany is trying Scrumbugz, a one-man OSS project barely maintained.


 * Overlap, duplication, and actions falling between the cracks increase.


 * To mitigate this problem, we have created more tools to synchronize information between services (like Bingle or Gerrit notifications in Bugzilla). They need to be maintained (e.g. when one service is upgraded and its API interface has changed).


 * Contributing to Bugzilla (Perl) and Gerrit (Java) is complex for us (mainly PHP developers, and Phabricator is written in PHP).


 * The current setup brings overhead and annoyance to key developers:


 * Senior developers having to use heavily Mingle/Trello in addition to Gerrit and Bugzilla.


 * New contributors arriving with GitHub-like expectations.

Weekly update / maintenance window
Phabricator doesn't have releases, and therefore it is up to us to decide how close do we want to follow the upstream version. There is a weekly window for updates and other maintenance tasks on Wednesdays at 15:00 UTC ([http://www.timeanddate.com/worldclock/fixedtime.html?iso=20141210T15&p1=%3A&am=30</> check your timezone]) and users will get redirected to <tvar|phab-maint>Phabricator/Maintenance</>. We don't update Phabricator every week, but we reserve us the right to do it. The expected downtime during this window goes from 0 to 30 minutes.

Migration timeline
Beware, the [<tvar|phab-team>https://phabricator.wikimedia.org/tag/phabricator/</> Phabricator team] may change this sequence as plans evolve (although we try not to). If you need more details, you can find them at [<tvar|phab-T174>https://phabricator.wikimedia.org/T174</> T174 - Launch Wikimedia Phabricator Day 1].
 * 1) ✅ Deployment of https://legalpad.wikimedia.org/ (project)
 * 2) ✅ Migration of data from fab.wmflabs.org to phabricator.wikimedia.org
 * 3) ✅ New test instance in Labs open to everyone, blocked by
 * 4) ✅ phabricator.wikimedia.org open to all Wikimedia users
 * 5) ✅ Test instance containing Bugzilla reports automatically migrated
 * 6) * ✅ end of Bugzilla preview feedback period, announcement of Bugzilla migration date.
 * ✅, 2014-11-21: Bugzilla migration (1-4 days downtime, see detailed timeline), blocked by
 * 1) * ✅ Community review of the Bugzilla migration test instance (two weeks)
 * 2) * ✅ Bugzilla to Phabricator import script
 * 3) * ✅ Elasticsearch (but temporarily reverted)
 * 4) * ✅ Move Bugzilla to old-bugzilla.wikimedia.org as a read-only instance
 * 5) * ✅ Automatic redirects from Bugzilla reports to Phabricator tasks
 * 6) * ✅ Wiki templates for Bugzilla pointing to Phabricator
 * 7) * ✅ Gerrit plugin to sync tasks with code reviews
 * 8) * ✅ IRC bots reporting Phabricator activity
 * 9) * ✅ How to organize projects
 * 10) * ✅ How to claim Bugzilla reports
 * 11) * ✅ Documentation for Bugzilla users
 * 12) * ✅ Communication plan
 * 13) * ✅ Approval from Wikimedia Foundation Engineering management
 * 14) * ✅ Reminder: Bugzilla migrated projects and tasks must be Visible To Public
 * 15) ✅ except for minor queues, 2014-12-18 00:00UTC-08:00UTC: Phabricator RT migration: RT migration (8 hours downtime of Phabricator; blocked by
 * 16) * ✅ Interaction with external users via email
 * 17) ✅ Burndown charts & migration from Scrumbugz
 * 18)  Define main tasks (epics) for code review in Phabricator
 * , expected before 06/2015: Total migration from Mingle; cf. T825
 * , expected before 06/2015: Total migration from Trello; cf. T825
 * , expected before 06/2015: Proof of concept of code review in Phabricator
 * , before 2015-06-31? Total migration from gitblit
 * , before 2015-09-30? Total migration from Gerrit
 * , before 2015-09-30? Total migration from Jenkins

Get started


Access to <tvar|phab-link>https://phabricator.wikimedia.org</> is open, but please be aware of the timeline>#Migration_timeline</>|migration timeline and the fact that the site might be entirely down during the RT and Bugzilla migrations.

There is a test instance at <tvar|wmflabs>phab-01.wmflabs.org</>. Use it to learn and experiment, not for serious work.

Learn more about Phabricator versus>Phabricator/versus Bugzilla</>|versus Bugzilla. You can also watch a screencast about [<tvar|handling>https://plus.google.com/events/cm38slj29u0pb65iilcrb3vgn88</> handling tasks/bugs].

If you have questions, check the phab-help>Phabricator/Help</>|Help and the phab-faq>Phabricator/FAQ</>|FAQ.

Get involved
We are working on the phab-migration>Phabricator/Migration</>|migration of several developer infrastructure services to one single Phabricator instance. It's a very exciting project! We welcome your help.


 * Learn to use Phabricator. Play and test in [<tvar|wmflabs>https://phab-01.wmflabs.org/</> our Labs instance] as much as you want. Check out the documentation and short videos on <tvar|phab-help></>.


 * Bugzilla, RT, Trello, and Mingle users are welcome to the <tvar|phab>Phabricator</> project. Your help is welcome anywhere, but especially in the tasks that are [<tvar|blockingday>https://phabricator.wikimedia.org/T174</> blocking Day 1].


 * Git and Gerrit users are welcome to the phab-tag>phab:tag/code-review/</>|Code Review in Phabricator project. We need help learning about the possibilities of Phabricator in this area: what is missing, what exists in a different way, what is remarkably interesting, which are the blockers that should be reported upstream?

Report bugs and feature requests
We have two different projects to handle Phabricator related tasks:


 * phab-tag>phab:tag/phabricator/</>|Phabricator contains all the tasks specific to Wikimedia Phabricator: our processes, aspects related to migration of Wikimedia data, local customizations...

The Phabricator.org workboard shows the process that tasks go through before being created upstream:
 * phab-tag>phab:tag/phabricator.org/</>|Phabricator.org is used to organize the tasks that should be handled upstream, at <tvar|phab-secure>https://secure.phabricator.com</>: generic Phabricator bugs and feature requests.


 * Backlog: this is where new tasks land by default. Stalled tasks can also be found here.


 * Need discussion: sometimes a task will benefit from a discussion, making sure that more Wikimedia contributors are on the same page and the report or the proposal are well argumented.


 * Ready to go: tasks in this column are waiting for someone to report them upstream.


 * Upstreamed: this column is where tasks are moved as soon as they have been reported upstream.


 * Wikimedia requests: a few requests reported upstream are made in the name of Wikimedia, because we consider that they have a higher relevance.

How fast a task is reported upstream may depend of how uncontroversial is (going through the Need Discussion column) and how high is its priority, but it ultimately depends on who takes the time to report it upstream. You can also do it!

This is an opt-in process aimed to check the appropriateness and relevance of a task before being created upstream. Anyone can create tasks upstream bypassing this process.

Developers
As a PHP developer, you're welcome to contribute enhancements and new features upstream. Learn more at <tvar|phab-code></>.