-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[next] Backports and Release #6106
Comments
Personal side-note:I understand that migrating such a huge project as Nextcloud from vue2 to vue3 is a pain, takes a lot of effort and is barely visible to users (i.e. cannot be sold as "we added a great new feature"). However, it was long clear that vue2 will reach EOL at the end of 2023 and even 9 months later Nextcloud still uses it and does not really take care of vue 3 (not even backporting, let alone making it the default target). While vue 2 hasn't had any major vulnerabilites (citing from Vue 2 EOL), I think it is a really bad practice to use unmaintained libraries, especially for a project like Nextcloud, that advocates for "keep your software up-to-date" with every own release. |
Sure, just prepare the PR :)
I think everything that is needed is backported. A merge I think will no longer work, both branches are to diverged already. In general after talking to many people at the Nextcloud Conf. / Contributors week (this week), the overall opinion seems to be:
But overall Nextcloud employees will probably not have much time until 30.0.1 release - so I expect 1 and 2 not before that time. |
I would like to second this and want to additionally point the interest to #5950 which is the last issue which keeps me from releasing Polls on pinia and vue3 to the beta state. |
And the cherry on the cream would be a vue3 compatible version of @nextcloud/dialogs |
What would be the benefit of this approach outlined below?
I think this just brings further effort for developing v9. v9 already uses |
The idea is to make co-maintaining v8 next to v9 (in apps) easier. If you use non-deprecated v8 props / events / functions you should ideally have only to switch the version number in the E.g. take
Pinia works fine with Vue2 and Vue3 and also Vuex works with Vue3 and Vue2, meaning you could also just release Vue2 + pinia first or keep Vuex with Vue3 (while I do not recommend as Pinia replaces Vuex). That issue is sadly a bit of technical dept we also discussed, we did the mistake in the past to wrap external libraries without proper abstraction. This means we can not simply switch the underlying library without making it breaking (proper way would be provide own abstractions of what is really needed and not pass everything down). But I agree this is something to be fixed, while I also strongly recommend to use the native variant where possible. |
I can confirm that, stating from the point an app migration. I went through the migration by first replacing vuex by pinia before i went through the complete migration (vue3 and ts). It was a good way to get familiar with the composition API and TS.
Switching to the native picker would mean a heavy pain, since I tweaked the picker to the behavior, it has now. From what I observed, it seems 'just' to be an issue of the thrown events, but I am not familiar with the code of the nextcloud implementation. It works as before, but the dialog is just closed unintentionally on every click. But good to read it is on the table. My pain is just, I have a completely migrated app, ready for beta status. But it can't be released, because this issue causes a huge UX impact. |
I second that the migration to Vue v3 should be prioritized. This issue dates back to September, 30.0.1 was released 2024-10-18, there's a forum question on v3 plans from 2024-03-04, v2 is EOL since 2023-12-31 and its EOL was announced 2022-07-01. But still we see nothing here. Requiring Vue v2 prohibits current versions for other components. This is dependency hell in terms of security. I am aware that many of them are dev deps. Still, for a platform that challenges the big players, a solid base is a must. As maintainer of an app that is supposed to increase security, I NEED to get rid of rogue dependencies. Personally, I have minimal GUI and don't care about the migration effort. But there should be some howto covering typical migration steps, a Vue v3 app skeleton and ideally an updated tutorial. Until then, I'll try to grasp the concept from Polls and News – thanks for pioneering, guys. |
@nextcloud-libraries/developers The vue3
next
branch needs some love. There hasn't been a release since Jul 16, corresponding tonextcloud/[email protected]
(we are atnextcloud/[email protected]
already). This leads to a lot of missing features and fixes innext
, which makes e.g. the Tasks app (to my knowledge still the only app using vue3 in production, unfortunately) not working perfectly with NC30.Also, the backports from
master
tonext
are neglected badly.In my opinion, this should be the next steps here:
nextcloud/[email protected]
immediately, to have available what has been backported at least.master
tonext
. Although that will be very many, it might be easier even to "just" mergemaster
intonext
(although this will require a lot of manual work, either way).nextcloud/[email protected]
.next
the new default branch (name itmain
in light of new standard, and to reduce confusion) to force people to develop for vue3 and get it backported tostable8
(new name formaster
) if they need fixes (or features, which they shouldn't, honestly) for vue2.The text was updated successfully, but these errors were encountered: