Phabricator/Plan

This plan to migrate our developer infrastructure to Phabricator consolidates the feedback received at Requests for comment/Phabricator and other sources.

Summary edit

The result of the Phabricator RfC is favorable to move to this platform and replace gitblit, Gerrit, Jenkins, Bugzilla, RT, Trello, and Mingle. A first phase will focus on migrating all the Bugzilla and RT data to Phabricator, and merge the project management work being done in Trello and Mingle. A second phase —that could be worked in parallel— will focus on substituting Gerrit for code review. There is also a possibility to deprecate Jenkins as a continuous integration tool, but this option is out of scope for now. A few blockers have been identified in these areas, and we will collaborate with the Phabricator community to fix them.

The calendar of the migration is conditioned by the resolution of these blockers. The current assumption is that Phabricator will deprecate Bugzilla, Trello, and Mingle first. Gerrit will follow after a period of transition.

The Engineering Platform team at the Wikimedia Foundation will lead this project allocating the resources necessary to define a detailed plan, proceed with the migration, and maintain the new infrastructure.

Requirements edit

A detailed list of short term tasks is available at the project Wikimedia Phabricator Day 1 and the Launch Wikimedia Phabricator Day 1 planning task.

General edit

  • Users log in to Phabricator with their Wikimedia credentials.[1]
  • Unified search powered by ElasticSearch.[2]
  • IRC bots ported to Phabricator.[3]

Task / bug management edit

  • Possibility to remove and delete comments.[4]
  • All tasks under a private project (e.g. Security) must be private.[5]
  • Interacting with external (non-Phabricator) users via email.[6]
  • Migration of all Bugzilla [7][8] and RT [9][10] data, leaving automatic redirects.
  • Gerrit plugin to notify back to Phabricator during the transition of code review tools.[11]
  • Flexibility for teams to move from Trello,[12] Mingle,[13] and Gerrit [14] within a window of deprecation.

For an analysis between Bugzilla and Phabricator, see Phabricator/versus Bugzilla.

Code review edit

A complete list of tasks is available at the project Code review for Phabricator.

  • The code review process in Differential/Audit needs to be adapted to our needs.[15]
  • Build a binding between Phabricator and Zuul (if Phabricator's replacement for Jenkins is not ready).[16]

Migration plan edit

Moved & merged with Phabricator/Migration_Timeline.