At the Vue.js developer summit, we decided to upgrade from Vue 2 to Vue 3. We would like to begin by using the migration build of Vue 3, which provides backwards compatibility for code written for Vue 2.
Project Information
- Name of tool/project: Vue.js
- Project home page: https://v3.vuejs.org/
- Name of team requesting review: Design Systems team
- Primary contact: Roan Kattouw (@Catrope)
- Target date for deployment: Soon, ideally some time in September
- Link to code repository / patchset:
- Desired version: the latest version, which is currently 3.2.2 (3.2 just came out earlier this week, and 3.2.x patch releases have been coming out rapidly)
Description of the tool/project:
JavaScript framework.
Description of how the tool will be used at WMF:
This framework will be used by all frontend UI code. We also plan on using it for server-side rendering of components in the future, which we plan do launch a Technical Decision Making Process for soon.
Dependencies
No runtime dependencies, the vue-compat package is standalone (it doesn't even require the Vue package; instead it includes all of its code). Some compile-time dependencies are technically separate NPM packages but are hosted in the same Github repository. As far as I can tell, there is no code from external devDependencies that gets pulled into the final build product, but maybe I'm wrong and there is a little bit.
Has this project been reviewed before?
No, but related projects have been. Vue 2 has been reviewed and is in MW core, but Vue 3 is a significant rewrite. The Vue composition API plugin, which has also been reviewed, has code overlap with some of the new parts of Vue 3.
Working test environment
- https://codesandbox.io has a Vue 3 template that you can use to quickly create a Vue 3 test environment, or you can fork this sandbox
Post-deployment
The Design Systems team will continue to be responsible for this.
We will want to occasionally upgrade to new patch (e.g. 3.2.3 when it comes out) or minor versions (e.g. 3.3 when it comes out). We would appreciate guidance on how we should approach that (should we request a new review? request a quick sanity check? just do it but notify the security team?)