Wikimedia adopts Phabricator, deprecates 7 infrastructure tools (Andre Klapper, Quim Gil)

Within Wikimedia, there is quite some diversity in the needs for workflows and tools. One year ago, the main tool was Bugzilla, but also RT (?), Mingle (scrum board), Hello (scrum board), gerrit (code review), and then stuff to interact between these different tools, e.g. a hook to add gerrit comments to a bugzilla ticket. But this diversity in tools made collaboration between teams sometimes difficult and created more maintenance work. So the infrastructure team wanted to find something better. But avoid inventing yet another new tool.

Teams and developers were asked to describe their needs, which was consolidated into a list of must and would like, and also people could propose tools. Many options were pushed into a funnel to decrease the number of proposals and some test instances were set up. It quickly resolved to the question: shall we move to Phabricator? This was discussed in a broader Request for Comments in the entire community.

Phabricator comes from facebook has split off into a separate company Phacility and is built with PHP. It has most of the tools that you want integrated: bug management, project management, reviews, scrum views, …. Unfortunately, no migration scripts from Bugzilla existed. Since Wikimedia was doing new things (migration scripts), they also immediately worked with upstream. Upstream is really helpful but they have their own priorities.

Deployment steps: set up a production instance, let users pre-register in phabricator, migrate bugs from the test instance (linking to the already registered users), migrate the bugzilla data (including dropping some of the data). All of this was planned within phabricator.

Migration itself was pretty complex. Fetching tickets needs to work around known XML RPC bugs and takes 5 hours. Creating the tasks etc in Phab took 25 hours. Note that the IDs have to be remapped; they just added 2000 to the bugzilla number. After migration, the old bugzilla URLs were redirected to the Phas URLs. Lots of problems during the migration, but worked very well with upstream. They wrote a blog report about all the migration problems.

Gains in Phabricator:

  • Unified login: log in on wp and you get access to phabricator.
  • Nicer layout, configurable.
  • Workflow is simplified (no separate state and resolution fields).
  • Scrum boards, with columns not just on status but also other tags.
  • Burndown charts (custom extension).
  • Tasks can be assigned to several projects, no distinction between e.g. milestones and products, which gives a lot more flexibility (but you have to think about it a little).

Still todo: migrate code browsing and code review. That will be difficult. Also todo: migrate Jenkins.

Phabricator API is considered unstable, so if you do costumisation it is costly, and they don’t announce breakage. Contributing requires a CLA.

See https://www.mediawiki.org/wiki/Phabricator

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s