GitLab/Roadmap

Migrating our code review from Gerrit to GitLab is happening in stages:

โœ… Foundations #

edit

Consultation, documentation, vetting contractors, and buying hardware

๐Ÿ‘ฅ Groups involved

edit

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

๐Ÿ“ Activities

edit
  • โœ… 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

edit

โœจCompleteโœจ

โœ… Construction #

edit

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

๐Ÿ‘ฅ Groups involved

edit

Engineering Productivity, Site Reliability Engineering, Datacenter operations, Security, GitLab contractor

๐Ÿ“ Activities

edit
  • โœ… 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

edit

โœจCompleteโœจ

โœ… Explorers #

edit

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

๐Ÿ‘ฅ Groups involved

edit

Individual developers, Engineering Productivity, Site Reliability Engineering, Security

๐Ÿ“ Activities

edit
  • โœ… 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

edit

โœจCompleteโœจ

๐Ÿ” Production-use foundations #

edit

This phase has been long.

Before releasing code to our production environment, there is a large amount of work to be completed with many unknowns.

This work includes a set of instance-wide Shared Runners offering CI capabilities for unreviewed (meaning untrusted) code for private projects and forks. These Runners will be available for every project by default and help the community and volunteers to have CI for every code change.

๐Ÿ‘ฅ Groups involved

edit

Release engineering, Wikimedia Cloud Services, Site Reliability Engineering

๐Ÿ“ Activities

edit
  • โœ… Build GitLab workers for secure Docker image creation and publishing to production
  • โœ… Continuously publish image artifacts to our production Docker registry
  • ๐Ÿ” Build a stable set of untrusted cloud runners for unreviewed code:
    • โœ… Support an infrastructure allowing ephemeral runners
    • โœ… Ensure scaling works
    • โœ… Ensure caching works
    • โœ… Ensure MVP for monitoring is in place
    • ๐Ÿ” Announce and open runners to the world
  • โœ… Port release pipeline code to GitLab CI
  • โœ… Build MVP to integrate GitLab activity with Phabricator
  • โœ… Migrate toolforge repos from Phabricator diffusion to GitLab

๐Ÿ“‘ Status

edit

๐Ÿ” In progress

๐Ÿšง Pipeline early adopters #

edit

Groups of early adopters of the pipeline can start to use GitLab. Release Engineering will expand needed integrations and ease transition.

๐Ÿ‘ฅ Groups involved

edit

Developer teams, Engineering Enablement, Site Reliability Engineering

๐Ÿ“ Activities

edit
  • Refine integrations and adapt existing IRC/Slack bots for GitLab
  • Provide tools to help convert PipelineLib configs to GitLab CI files
  • Support early services adopters with documentation and learning sessions
  • Test out and build (if necessary) support for dependent patchset workflows

๐Ÿ“‘ Status

edit

๐Ÿš€Next

Estimate: Q3 FY2022/2023 (Janโ€“Mar 2023)

๐Ÿ”ฎ Beyond #

edit

Work remains beyond the completion of above phases.

The list below is roughly ordered by estimated completion date:

  • Archive remaining Phabricator diffusion repos
  • Implementation of the Gerrit Privilege Policy on GitLab
  • Push to move remaining pipeline work to GitLab
  • Re-implementation of MediaWiki developer and release tools
  • Migration of MediaWiki+Extensions+Skins
  • Migration of the operations/puppet repository
  • Migration of the long-tail of projects still on Gerrit
  • Archiving Gerrit
    • 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