GitLab/Roadmap



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

✅ Foundations #
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✨

✅ Construction #
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✨

✅ Explorers  #
Individuals can use GitLab for their projects, but GitLab will still be missing features needed for teams to adopt GitLab.

👥 Groups involved
Individual developers, Engineering Productivity, Site Reliability Engineering, Security

📝 Activities

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

📑 Status
✨Complete✨

🚧 Pioneers #
Groups of early adopters (“Pioneers”) can start to use GitLab. Release Engineering will begin to add needed integrations.

👥 Groups involved
Developer teams on the early adopter list, 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
 * Migrate mainline branch names to be more inclusive: move  to   alongside teams

📑 Status
🚧 In Progress

Estimate: Q2 FY2021/2022 (Oct–Dec)

Pipeline #
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
Service developers, 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

📑 Status
♾️ Waiting

Estimate: Q3 FY2021/2022 (Jan–Mar)

MediaWiki+Extensions+Skins #
This is the big push. We'll need experienced MediaWiki developers to partner with Release Engineering.

👥 Groups involved
MediaWiki developers, Engineering Productivity, Product and Technology department teams

📝 Activities

 * 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

📑 Status
♾️ Waiting

Estimate: Q3/Q4 FY2021/2022 (Jan–Jun) at the earliest

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
Technical community, 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

📑 Status
♾️ ¯\_(ツ)_/¯

Estimate: Too early to say