User:TCipriani (WMF)/GitLab/Roadmap



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


 * Implementation of the Gerrit Privilege Policy on GitLab.
 * Mirror code from Gerrit to GitLab.
 * Ensure continuous integration triggers and runs on GitLab hosts.
 * Adapt notification bots (IRC/Slack) for GitLab.
 * Adapt integrations with Phabricator
 * Migrate code review to GitLab for these repos.
 * Test out and build (if necessary) support for dependent patchset workflows.
 * Set these Gerrit repositories to read-only.
 * Reach out to WMCS re:striker


 * 1) Groundwork
 * 2) Setup
 * 3) Open for use by explorers
 * 4) Open for use by pioneers
 * 5) Pipeline and WMCS image building
 * Build GitLab workers for secure Docker image creation.
 * Plan continuous delivery/deployment with SRE/WMCS


 * 1) All the repos except MediaWiki and extensions
 * 2) MediaWiki and extensions and skins
 * Implementation of the Gerrit Privilege Policy on GitLab.
 * Begin mirroring all code to GitLab


 * 1) Decommission Gerrit and the long tail
 * Determine how to preserve a static Gerrit
 * Cool URLs don't change
 * Decom Diffusion
 * Encourage Github users to migrate (if they haven't already)

Groundwork
Consultation, documentation, vetting contractors, and buying hardware

👥 Groups involved
Technical community, Engineering Productivity, Site Reliability Engineering, Security, WMF Legal, GitLab contractor

📝 Activities

 * ✅ 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

📑 Status
✨Complete✨

Setup
Install and provision GitLab, create runbooks for upgrade and common administration tasks.

👥 Groups involved
Engineering Productivity, Site Reliability Engineering, Datacenter operations, Security, GitLab contractor

📝 Activities

 * ✅ 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

📑 Status
✨Complete✨

Open for explorers
Individuals can use GitLab for their projects, but GitLab will still be missing features needed for teams to adopt GitLab.

👥 Groups involved
Engineering Productivity, Site Reliability Engineering, Security

📝 Activities

 * ✅ Publish tools for repository management
 * Open registration beyond NDA
 * Announce that we're open for use
 * Build puppetized CI runners
 * Create the initial ACL schema

📑 Status
🚧 In Progress

Open for pioneers
Groups of early adopters can start to use GitLab. Release Engineering will begin to add needed integrations.

👥 Groups involved
Engineering Productivity, Site Reliability Engineering

📝 Activities

 * 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

📑 Status
🔜 Soon™

Kubernetes service deployment
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 involved
Engineering Productivity, Site Reliability Engineering, WMCS

📝 Activities

 * 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.

Everything except MediaWiki+Extensions+Skins
Leaving MediaWiki for after the bulk of the repositories are moved allows us to learn a lot about the idiosyncrasies of the new system and anticipate needed changes for MediaWIki.

This includes Phabricator Diffusion repositories created for WMCS users via Striker.

Groups involved
Engineering Productivity, Product and Technology department teams

Activities

 * Migrate relevant bots to these repositories
 * Migrate code review to GitLab for these repos.
 * Set these Gerrit/Diffusion repositories to read-only.

6. MediaWiki+Extensions+Skins
The final large group migration. This migration should be the best informed from what we’ve learned and the improvements we’ve made along the way.

Groups involved
Engineering Productivity, Product and Technology department teams

Activities

 * 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.

7. Decommission Gerrit
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 involved
Engineering Productivity, Site Reliability Engineering

Activities

 * 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