buefy icon indicating copy to clipboard operation
buefy copied to clipboard

Migration to Vue 3

Open kikuomax opened this issue 4 years ago • 3 comments

Proposed Changes

  • I have made a version of Buefy that works on top of Vue 3.
  • Changes have been made based on v0.9.7 as I started migration about two month ago.
  • My migration goal was to make the documentation page of every component work (no error logs, and no obvious visual flaw). No tests have been updated.
  • It does not work with Vue 2.
  • You can install this version with npm install 'git+https://github.com/kikuomax/buefy.git'.
  • There are too many changes, so please refer to README, CHANGELOG, and MIGRATION-NOTE of my fork for more details.
  • I do not think this PR is acceptable, but I hope this could be a good material for Vue 3 support.

kikuomax avatar Jul 01 '21 15:07 kikuomax

Thank you for your work, used it for migrating a big project to Vue 3 and Typescript. I had the named v-slot problem with component in b-table (fixed it) and b-collapse (removed b-collapse and used v-if instead) any news on this ? Also i had to replace b-button with button with button class because @click wasn't working but everything else was good.

holtolee avatar Aug 17 '21 10:08 holtolee

Hello.

Any chance for this to be updated for 0.9.20? It produces quite a few merge conflicts.

Thank you for your work so far.

kde99 avatar May 07 '22 14:05 kde99

I have completely rebased my fork from v0.9.21. Please refer to updated README, CHANGELOG, and MIGRATION-NOTE for more details.

@holtolee As I could not reproduce your issues, the problems may persist.

@kde99 My fork is now based on v0.9.21.

kikuomax avatar Jul 22 '22 06:07 kikuomax

Hey, what's the current state of this? Are there plans to merge it? I saw that there is also this project https://github.com/yooouuri/bulma-vue.

dword-design avatar Oct 17 '22 07:10 dword-design

Hey, what's the current state of this? Are there plans to merge it? I saw that there is also this project https://github.com/yooouuri/bulma-vue.

