Vue.js 3 マイグレーションワーキンググループ
Vue.js 3 マイグレーションワーキンググループの属性、目標、役割と責任について説明します。
属性
| プロパティ | 値 |
|---|---|
| 作成日 | 2023-02-10 |
| 目標終了日 | 2025-12-31 |
| 終了日 | 2024-10-10 |
| Slack | #wg_vue3_migration(社内のみアクセス可能) |
| Google Doc | 議事録(社内のみアクセス可能) |
| Epic | gitlab-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% のパフォーマンス改善が期待でき、たとえばコードレビューのようなフロントエンドを多用するアプリケーションでは、さらに大きな効果が見込まれます。
目標
このワーキンググループには以下の目標があります:
- すべての GitLab プロジェクト(GitLab.com、カスタマーポータル、ステータスページ等を含むがこれに限らない)が最新の Vue.js バージョンを使用していることを確認する
- Vue.js 3 へのアップグレード戦略を策定・周知する。
- アップグレードをブロックしている依存関係を特定し、これらの依存関係に関する意思決定が適時に行われることを確保する。
- アプリケーション単位でのアップグレードプロセスの可視性を確保する
- 新しいパターンを推進し、新しいフレームワークバージョンに適したガイドラインでハンドブックを更新する
- 段階的なマイグレーションのロールアウト戦略と計画を策定する
- マイグレーションプロセス中に本番環境で両バージョンのフレームワークを使用できるツールと適切なインフラを構築する。
- イテレーションの価値を大切にし、コードベースを Vue.js 3 に段階的にマイグレーションできるよう、両バージョンの Vue.js でテストスイートを実行できることを確保する
- フレームワークバージョン間の違いを統一する互換性レイヤーを実装する
- 既存の Vue.js 2 コードを最新のフレームワークバージョンに対応させるための自動化ツール(適用可能な場合)を作成する
- Vue.js 3 に対応していないパターンとソリューションについて、他チームへの廃止予定の戦略を作成する
- ワーキンググループの成果に関するコミュニケーション計画を策定・実施する。
終了基準
このグループは解散したため、すべての終了基準は達成されていません。主な項目は関連するタスクグループに引き継がれました。残りの 2 項目は、ブロッキング要因が解消され次第引き継がれます。
| 基準 | 開始日 | 終了日 | 進捗 | DRI | 継続先 |
|---|---|---|---|---|---|
| BootstrapVue を Vue Compat モード 2 で動作させる | 2021-06-21 | 2022-10-25 | 100% | @xanf | 完了 |
| GitLab UI を Vue Compat モード 2 で動作させる | 2021-06-21 | - | 70% | @markrian | GitLab 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% | TBD | TBD |
| Vue 3 本体に切り替える | - | - | 0% | TBD | TBD |
役割と責任
| ワーキンググループでの役割 | 氏名 | 役職 |
|---|---|---|
| エグゼクティブスポンサー | Tim Zallmann | Senior Director of Engineering |
| ファシリテーター | Sam Beckham | Engineering Manager, Manage:Foundations |
| ファンクショナルリード | Illya Klymov | Senior Frontend Engineer, Security Risk Management:Compliance |
| ファンクショナルリード | Natalia Tepluhina | Principal Engineer, Plan |
| ファンクショナルリード | Stanislav Lashmanov | Senior Frontend Engineer, Create: Code Review |
| ファンクショナルリード | Andrew Fontaine | Senior Frontend Engineer, Deploy:Environments |
| ファンクショナルリード | Artur Fedorov | Senior Frontend Engineer, Security Risk Management:Security Policies |
| メンバー | Mark Florian | Staff Frontend Engineer, Foundations:Design System |
| メンバー | Andrei Zubov | Frontend Engineer, Deploy:Environments |
| メンバー | Frédéric Caplette | Senior Frontend Engineer, Verify:Pipeline Authoring |
| メンバー | Alexander Turinske | Staff Frontend Engineer, Security Risk Management:Security Policies |
| メンバー | Marina Mosti | Senior Frontend Engineer, Switchboard |
| メンバー | Nathan Dubord | Senior Frontend Engineer, about.gitlab.com |
| メンバー | Vanessa Otto | Senior Frontend Engineer, AI-Powered:Workflow Catalog |
| メンバー | Vitaly Slobodin | Staff Frontend Engineer, Fulfillment |
