Wikimedia Release Engineering Team/GitLab

Project Scope
This project is in support of the FY20-21 OKR of: "Evolve and replace our Continuous Integration and Review systems with 1 project moved by end of Q2 and 5 additional projects moved by Q3."

Working Group members
These teams/individuals are the primary members of the GitLab migration working group. Their primary role is to support and inform the work of the Release Engineering team during the process. Notably, the SRE team members are more heavily involved as they will be driving the software installation and maintenance work.


 * SRE/Service Ops - Mark and delegate(s)
 * Security - Chase and Scott
 * CPT - TBD
 * TechEng - Andre
 * Product - TBD

Background
The CI Futures Working Group was tasked with evaluating new Continuous Integration systems for use by Wikimedia developers.

We defined detailed requirements, solicited input from the community including the Wikimedia Technical Committee, and evaluated 26 candidate solutions. We narrowed the initial list of candidates to three options for detailed evaluation: GitLab CI, Argo, and a migration from Zuul v2 to Zuul v3. Eventually a choice was made to go with Argo.

However, the CI working group’s charter was limited to continuous integration, and did not include a code review solution. The expectation that we would continue using Gerrit informed, in particular, our evaluation of GitLab: Using GitLab for CI but not code review seemed likely to introduce complexity and social friction.

Since the CI WG began deliberations, it’s become evident there is an appetite for change in our code review system. This year’s Developer Satisfaction survey revealed a growing dissatisfaction with code review tooling. While Gerrit’s version control model is in many respects best-in-class, its interface suffers from usability deficits, and its workflow differs from mainstream industry practices.

These issues create barriers to entry for the community and slow onboarding for WMF technical staff. Maintenance of our existing Gerrit instance is under-resourced, an ongoing risk to our continuity of service.

GitLab is an open core platform which provides code review, continuous integration, and a slew of related services. After the scope was expanded to include code review the choice switched from Argo to GitLab; the single system approach was deemed more effective.

Work plan
in-progress