Phabricator/Plan

This plan to migrate our developer infrastructure to Phabricator consolidates the feedback received at Requests for comment/Phabricator, http://fab.wmflabs.org/project/view/14/, and other sources.

Summary
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
A detailed list of short term tasks is available at the project Wikimedia Phabricator Day 1.

General

 * Users log in to Phabricator with their Wikimedia credentials.
 * Unified search powered by ElasticSearch.
 * IRC bots ported to Phabricator.

Task / bug management

 * Possibility to remove and delete comments.
 * All tasks under a private project (e.g. Security) must be private.
 * Interacting with external (non-Phabricator) users via email.
 * Migration of all Bugzilla and RT  data, leaving automatic redirects.
 * Gerrit plugin to notify back to Phabricator during the transition of code review tools.
 * Flexibility for teams to move from Trello, Mingle, and Gerrit within a window of deprecation.

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

Code review
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.
 * Build a binding between Phabricator and Zuul (if Phabricator's replacement for Jenkins is not ready).

Migration plan
The current plan (in progress, see discussion):
 * 1) ✅ Deploy the Trusted User Tool using the Legalpad app only, with Wikimedia SUL enabled -- see https://legalpad.wikimedia.org (it will be merged with the main Phabricator instance by Day 1).
 * 2) Deploy a separate Phabricator in a production server after fixing the blocking tasks defined in the corresponding task.
 * 3) The migration of Bugzilla, RT, and a selection of projects in fab.wmflabs.org are required for Day 1.
 * 4) There is no mass migration from Trello and Mingle projects. Some teams are more interested than others in total / partial migration. One idea is to write the Bugzilla migration script with an abstraction layer that could be fine tuned for RT, Mingle, Trello.
 * 5) The migration of Gerrit and Jenkins is out of scope for Day 1.