Phabricator is an open-source software development platform used for project management, bug reporting, feature requests, and code review in an integrated fashion.
Get started! First missions include
- Creating your account
- Creating a task
- Creating a project and learning about project management in Phabricator.
For Phabricator support and camaraderie, join.
phabricator.wikimedia.org[edit | edit source]
- 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]
- 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.
- Bugzilla migration (1-4 days downtime, see detailed timeline), blocked by
- Community review of the Bugzilla migration test instance (two weeks) Done
- Bugzilla to Phabricator import script Done
- Elasticsearch Done
- Move Bugzilla to old-bugzilla.wikimedia.org as a read-only instance Done
- Automatic redirects from Bugzilla reports to Phabricator tasks Done
- In progress Wiki templates for Bugzilla pointing to Phabricator
- 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
- Done Approval from Wikimedia Foundation Engineering management
- Done Reminder: Bugzilla migrated projects and tasks must be Visible To Public
- Partially done, 2014-12-18 00:00UTC-08:00UTC: Phabricator RT migration: RT migration (8 hours downtime of Phabricator; blocked by
- In progress Define main tasks (epics) for code review in Phabricator
- In progress, expected during October or November: Burndown charts & migration from Scrumbugz
- To do, expected before 03/2015: Total migration from Mingle
- To do, expected before 03/2015: Total migration from Trello
- To do, expected before 03/2015: Proof of concept of code review in Phabricator
- To do, before 2015-03-31? Total migration from gitblit
- To do, before 2015-06-30? Total migration from Gerrit
- To do, before 2015-06-30? Total migration from Jenkins
Get started[edit | edit source]
There is a test instance at phab-01.wmflabs.org. Use it to learn and experiment, not for serious work.
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.
- You might want to watch the kick-off meeting of the Wikimedia Phabricator Day 1 project.
- 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.