zazuko / cube-creator

A tool to create RDF cubes from CSV files
GNU Affero General Public License v3.0
14 stars 2 forks source link

Switch to Vue3.0 #1100

Closed l00mi closed 2 years ago

martinmaillard commented 2 years ago

Some notes about libraries before upgrading:

Buefy will not support Vue 3

Proposed solution: switch to Oruga https://github.com/zazuko/cube-creator/pull/1120

vue-class-component, vue-property-decorator, vuex-class don't support Vue 3 yet

If I remember correctly, we chose to use these libraries because it improved Typescript support with Vue 2. Vue 3 has much better Typescript support out of the box.

After 2 years working on this project, I can say that using a non-official way of declaring components was mostly frustrating. Using classes felt more natural at the beginning, but it turns out that using a different API than 100% of documentation out there means you always have to translate in your head. It's not great.

I would propose to get rid of these libraries and to switch back to the official way to define components. It will cause a bit of work now, but I'm sure it will simplify maintenance in the long run.

https://github.com/zazuko/cube-creator/pull/1123

vue-color, vue-markdown and vuex-oidc

Vue 3 support is uncertain for these libraries. We'll need to check and potentially find alternatives.

(I read somewhere in an issue comment that vuex-oidc works with Vue3)

vuex, vue-router and vue-select have a Vue 3 version

We'll need to upgrade/migrate.

vue-custom-element

I don't think it supports Vue 3. But there is now official support for custom elements. We'll need to migrate.

[UPDATE] Turns out this is is harder than I anticipated. The official defineCustomElement function of Vue 3 doesn't behave like vue-custom-element: