GitLab/Roadmap

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

Wikimedia GitLab Timeline (so far)

βœ… FoundationsEdit

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✨

βœ… ConstructionEdit

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✨

βœ… ExplorersEdit

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✨

🚧 PioneersEdit

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 to main alongside teams

πŸ“‘ StatusEdit

🚧 In Progress

Estimate: Q2 FY2021/2022 (Oct–Dec)

PipelineEdit

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: Q2 FY2021/2022 (Oct–Dec)

MediaWiki+Extensions+SkinsEdit

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: Q3/Q4 FY2021/2022 (Jan–Jun) at the earliest

Decommission GerritEdit

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