Skip to content
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

Migrate to Vue 3 #7547

Open
4 of 14 tasks
jimchamp opened this issue Feb 16, 2023 · 9 comments · May be fixed by #10298
Open
4 of 14 tasks

Migrate to Vue 3 #7547

jimchamp opened this issue Feb 16, 2023 · 9 comments · May be fixed by #10298
Assignees
Labels
1-off tasks Lead: @jimchamp Issues overseen by Jim (Front-end Lead, BookNotes) [managed] no-automation Prevents automated actions on this issue or PR Priority: 2 Important, as time permits. [managed] Type: Epic A feature or refactor that is big enough to require subissues. [managed] Type: Feature Request Issue describes a feature or enhancement we'd like to implement. [managed]

Comments

@jimchamp
Copy link
Collaborator

jimchamp commented Feb 16, 2023

Open Library maintains a small number of web components that were created with Vue 2.
Vue 2 will reach end of life on 31 December 2023, so we'll have to migrate to Vue 3 in the near future.

Project Summary

  • Get a way to build with createApp; drop web components

  • Fix workbox-webpack-plugin and vite having conflicing version of rollup ; maybe can update workbox-webpack-plugin ?

  • Create a way to multi build all the Components

  • Test all components and make sure they don't use global IDs

  • Test all components and make sure they don't interfere with CSS

Code Changes

Finishing Touches

  • Update our Vue documentation
    • Add link to this page to wiki sidebar
  • Test new build process with Vite
    • This is a nice to have and would let us get rid of webpack but not strictly necessary for the upgrade.

Next Steps

Additional context

This also give us the opportunity to try using Vite for our component builds. We currently use Vue CLI, and this is one of the slower steps of our build process. More importantly, Vue CLI is now in maintenance mode, and eventually will be no longer supported.

Stakeholders

@jimchamp jimchamp added Type: Feature Request Issue describes a feature or enhancement we'd like to implement. [managed] Priority: 3 Issues that we can consider at our leisure. [managed] 1-off tasks Type: Epic A feature or refactor that is big enough to require subissues. [managed] Lead: @jimchamp Issues overseen by Jim (Front-end Lead, BookNotes) [managed] labels Feb 16, 2023
@RayBB
Copy link
Collaborator

RayBB commented Sep 23, 2023

vue-async-computed doesn't support vue 3 per foxbenjaminfox/vue-async-computed#104

Will need to move away from that too.

@RayBB
Copy link
Collaborator

RayBB commented Sep 25, 2023

@jimchamp
Copy link
Collaborator Author

jimchamp commented Sep 26, 2023

If memory serves, vue-multiselect will need to be upgraded in order to migrate the library explorer. The Vue 3 version of this library is on their next branch, here.

@RayBB
Copy link
Collaborator

RayBB commented Sep 26, 2023

You're right and Vue 3 support only seems to be available as beta and there doesn't seem to be too much active development there.

How do we feel about using beta packages that haven't had a release in a while?

Might be worth looking into: https://github.com/vueform/multiselect

It has a nice comparison table with the library we are using now.

@RayBB
Copy link
Collaborator

RayBB commented Oct 6, 2023

Based on the discussion a few weeks back Drini said we're okay to use the beta lib for now. I'm going to investigate that.

This comment was marked as outdated.

@RayBB RayBB self-assigned this Jan 25, 2024
@mekarpeles
Copy link
Member

Here's the latest from my conversation w/ @jimchamp
image

@jimchamp jimchamp added the no-automation Prevents automated actions on this issue or PR label Jan 25, 2024
@jimchamp

This comment was marked as outdated.

@mekarpeles mekarpeles assigned cdrini and unassigned RayBB Jan 29, 2024
@mekarpeles
Copy link
Member

We decided on:

Have each web component have its own index.js which will let us load only what’s needed and also solve the asynccompute plugin issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1-off tasks Lead: @jimchamp Issues overseen by Jim (Front-end Lead, BookNotes) [managed] no-automation Prevents automated actions on this issue or PR Priority: 2 Important, as time permits. [managed] Type: Epic A feature or refactor that is big enough to require subissues. [managed] Type: Feature Request Issue describes a feature or enhancement we'd like to implement. [managed]
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants
@RayBB @mekarpeles @cdrini @jimchamp and others