Vue.js 3 マイグレーションワーキンググループ

Vue.js 3 マイグレーションワーキンググループの属性、目標、役割と責任について説明します。

属性

プロパティ
作成日2023-02-10
目標終了日2025-12-31
終了日2024-10-10
Slack#wg_vue3_migration(社内のみアクセス可能)
Google Doc議事録(社内のみアクセス可能)
Epicgitlab-org/&2652
概要 & ステータス終了基準 を参照

解散について

2024年10月10日、Vue 3 ワーキンググループは、より小規模で集中度の高いタスクグループを優先するために解散されました。この日時点で、Vue 3 へのマイグレーションは完了しておらず、まだ多くの作業が残っています。未完了の項目については、終了基準 をご参照ください。

コンテキスト

Vue.js 3 は GitLab が使用するフロントエンドフレームワークの最新バージョンです。

2023年12月31日をもって Vue.js 2(現在 GitLab が使用しているバージョン)は公式にサポート終了となり、セキュリティアップデートとブラウザ互換性のサポートが終了します。これは GitLab の全ユーザーに影響する可能性があります。

また、現在の GitLab コードベースは Vue 3 との互換性がないライブラリのサブセットに依存しており、マイグレーション時に追加のリスクを生じさせる可能性があります。

私たちはメンテナンスされていないバージョンのフレームワークを使用することでユーザーに追加のセキュリティリスクを生じさせないようにしたいと考えています。同時に、最新バージョンの新機能を活用することで開発者の生産性を向上させます。また、Vue.js 3 へのアップグレードにより、アプリケーション全体で 20〜30% のパフォーマンス改善が期待でき、たとえばコードレビューのようなフロントエンドを多用するアプリケーションでは、さらに大きな効果が見込まれます。

目標

このワーキンググループには以下の目標があります:

  1. すべての GitLab プロジェクト(GitLab.com、カスタマーポータル、ステータスページ等を含むがこれに限らない)が最新の Vue.js バージョンを使用していることを確認する
  2. Vue.js 3 へのアップグレード戦略を策定・周知する。
    1. アップグレードをブロックしている依存関係を特定し、これらの依存関係に関する意思決定が適時に行われることを確保する。
    2. アプリケーション単位でのアップグレードプロセスの可視性を確保する
    3. 新しいパターンを推進し、新しいフレームワークバージョンに適したガイドラインでハンドブックを更新する
  3. 段階的なマイグレーションのロールアウト戦略と計画を策定する
    1. マイグレーションプロセス中に本番環境で両バージョンのフレームワークを使用できるツールと適切なインフラを構築する。
    2. イテレーションの価値を大切にし、コードベースを Vue.js 3 に段階的にマイグレーションできるよう、両バージョンの Vue.js でテストスイートを実行できることを確保する
    3. フレームワークバージョン間の違いを統一する互換性レイヤーを実装する
    4. 既存の Vue.js 2 コードを最新のフレームワークバージョンに対応させるための自動化ツール(適用可能な場合)を作成する
    5. Vue.js 3 に対応していないパターンとソリューションについて、他チームへの廃止予定の戦略を作成する
  4. ワーキンググループの成果に関するコミュニケーション計画を策定・実施する。

終了基準

このグループは解散したため、すべての終了基準は達成されていません。主な項目は関連するタスクグループに引き継がれました。残りの 2 項目は、ブロッキング要因が解消され次第引き継がれます。

基準開始日終了日進捗DRI継続先
BootstrapVue を Vue Compat モード 2 で動作させる2021-06-212022-10-25100%@xanf完了
GitLab UI を Vue Compat モード 2 で動作させる2021-06-21-70%@markrianGitLab UI タスクグループ
GitLab Main で vue-router を Vue Compat モードで動作させる2023-05-18-50%TBD???
メインリポジトリで Vue.js 3 を使ったテストスイートを実行する2023-05-18-30%@xanf会社の責任
CustomersDot を Vue Compat モード 2 で動作させる2024-02-01-0%@vitallium???
Vue Compat をモード 2 からモード 3 に切り替える--0%TBDTBD
Vue 3 本体に切り替える--0%TBDTBD

役割と責任

ワーキンググループでの役割氏名役職
エグゼクティブスポンサーTim ZallmannSenior Director of Engineering
ファシリテーターSam BeckhamEngineering Manager, Manage:Foundations
ファンクショナルリードIllya KlymovSenior Frontend Engineer, Security Risk Management:Compliance
ファンクショナルリードNatalia TepluhinaPrincipal Engineer, Plan
ファンクショナルリードStanislav LashmanovSenior Frontend Engineer, Create: Code Review
ファンクショナルリードAndrew FontaineSenior Frontend Engineer, Deploy:Environments
ファンクショナルリードArtur FedorovSenior Frontend Engineer, Security Risk Management:Security Policies
メンバーMark FlorianStaff Frontend Engineer, Foundations:Design System
メンバーAndrei ZubovFrontend Engineer, Deploy:Environments
メンバーFrédéric CapletteSenior Frontend Engineer, Verify:Pipeline Authoring
メンバーAlexander TurinskeStaff Frontend Engineer, Security Risk Management:Security Policies
メンバーMarina MostiSenior Frontend Engineer, Switchboard
メンバーNathan DubordSenior Frontend Engineer, about.gitlab.com
メンバーVanessa OttoSenior Frontend Engineer, AI-Powered:Workflow Catalog
メンバーVitaly SlobodinStaff Frontend Engineer, Fulfillment