We’re going to keep both Gerrit and GitLab.
Many of the repositories now on Gerrit require features that are lacking in GitLab:
- Cross-repository dependent merge requests - Project gating and deterministic, atomic merges - Stacked patchsets - Multiple reviewers
Likewise, GitLab has features that our developers have come to depend on:
- Familiar fork, branch, and merge workflow - Self-service repository creation - Jupyter Notebook rendering - GitLab's self-service CI/CD pipeline - Bring your own runners - Artifact and packages registries
As a result, we'll be running both systems for at least the next two years.
More information is available on MediaWiki.org[0], summarized below. ___
*Details*
These repositories have requirements that mean they must remain on Gerrit:
- MediaWiki core - The subset of extensions and skins which track MediaWiki core’s mainline branch (including all Wikimedia production-deployed extensions, skins, and MediaWiki vendor) - SRE’s Puppet repository along with dependencies and dependent repositories.
Other repositories on GitLab may return to Gerrit to lessen the mental burden of working with two systems.
Likewise, some repositories on Gerrit may wish to continue to migrate to GitLab.
We'll use the Phabricator tag "GitLab (Project Migration)"[1] to track requests from project stewards to migrate between systems. We’ll be monitoring that workboard closely through the end of this calendar year to assist developers with their migrations. ___
*What now*
- We have no intention of shutting down either system for the next two years. - We've posted a longer explanation on MediaWiki.org[0]. Please use the talk page there (rather than this mailing list) for discussion. - We've gathered a list of questions we anticipate some folks may have on MediaWiki.org[2]. - Specific requests from project stewards to migrate repositories between either of our systems should use the Phabricator tag "GitLab (Project Migration)"[1]. - We'll be hosting office hours to answer any questions. More details about these sessions will come later.
The decision to keep both systems was challenging. Having two code forges adds to the fragmentation of our systems, the mental overhead for our developers, and the maintenance burden of stewards. But each system is well-suited to a subset of our needs, keeping both systems safeguards the productivity of our developers and the stability of our systems.
For more details, I encourage you to review MediaWiki.org[0] and engage on the talk page.
Tyler Cipriani (he/him) Engineering Manager, Release Engineering Wikimedia Foundation
[0]: https://www.mediawiki.org/wiki/GitLab/Migration_status [1]: https://phabricator.wikimedia.org/project/profile/5552/ [2]: https://www.mediawiki.org/wiki/GitLab/Migration_status/FAQ
wikitech-l@lists.wikimedia.org