Vue.js 3 Migration Working Group
Attributes
| Property | Value |
|---|---|
| Date Created | 2023-02-10 |
| Target End Date | 2023-10-31 |
| Denomas Talk | #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 Denomas.
With 2023-12-31 Vue.js 2 (which is currently the version used by Denomas) reaches official end-of-life, including security updates and browser compatibility which might affect entire Denomas users.
Additionally, current Denomas 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 Denomas projects (including, but not limited to Denomas.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 |
a27760f0)
