Repository navigation
📦 ️Vue 3 Migration - Roadmap #55428
Copy link
Copy link
Open
Labels
Milestone
Description
Apps in server repository
- Prepare Vue 3 migration by having 2 build processes one for Vue 2 and one for migrated Vue 3 apps
- Migrate to ESLint v9 to make linting on Vue 3 work ( chore: use ESLint v9 for linting #55495 )
- Prepare migration by splitting the build process ( refactor: prepare Vue 3 migration #55432 )
- Moving forward with necessary migrations to Vue3, the following apps should be migrated.
(names in parenthesis are respective app maintainers)- appstore ( refactor(appstore): migrate to Typescript and Vue 3 #57290 )
- comments ( refactor(comments): migrate to Vue 3 #58353 )
- core ( [stack] refactor(core): finalize migration to Vue 3 #64998 )
- dashboard ( Migrate the dashboard app to Vue 3 #62624 )
- dav ( refactor(dav): migrate frontend to Typescript and Vue 3 #55951 )
- encryption ( refactor(encryption): migrate to Vue 3 and Typescript and script setup #57515 )
- federation ( refactor(federation): migrate app frontend (admin settings) to Vue 3 #57341 )
- federatedfilesharing ( refactor(federatedfilesharing): migrate to Typescript and Vue 3 #56942 )
- files ( refactor(files): migrate to Vue 3 #61291 )
- files_external ( refactor(files_external): migrate to script-setup and Vue 3 #57237 )
- files_reminders ( refactor(files_reminders): migrate app to Vue 3 #56694 )
- files_trashbin ( refactor(files_trashbin): migrate app to Vue 3 #56439 )
- files_versions ( refactor(files_versions): Migrate to Vue3 #55965 )
- oauth2 ( refactor(oauth2): migrate to Typescript and Vue 3 #57012 )
- profile ( refactor(profile): migrate to script setup and Vue 3 #57236 )
- sharebymail ( refactor: prepare Vue 3 migration #55432 )
- systemtags ( refactor(systemtags): migrate to Vue 3 and
script setup#57855 ) - theming (refactor(theming): migrate to Typescript and Vue 3 #57163)
- twofactor_backupcodes ( refactor(twofactor_backupcodes): migrate to Typescript and Vue 3 #56067 )
- updatenotification ( refactor(updatenotification): migrate to Vue 3 #63798 )
- user_ldap (refactor(user_ldap): Migrate to Vue3 #56570)
- user_status ( refactor(user_status): migrate to Vue 3 #56544 )
- weather_status ( Migrate weather status to vue3 #62625 )
- workflowengine ( refactor: migrate
workflowengineUI to Vue 3 #64945 ) - files_sharing (📁 team)
- settings ( @artonge 🪪 IDP-team)
QUESTION: shall we for simplicity split this app into a new account_management app + separate settings ?
Ideally all files apps in "one go". Maintaining both Vue versions duplicates dependencies which has a performance impact.
External applications
- Migrate end_to_end_encryption to Vue 3 ( refactor: migrate to Vue 3 and Vue 3 based dependencies end_to_end_encryption#1149 )
- Migrate Teamfolders to Vue 3 ( refactor: migrate to new
@nextcloud/filesand Vue 3 groupfolders#4301 ) - Migrate
privacyto Vue 3 ( Migrate to Vue 3, Vite, Composition API, and updated @nextcloud/* packages privacy#1278 ) - Migrate
files_antivirusto Vue 3 ( feat: migrate frontend to Vue 3 files_antivirus#543 )
How to migrate apps?
- Migrate the code to Vue 3
- Remove symlink from
build/frontend-legacy/apps - Remove entry from
build/frontend-legacy/webpack.modules.cjs - Add symlink to
build/frontend/apps - Add entry to
build/frontend/vite.config.ts
If the migrated app has dependencies not already present in the Vue 3 version move the dependencies to the root package.json (and remove from build/frontend-legacy if no longer needed for the Vue 2 apps).
This way we can throw away everything from build/frontend* once done.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsIn progress
Activity
[-]Vue 3 Migration - NC33 Roadmap[/-][+]📦 ❗️Vue 3 Migration - NC33 Roadmap[/+]isZYKerman commentedon Oct 23, 2025
artonge commentedon Oct 27, 2025
isZYKerman commentedon Oct 28, 2025
ShGKme commentedon Nov 20, 2025
Do you plan to migrate "with the minimal required changes" or "as much as possible", going to
<script setup lang="ts">, migrating from Vuex to Pinia etc.?ShGKme commentedon Nov 20, 2025
Also, it is possible to prepare an app for the migration before the migration, making the diff with Vue 3 as small as possible.
For example:
@nextcloud/vue v9forward compatible APIVue.prototype.$t = t<script setup lang="ts">and PiniaThis may help with backporting changes from the Vue 3 version to Vue 2 versions later having fewer changes places. Does it make sense? Or migration in a single PR/commit is fine?
2 remaining items
[-]📦 ❗️Vue 3 Migration - NC33 Roadmap[/-][+]📦 ❗️Vue 3 Migration - Roadmap[/+][-]📦 ❗️Vue 3 Migration - Roadmap[/-][+]📦 ️Vue 3 Migration - Roadmap[/+]