Vue.js 3 Migration Working Group
Attributes
Property | Value |
---|---|
Date Created | 2023-02-10 |
Target End Date | 2023-10-31 |
Slack | #wg_vue3_migration (only accessible from within the company) |
Google Doc | Agenda (only accessible from within the company) |
Epic | Link |
Overview & Status | See Exit Criteria Progress |
Context
Vue.js 3 is the latest version of the frontend framework used by GitLab.
With 2023-12-31 Vue.js 2 (which is currently the version used by GitLab) reaches official end-of-life, including security updates and browser compatibility which might affect entire GitLab users.
Additionally, current GitLab codebase relies on subset of libraries which were not updated to be compatible with Vue 3 which might pose additional risks during migration.
We want to ensure that we are not creating additional security risks for our users by using an unmaintained version of a framework. At the same time increasing developer productivity by using new features of the latest version of the framework. Also an upgrade to Vue.js 3 hopefully will result in performance gains through out the application of 20-30% and most probably even more for heavy frontend applications like Code Review for example.
Exit Criteria
This Working Group has the following goals:
- Ensure all GitLab projects (including, but not limited to GitLab.com, customers portal, status page, etc.) are using latest Vue.js version
- Develop & Socialize upgrade strategy for Vue.js 3.
- Identify dependencies which are blocking upgrade and ensure that decisions regarding these dependencies will be taken in timely fashion.
- Ensure visibility of upgrade process on per-application level
- Promote new patterns and update handbook with guidelines appropriate for new framework version
- Develop a Rollout Strategy and Plan for gradual migration
- Create tooling and proper infrastructure to be able to use both framework versions in production during migration process.
- Ensure our test suite could be run using both versions of Vue.js to embrace values of iteration of results and allow gradual migration of codebase to Vue.js 3
- Implement compatibility layer for unifying differences between framework versions
- Create automated tooling (where applicable) to migrate existing Vue.js 2 code to be compatible with latest framework version
- Create deprecation strategy for patterns and solutions which are not compatible with Vue.js 3 to rest of the teams
- Develop and implement a communication plan for the outcomes of the working group.
Exit Criteria Progress
Criteria | Start Date | Completed Date | Progress | DRI |
---|---|---|---|---|
Use Vue.js 3 for running test suites | 0% | @you? |
||
Vue.js 3 upgrade tasks and testing for all groups available | 0% | @you? |
||
Vue.js 3 upgrade tasks and testing by all groups completed. | 0% | @you? |
||
Use @vue/compat for Vue-related projects | 0% | @you? |
||
Drop Vue.js 2 support | 0% | @you? |
Roles and Responsibilities
Working Group Role | Person | Title |
---|---|---|
Executive Sponsor | Tim Zallmann | Senior Director of Engineering |
Co-Facilitator | Martin Wortschack | Engineering Manager, Manage:Import |
Functional Lead | Illya Klymov | Senior Frontend Engineer, Manage:Import |
Functional Lead | Natalia Tepluhina | Principal Engineer, Plan |
Functional Lead | Stanislav Lashmanov | Senior Frontend Engineer, Create: Code Review |
Functional Lead | Andrew Fontaine | Senior Frontend Engineer, Release |
Member | Mark Florian | Staff Frontend Engineer, Manage:Foundations |
Member | Laura Meckley | Frontend Engineer, Fulfillment::Billing & Subscription Mgmt |
Member | Andrei Zubov | Frontend Engineer, Release |
Member | Artur Fedorov | Senior Frontend Engineer, Secure |
Member | Frédéric Caplette | Senior Frontend Engineer, Verify:Pipeline Authoring |
Member | Eduardo Sanz Garcia | Senior Frontend Engineer, Manage:Authentication and Authorization |
Member | Ross Byrne | Fullstack Engineer, Growth:Acquisition |
Member | Samantha Ming | Senior Frontend Engineer, Govern:Threat Insights |
e749da39
)