Phabricator is an open source software development platform used for project management, bug reporting, and code review in an integrated fashion. Wikimedia has about 500 regular contributors developing MediaWiki plus hundreds of extensions and related tools. We are deploying https://phabricator.wikimedia.org to replace Bugzilla, RT, Trello, Mingle, Gerrit, gitblit, and Jenkins. This is the biggest and most complex Phabricator migration we are aware of, and we want to share our first-hand experiences with other free software projects.
Why such a big change? All the tools we are/were using kind of work/ed. However, we felt that the cocktail of tools was slowing us down, becoming also an obstacle for new contributors. In more detail:
- The volume and complexity of our software projects keeps increasing; MediaWiki and Bugzilla fall short for project management.
- Wikimedia Foundation teams were increasingly using Mingle and Trello, 3rd party commercial services that are alien to the Wikimedia community and principles. This was creating a divide. Wikimedia Germany was trying Scrumbugz, a one-man OSS project barely maintained.
- Overlap, duplication, and actions falling between the cracks increased.
- To mitigate this problem, we created more tools to synchronize information between services (like "Bingle", "Bugello" or Gerrit notifications in Bugzilla). They needed to be maintained (i.e. when one service is upgraded and its API interface has changed).
- Contributing to Bugzilla (Perl) and Gerrit (Java) is complex for us (PHP, and Phabricator is written in PHP), while there is no way to contribute code to proprietary Mingle and Trello.
- The current setup brings overhead and annoyance to key developers:
Senior developers having to use heavily Gerrit, Bugzilla, and Mingle/Trello.
New contributors, most of them arriving with GitHub-like expectations.
As we write these lines, this is an ongoing work. Learn more about the Wikimedia Phabricator timeline and other project details at https://www.mediawiki.org/wiki/Phabricator