Phabricator/Migration

From mediawiki.org

Rationale[edit]

Until 2014, the Wikimedia technical community used plenty of different tools for tracking bugs / product management / project management / todo lists.

The problem description at that time was:

  • Some are open source and others are proprietary, some are self-hosted and others are hosted by third parties, and all in all the multitude of tools and channels makes it difficult for both staff and volunteers to keep track of what's happening. They also all have their own limitations.
  • 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.

A review of our project management tools was started, including an assessment of our needs and requirements, and a discussion of available options. A request for comment was set up to gauge interest in simplifying our development toolchain and consolidating our tools (gitblit, Gerrit, Jenkins, Bugzilla, RT, Trello, and Mingle) into Phabricator. The result of the RFC was in favor of Phabricator. The consensus was also that there were blockers that had to be addressed before any migration was considered, and that any migration had to be carefully planned and as carefully executed.

Phabricator/Plan described the requirements.

Migration timeline[edit]

See Phabricator/Migration Timeline for details.

Status[edit]

For activity updates, see Phabricator/Migration/status.