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 The Very Basics of Phabricator. Bugzilla users are encouraged to read our Phabricator versus Bugzilla comparison.
Get started! First missions include
- Creating your account
- Creating a task
- Creating a project and learning about project management in Phabricator.
- Etiquette
Check our Phabricator Help. Your questions are very welcome.
For Phabricator support and camaraderie, join #wikimedia-devtools
connect.
Contents
phabricator.wikimedia.org[edit | edit source]
After a favorable 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[edit | edit source]
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 (check your timezone) and users will get redirected to 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[edit | edit source]
Beware, the Phabricator team may change this sequence as plans evolve (although we try not to). If you need more details, you can find them at T174 - Launch Wikimedia Phabricator Day 1.
Done Deployment of https://legalpad.wikimedia.org/ (project)
Done Migration of data from fab.wmflabs.org to phabricator.wikimedia.org
Done New test instance in Labs open to everyone, blocked by
Done phabricator.wikimedia.org open to all Wikimedia users
Done Test instance containing Bugzilla reports automatically migrated
Done end of Bugzilla preview feedback period, announcement of Bugzilla migration date.
Done, 2014-11-21: Bugzilla migration (1-4 days downtime, see detailed timeline), blocked by
Done Community review of the Bugzilla migration test instance (two weeks)
Done Bugzilla to Phabricator import script
Done Elasticsearch (but temporarily reverted)
Done Move Bugzilla to old-bugzilla.wikimedia.org as a read-only instance
Done Automatic redirects from Bugzilla reports to Phabricator tasks
Done Wiki templates for Bugzilla pointing to Phabricator
Done Gerrit plugin to sync tasks with code reviews
Done IRC bots reporting Phabricator activity
Done How to organize projects
Done How to claim Bugzilla reports
Done Documentation for Bugzilla users
Done Communication plan
Done Approval from Wikimedia Foundation Engineering management
Done Reminder: Bugzilla migrated projects and tasks must be Visible To Public
Done except for minor queues, 2014-12-18 00:00UTC-08:00UTC: Phabricator RT migration: RT migration (8 hours downtime of Phabricator; blocked by
Done Burndown charts & migration from Scrumbugz
In progress Define main tasks (epics) for code review in Phabricator
In progress, expected before 06/2015: Total migration from Mingle; cf. T825
To do, expected before 06/2015: Total migration from Trello; cf. T825
To do, expected before 06/2015: Proof of concept of code review in Phabricator
To do, before 2015-06-31? Total migration from gitblit
To do, before 2015-09-30? Total migration from Gerrit
To do, before 2015-09-30? Total migration from Jenkins
Get started[edit | edit source]
Access to https://phabricator.wikimedia.org is open, but please be aware of the migration timeline and the fact that the site might be entirely down during the RT and Bugzilla migrations.
There is a test instance at phab-01.wmflabs.org. Use it to learn and experiment, not for serious work.
Learn more about Phabricator versus Bugzilla. You can also watch a screencast about handling tasks/bugs.
If you have questions, check the Help and the FAQ.
Get involved[edit | edit source]
We are working on the 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 our Labs instance as much as you want. Check out the documentation and short videos on Phabricator/Help.
- Bugzilla, RT, Trello, and Mingle users are welcome to the Phabricator project. Your help is welcome anywhere, but especially in the tasks that are blocking Day 1.
- Git and Gerrit users are welcome to the 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[edit | edit source]
We have two different projects to handle Phabricator related tasks:
- Phabricator contains all the tasks specific to Wikimedia Phabricator: our processes, aspects related to migration of Wikimedia data, local customizations...
- Phabricator.org is used to organize the tasks that should be handled upstream, at https://secure.phabricator.com: generic Phabricator bugs and feature requests.
The Phabricator.org workboard shows the process that tasks go through before being created upstream:
- 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[edit | edit source]
As a PHP developer, you're welcome to contribute enhancements and new features upstream. Learn more at Phabricator/Code.