GitLab/Roadmap
Migrating our code review from Gerrit to GitLab will happen in stages:

β Foundations #Edit
Consultation, documentation, vetting contractors, and buying hardware
π₯ Groups involvedEdit
Technical community, Engineering Productivity, Site Reliability Engineering, Security, WMF Legal, GitLab contractor
π ActivitiesEdit
- β GitLab community consultation
- β Document code review and continuous integration workflows to include GitLab
- β Produce a roadmap
- β Engage with WMF Legal for ToS/Privacy Policy updates
- β Begin hiring process for GitLab contractor
- β Identify and estimate hardware use for GitLab components
π StatusEdit
β¨Completeβ¨
β Construction #Edit
Install and provision GitLab, create runbooks for upgrade and common administration tasks.
π₯ Groups involvedEdit
Engineering Productivity, Site Reliability Engineering, Datacenter operations, Security, GitLab contractor
π ActivitiesEdit
- β Build a pre-production testing environment
- β Explore and establish login and authentication options
- β Rack, install, and setup GitLab for production
- β https://gitlab.wikimedia.org exists
- β Backups
- β Monitoring and Metrics
- β Establish deployment and upgrade cadence
π StatusEdit
β¨Completeβ¨
β Explorers #Edit
Individuals can use GitLab for their projects, but GitLab will still be missing features needed for teams to adopt GitLab.
π₯ Groups involvedEdit
Individual developers, Engineering Productivity, Site Reliability Engineering, Security
π ActivitiesEdit
- β Publish tools for repository management
- β Create the initial ACL schema
- β Build puppetized CI runners
- β Open registration beyond NDA
- β Announce that we're open for use
π StatusEdit
β¨Completeβ¨
π§ Pioneers #Edit
Groups of early adopters (βPioneersβ) can start to use GitLab. Release Engineering will begin to add needed integrations.
π₯ Groups involvedEdit
Developer teams on the early adopter list, Engineering Productivity, Site Reliability Engineering
π ActivitiesEdit
- Adapt notification bots (IRC/Slack) for GitLab
- Adapt integrations with Phabricator
- Automate the migration of code review from Gerrit to GitLab
- Migrate code review to GitLab for these repos.
- Test out and build (if necessary) support for dependent patchset workflows
- Migrate mainline branch names to be more inclusive: move
master
tomain
alongside teams
π StatusEdit
π§ In Progress
Estimate: Q2 FY2021/2022 (OctβDec 2021)
Pipeline #Edit
Both the Deployment Pipeline and Wikimedia Cloud Services build and deploy container images to production environments. GitLab offers image building features in its CI pipeline. Let's standardize on a common way to target WMCS and Wikimedia production for container image deployment.
π₯ Groups involvedEdit
Service developers, Engineering Productivity, Site Reliability Engineering, WMCS
π ActivitiesEdit
- Build GitLab workers for secure Docker image creation.
- Migrate relevant bots for these repositories
- Plan with SRE and WMCS:
- Continuous build and integration for each merge request for each repository
- Continuous delivery of image artifacts to production infrastructure
- Migrate code review to GitLab for these repos
π StatusEdit
βΎοΈ Waiting
Estimate: Q3 FY2021/2022 (JanβMar 2022)
MediaWiki+Extensions+Skins #Edit
This is the big push. We'll need experienced MediaWiki developers to partner with Release Engineering.
π₯ Groups involvedEdit
MediaWiki developers, Engineering Productivity, Product and Technology department teams
π ActivitiesEdit
- Implementation of the Gerrit Privilege Policy on GitLab.
- Move the primary MediaWiki development platform from Gerrit to GitLab
- Re-implementation of developer and release tools:
- Ensure that deployment tooling has support for GitLab
- Retool metric collection to support GitLab
- Migrate code review to GitLab for these repos
- Set these Gerrit repositories to read-only
π StatusEdit
βΎοΈ Waiting
Estimate: Q1 FY2022/2023 (JulβSep 2022) at the earliest
Decommission Gerrit #Edit
We have migrated all active code review to GitLab and now we can put in place a read-only/static view of Gerrit for historical URL preservation purposes. This is a big project itself.
π₯ Groups involvedEdit
Technical community, Engineering Productivity, Site Reliability Engineering
π ActivitiesEdit
- Gerrit becomes read-only
- Create static dumps of historic reviews with reasonable efforts to preserve URLs
- Important URLs: Change-Id, SHA1, unique ID, anchors to review comments(?)
- Gerrit servers decommissioned
- Ask GitHub repos to move to GitLab
π StatusEdit
βΎοΈ Β―\_(γ)_/Β―
Estimate: Too early to say