User:TCipriani (WMF)/GitLab/Roadmap

From mediawiki.org
Wikimedia GitLab Timeline (so far)

Migrating our code review from Gerrit to GitLab will happen 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
  • Open registration beyond NDA
  • Announce that we're open for use
  • Build puppetized CI runners
  • Create the initial ACL schema

πŸ“‘ Status[edit]

🚧 In Progress

Pioneers[edit]

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

πŸ‘₯ Groups involved[edit]

Developer teams, Engineering Productivity, Site Reliability Engineering

πŸ“ Activities[edit]

  • 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[edit]

πŸ”œ Soonβ„’

Estimate: Q2 FY2021/2022 (Oct–Dec)

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 involved[edit]

Service developers, Engineering Productivity, Site Reliability Engineering, WMCS

πŸ“ Activities[edit]

  • 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[edit]

♾️ Waiting

Estimate: Q2 FY2021/2022 (Oct–Dec)

MediaWiki+Extensions+Skins[edit]

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

πŸ‘₯ Groups involved[edit]

MediaWiki developers, Engineering Productivity, Product and Technology department teams

πŸ“ Activities[edit]

  • 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[edit]

♾️ Waiting

Estimate: Q3/Q4 FY2021/2022 (Jan–Jun) 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 involved[edit]

Technical community, Engineering Productivity, Site Reliability Engineering

πŸ“ Activities[edit]

  • 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[edit]

♾️ Β―\_(ツ)_/Β―