Unfortunately maintainer @jtommy stated in Discord that he does not have time for maintaining two similar open-source projects (Oruga is the other one which he's maintaining)

I don't know and also wonder if @jtommy is interesting to handover the Buefy to either @kikuomax, @yooouuri or anyone who wants to maintain and migrate into Vue3.

kaangokdemir avatar Oct 19 '22 10:10 kaangokdemir

Ok and what's the state of this PR? @kikuomax It looks like a lot of work has already been put into it 😊.

dword-design avatar Oct 20 '22 08:10 dword-design

Indeed, it would be sad to lose this hard work.

Since this vue3 fork is incompatible with vue2 and vice versa, it might even make sense to keep it as a separate project. Separate npm package name, separate tickets, etc.

Perhaps rebranding @kikuomax's fork as "buefy3" to emphasize the vue3 compatibility would be enough. Although it's a bit strange to skip the "buefy2". Or perhaps even pick another name, like "vulma" (vue+bulma), dunno.

That way, buefy remains the way it is and keeps its compatibility, which is important for all the existing projects out there rather than breaking everything if you suddenly change the required vue version. And for those wanting to use the vue3 version, the new project would be available.

What would be important and probably sufficient is to add a disclaimer on the front page like:

Lightweight UI components for Vue.js 2 based on Bulma For Vue.js 3, please take a look at choose-whatever-name

From that point, they would live their separate lives, with distinct issues, features, bugfixes and so on.

dagnelies avatar Oct 20 '22 14:10 dagnelies

I might release it, but someone must test the PR

jtommy avatar Oct 20 '22 15:10 jtommy

@dword-design @kaangokdemir @dagnelies @jtommy Thanks a lot for your attentions.

@dagnelies

Since this vue3 fork is incompatible with vue2 and vice versa, it might even make sense to keep it as a separate project. Separate npm package name, separate tickets, etc.

I found it very difficult to make my fork compatible with Vue2. So it makes sense to me, having a separate project.

@jtommy

I might release it, but someone must test the PR

I would like to port *.spec.js files when I have time.

kikuomax avatar Oct 20 '22 16:10 kikuomax

I have completely rebased my fork from v0.9.21. Please refer to updated README, CHANGELOG, and MIGRATION-NOTE for more details.

@holtolee As I could not reproduce your issues, the problems may persist.

@kde99 My fork is now based on v0.9.21.

I just rebased my almost 2 years old wip branch (migrating vue 2 to vue 3 + Typescript and vue-cli to Vite) I will keep you in touch and if we can make this PR released it would be awesome 🚀

Thanks again @kikuomax and @jtommy for your work ✌🏻

holtolee avatar Nov 09 '22 12:11 holtolee

I just rebased my almost 2 years old wip branch (migrating vue 2 to vue 3 + Typescript and vue-cli to Vite) I will keep you in touch and if we can make this PR released it would be awesome rocket

Thanks again @kikuomax and @jtommy for your work ✌🏻

My only issues remaining are not Buefy related and i am almost done migrating my project.

(261 files +21024 -11756)

Search results in the project for buefy components <b- : 495 in 115 files.

The work of @kikuomax seems pretty stable.

holtolee avatar Nov 28 '22 07:11 holtolee

@kikuomax thanks for your hard work - this is really exciting.

Since this vue3 fork is incompatible with vue2 and vice versa, it might even make sense to keep it as a separate project. Separate npm package name, separate tickets, etc.

I found it very difficult to make my fork compatible with Vue2. So it makes sense to me, having a separate project.

Could we maybe merge it into the Buefy repo but named something like "buefy-3" similar to what is happening over in Oruga?

so something like:

/
├─ packages/
│  ├─ buefy/
│  ├─ buefy-3/

Oruga uses "-next" to denote the Vue3 version of Oruga but I think "-3" makes more sense as the meaning of "next" changes depending on what the current version is.

kyle-jennings avatar Dec 08 '22 02:12 kyle-jennings

@jtommy I have successfully migrated two projects over to this "Buefy 3" repo and 99% of things works

I discovered 2 bugs which I have PR'd over into kikuomax to follow the fork chain, the PR can been seen here: https://github.com/kikuomax/buefy/pull/4.

It looks like @kikuomax has been inactive on Github for several months (and their Buefy repo has not been touched since July 2022) so I am not sure how to keep this ball rolling. Should we use this thread to come up with a strategy to release this change? Maybe identify contributors who would take on specified tasks?

To get us started I think we need to iron out some details:

  1. Do we want to roll this Vue 3 version into this current repo - and perhaps restructure it to mimic Oruga's dual package setup?
  2. Should this Vue 3 version be it's own repo and NPM package?
  3. Should work on the Vue 2 version halt while the Vue 3 version is rolled in or released and brought into parity with the Vue 2 version?
  4. Call for volunteers to tackle any tasks needed? I can help ofcourse, but I haven't ever contributed to a public project so I would need to take some time to adopt some contribution etiquette. Will do my part to get this rolled in :)

kyle-jennings avatar Jan 25 '23 12:01 kyle-jennings

I too have migrated a project to this version and didn't run into any problems apart from some erroneous TypeScript definitions. I'm willing to help, although the entirety of my experience with Vue spans the back half of 2022 until now, so when it comes to framework experience I'm probably out of my depth. Don't mind getting into the weeds though.

ElteHupkes avatar Jan 25 '23 13:01 ElteHupkes

Published this to @dword-design/buefy in case someone wants to use it.

dword-design avatar Feb 28 '23 19:02 dword-design

Published this to @dword-design/buefy in case someone wants to use it.

Hi, I started to migrate a huge application from vue2 to vue3 using this package and it works very well. This is the first time I use Bueify, so I'm doing components by components.

I would like to get involved to make this fork sustainable, what are the missing steps?

  • convert the tests
  • publishing the packages for vue3
  • ...

Thanks for this work @kikuomax , @dword-design

Mathieu

messenjer avatar Apr 18 '23 09:04 messenjer

I might release it, but someone must test the PR

Any progress ? 👀

holtolee avatar May 23 '23 09:05 holtolee

Published this to @dword-design/buefy in case someone wants to use it.

Looks like this is based on what @kikuomax made? (https://github.com/kikuomax/buefy) can you give them a large shout out on the NPM page and update the repo link to https://github.com/kikuomax/buefy?

Maybe this will get enough traction at https://github.com/kikuomax/buefy so we can get some more updates rolled in, or some more contributors/co-owners to approve PRs

kyle-jennings avatar May 24 '23 19:05 kyle-jennings

@kyle-jennings done

dword-design avatar Jun 28 '23 17:06 dword-design

All development for Buefy Vue3 has been moved to ntohq/buefy-next. The goal of the ntohq fork is not to replace Buefy, but to separate the current version from the migration to Buefy Vue3. If you would like to help contribute join the official discords for Buefy and Buefy Vue3 Development ( Buefy Discord, ntohq discord). A Development plan will soon be released for what this migration means for both Buefy Vue2 and Buefy Vue3. If you have any questions pertaining to Buefy Vue3, please communicate them over the Buefy discord.

wesdevpro avatar Jul 14 '23 22:07 wesdevpro