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

Feedback and Discussion on EOL Plan for Buefy (VueJs2) Support and Migration to Buefy (VueJs3, aka. Buefy-next) #3874

Open
wesdevpro opened this issue Aug 21, 2023 · 37 comments

Comments

@wesdevpro
Copy link
Member

wesdevpro commented Aug 21, 2023

Description

We are working to finalize the process for phasing out Buefy's support for VueJS 2 while also preparing for a seamless transition for Buefy to support VueJS 3. This issue serves as a platform where developers are encouraged to contribute their insights, suggestions, and concerns about the entirety of this migration.

Frame of Reference(Our Mindset)

Our Goal

Requirments

Timeline

@kenneth-fossen
Copy link

Do I understand this correctly that the plan is to make Buefy work on VueJS3? If so, what is the timeframe for this?
I would love to see this happen 😍

@wesdevpro
Copy link
Member Author

Do I understand this correctly that the plan is to make Buefy work on VueJS3? If so, what is the timeframe for this? I would love to see this happen 😍

That is the goal of this Issue 😎 All development for moving Buefy to VueJS3 is at ntohq/buefy-next Once we finally have a RC we will move all the development for migrating to VueJS3 back here at buefy/buefy

@jamesfyp
Copy link

jamesfyp commented Oct 7, 2023

This is a very, very good news, because vue2 is out of support end of this year, pls do it ASAP, and thank you very much!!!!!!!
image

@wesdevpro
Copy link
Member Author

wesdevpro commented Oct 7, 2023

do it ASAP, and thank you very much

Because vue2 will still be available to use and you can still retrieve vue2 from package managers and CDNs (even after the end of support date), I am not in a huge rush to complete Buefy v3 by the end of support date. However, it is in progress and our goal to complete the migration to vue3 ASAP 😃 You can see all the changes, as mentioned above, at this link https://github.com/ntohq/buefy-next. We have started publishing beta versions! Therefore, as we migrate you, can migrate along with us! This will help us address any issues we missed. Thank you for your response!

@grantmcconnaughey
Copy link

So happy to see this effort is taking place. 😭 If you all need testers then I'd be happy to help. I've been stuck on Vue 2/Nuxt 2 because it would be such an enormous project to switch away from Buefy. So I'd love to test out the Buefy/Vue 3 integration and provide feedback when we're finally ready to upgrade to Vue 3, which should be in the next few months.

@wesdevpro
Copy link
Member Author

So happy to see this effort is taking place. 😭 If you all need testers then I'd be happy to help. I've been stuck on Vue 2/Nuxt 2 because it would be such an enormous project to switch away from Buefy. So I'd love to test out the Buefy/Vue 3 integration and provide feedback when we're finally ready to upgrade to Vue 3, which should be in the next few months.

We would love to have you guys test out the framework. Feel free to attempt to use Buefy with v3 setup. I believe however the current plugin (nuxt-buefy) will not currently work with buefy-next (Buefy VueJs 3). If you need any help please let me know 😄 Thanks

@oriolgm
Copy link

oriolgm commented Oct 13, 2023

Hi! very happy to see your attempt to support vue 3. Iv'e seen in your fork that vue is locked to v3.

Just a question, it would be a possibility to make components compatible also with Vue 2? Or at least compatible with 2.7 with composition-api.

I mean, if there is a complex project using Vue 2 heavily using buefy components, the migration itself to Vue 3 could be hard to do (also vue-router, other packages..) , so it would be easier to migrate and test the buefy version previous the Vue update.

Thanks!

@wesdevpro
Copy link
Member Author

wesdevpro commented Oct 13, 2023

Just a question, it would be a possibility to make components compatible also with Vue 2? Or at least compatible with 2.7 with composition-api.

Hello, @oriolgm ! Glad to hear it 😄 That is correct. I assume you are worried about the plan for compatibility with vue2 and maybe the state of your current vue2 projects. Migrating Buefy to vue3 will cause some vue2 projects to break.

I am always open to help from the community to do something like this. However, in light of the fact that vue2 is reaching it's EOL in Late December and to mitigate the weight of the technical debt we have already freely obtained with migrating to vue3, we as the dev team of buefy currently do not plan to make buefy-next (Buefy@v3.x.x) compatible with vue2. There may also be some changes that we plan to make or features we want to improve that may break this opportunity to keep vue@^2.7.x and later combatable with Buefy@v3.x.x.

My current plan is to keep fixing major issues in Buefy vue2 until we have our first release candidate for buefy-next (Hopefully some time in December). We will not unpublish any Buefy vue2 packages from NPM which will allow you to use the latest version of Buefy vue2.

@kikuomax
Copy link
Collaborator

@oriolgm Thanks for your comments!

Just a question, it would be a possibility to make components compatible also with Vue 2? Or at least compatible with 2.7 with composition-api.

From my experience of porting Buefy from Vue 2 to 3, we would have to have a lot of duplicate code in a single library to be compatible with both Vue 2 and 3. Some features had to be implemented in completely different ways from Vue 2. I think to maintain separate Buefy versions will be more realistic.

@wesdevpro
Copy link
Member Author

@Artles777 please create a GitHub Issue regarding this feature request. Thank you!

@kyle-jennings
Copy link

kyle-jennings commented Nov 1, 2023

Just so I'm clear, is the Buefy Next repo forked from kikuomax's Buefy Vue 3 repo?

My team built our entire app with kikuomax's repo (with some minor changes and bug fixes) but we would LOVE to migrate over to a more officially maintained repo.

I ask because I see some discrepancies between the repos but it looks like kikuomax is actively contributing to Buefy Next:

kikuomax's repo: Missing the tab index prop that was added the the Vue 2 repo recently:
https://github.com/kikuomax/buefy/blob/vue-3/src/components/dropdown/Dropdown.vue#L129-L132

Buefy Next: Has the tab index change:
https://github.com/ntohq/buefy-next/blob/main/src/components/dropdown/Dropdown.vue#L132-L136

I am assuming the discrepancy is due to @kikuomax 's repo being updated with the latest upstream changes

@kikuomax
Copy link
Collaborator

kikuomax commented Nov 2, 2023

@kyle-jennings The dev and main branches of the Buefy-next repo were not forked from my repo but departed from the commit b6233b9 and rebased all the commits I made in my repo on it. The commit b6233b9 is several commits ahead of the commit ac7d4e8 (tag v0.9.21) where my repo departed from. That's why you see some features&fixes missing in my repo but are in the Buefy-next repo.

I won't update my repo any longer but will contribute to the Buefy-next repo.

@kyle-jennings
Copy link

kyle-jennings commented Nov 2, 2023

@kikuomax thanks for the explanation. I installed Buefy Next into our project and everything more or less is working. I'll mosey on over to that repo to report bugs and such.

Also just wanted to say, thanks for much for all this work everyone - this is an exciting project. So happy to stay with Buefy :)

@buefy buefy deleted a comment from Artles777 Nov 2, 2023
@kikuomax
Copy link
Collaborator

What I am doing and planning to do:

  1. Solve as many issues in Buefy V2 Maintenance Board as possible by the end of the year (Dec 31, 2023)
  2. Port unmerged commits from Buefy (for Vue2) to Buefy Next (Buefy for Vue3) from the beginning of the next year (Jan 1, 2024)

Remaining issues after Step 1 will be tracked in Buefy Next.

@kikuomax
Copy link
Collaborator

kikuomax commented Jan 9, 2024

  1. Port unmerged commits from Buefy (for Vue2) to Buefy Next (Buefy for Vue3) from the beginning of the next year (Jan 1, 2024)

I am working on this, and you can see the progress at ntohq#159.

@kikuomax
Copy link
Collaborator

kikuomax commented Jan 9, 2024

My thoughts on maintenance of Buefy for Vue2:

  • Focus on Buefy Next (Buefy for Vue3) after v0.9.28 is released
  • Accept PRs to Buefy for Vue2 for bug fixes but no new features
  • Keep releasing Buefy for Vue2 if there are any updates on it as v0.9.29, v0.9.30, and so on

@wesdevpro
Copy link
Member Author

wesdevpro commented Jan 9, 2024

  • Accept PRs to Buefy for Vue2 for bug fixes but no new features
  • Keep releasing Buefy for Vue2 if there are any updates on it as v0.9.29, v0.9.30, and so on

@kikuomax I agree.

I was thinking when we pull the changes from Buefy-next, we could potentially migrate(fork) the Buefy V2 code into another repo in the Buefy Org (we could call it Buefy Vue2). And that repo would still post to npm as Buefy on a new release which a new release would still be triggered by a PR to main.

@kikuomax
Copy link
Collaborator

I was thinking when we pull the changes from Buefy-next, we could potentially migrate(fork) the Buefy V2 code into another repo in the Buefy Org (we could call it Buefy Vue2). And that repo would still post to npm as Buefy on a new release which a new release would still be triggered by a PR to main.

@wesdevpro I found one benefit of having Buefy for Vue2 in the same repo with Buefy for Vue3. Issues in Buefy for Vue2 still may be also issues in Buefy for Vue3, so sharing the issue tracker may be good.

@wesdevpro
Copy link
Member Author

I was thinking when we pull the changes from Buefy-next, we could potentially migrate(fork) the Buefy V2 code into another repo in the Buefy Org (we could call it Buefy Vue2). And that repo would still post to npm as Buefy on a new release which a new release would still be triggered by a PR to main.

@wesdevpro I found one benefit of having Buefy for Vue2 in the same repo with Buefy for Vue3. Issues in Buefy for Vue2 still may be also issues in Buefy for Vue3, so sharing the issue tracker may be good.

That's true however we will need to come up with a way to make which issue are for which project. Maybe we could create tags that are project specific?

@wesdevpro
Copy link
Member Author

wesdevpro commented Jan 10, 2024

Another potential concern with sharing the Buefy repo is that now you have a complex git history and releases would work much differently

@kikuomax
Copy link
Collaborator

kikuomax commented Jan 10, 2024

@wesdevpro

That's true however we will need to come up with a way to make which issue are for which project. Maybe we could create tags that are project specific?

I supposed tags. Maybe Vue2 and Vue3.

Another potential concern with sharing the Buefy repo is that now you have a complex git history and releases would work much differently

I think complexity of our administration could be mitigated by automation; i.e., GitHub Actions.

@kikuomax
Copy link
Collaborator

@wesdevpro I thought sharing issues between Buefy for Vue2 and Vue3 may be beneficial, though, mixing issues for different release lines might confuse contributors and users.

@wesdevpro
Copy link
Member Author

@kikuomax we could make some sort of tooling that would fetch the appropriate information in the correct order and manipulate it. However, I believe that would be too much complexity for both us and the Open Software Community.

@grantmcconnaughey
Copy link

grantmcconnaughey commented Jan 10, 2024

Hey guys, just wanted to throw out one other idea:

Since Vue.js 2 is officially end of life (as of December 31st, 2023), would it make more sense to completely stop all updates to the Vue 2 version of Buefy? Stop accepting all changes (including even bug fixes) and keep it all in this same repo, perhaps under a vue2-specific branch. That way development can continue on the main branch, there is no need to set up separate repos or tooling, but if a user still wants to see the latest Vue 2 version then they can view that Vue 2 branch.

With Vue 2 being end of its life I don't think there should be any expectations of any further Vue 2 updates for Buefy, including even bug fixes, and I would hate for it to distract from or slow down getting the Vue 3 version of Buefy out, which I think at this point is critical due to Vue 2 officially being EOL.

Just my two cents! I appreciate what you all are doing here and I can't wait to help test out the Vue 3 version on my startup, Postpone.

@wesdevpro
Copy link
Member Author

wesdevpro commented Jan 11, 2024

Hey guys, just wanted to throw out one other idea:

Since Vue.js 2 is officially end of life (as of December 31st, 2023), would it make more sense to completely stop all updates to the Vue 2 version of Buefy? As in stop accepting all changes (including even bug fixes) and keep it all in this same repo, perhaps under a vue2-specific branch. That way development can continue on the main branch, there is no need to set up separate repos or tooling, but if a user still wants to see the latest Vue 2 version then they can view that Vue 2 branch.

With Vue 2 being at the end of its life I don't think there should be any expectations of any further Vue 2 updates for Buefy, including even bug fixes, and I would hate for it to distract from or slow down getting the Vue 3 version of Buefy out, which I think at this point is critical due to Vue 2 officially being EOL.

Just my two cents! I appreciate what you all are doing here and I can't wait to help test out the Vue 3 version on my startup, Postpone.

@grantmcconnaughey, your startup website is outstanding! Great work🚀

Given that most of the obstacles that prevent developers from moving to Vue3 will eventually be resolved, I firmly believe that the development by the Official Buefy Team (myself and Kikuo) needs to stop at some point(@kikuomax maybe after the next bump in the version of Buefy Vue2?).

I like the idea of simply creating a new branch of main to keep the Vue2 version of Buefy around. We could still allow the community to continue to develop the Vue2 version (mostly bug fixes). We would simply use prefixing on any branches related to the Vue2 version, and we can come up with a way of separating PRs and issues. What I also like about this idea is the fact that we can still keep automation up and running and git history won't be affected

@kikuomax, what do you think about this idea?

@kikuomax
Copy link
Collaborator

@grantmcconnaughey @wesdevpro
I believe the priority of most of us playing around Buefy is Vue3 support. So I like the idea of fully focusing on Buefy for Vue3.

Given that most of the obstacles that prevent developers from moving to Vue3 will eventually be resolved, I firmly believe that the development by the Official Buefy Team (myself and Kikuo) needs to stop at some point(@kikuomax maybe after the next bump in the version of Buefy Vue2?).

The next version will be v0.9.28 and it would be the last version for Vue 2 released from the Official Buefy Team. After that:

  • We would create a branch for Vue2 and ask anyone who wants Vue2 support to fork the branch
  • The issue tracker and PR would be dedicated to Buefy for Vue3
    • In case issues or PRs specific to Vue2 would be made, we would label (Vue2?) and close them

@wesdevpro
Copy link
Member Author

wesdevpro commented Jan 11, 2024

@grantmcconnaughey @wesdevpro I believe the priority of most of us playing around Buefy is Vue3 support. So I like the idea of fully focusing on Buefy for Vue3.

Given that most of the obstacles that prevent developers from moving to Vue3 will eventually be resolved, I firmly believe that the development by the Official Buefy Team (myself and Kikuo) needs to stop at some point(@kikuomax maybe after the next bump in the version of Buefy Vue2?).

The next version will be v0.9.28 and it would be the last version for Vue 2 released from the Official Buefy Team. After that:

  • We would create a branch for Vue2 and ask anyone who wants Vue2 support to fork the branch

  • The issue tracker and PR would be dedicated to Buefy for Vue3

    • In case issues or PRs specific to Vue2 would be made, we would label (Vue2?) and close them

@kikuomax this sounds like a great plan to me!

@mgd722
Copy link

mgd722 commented Jan 26, 2024

For those of us who haven't been following along the whole time, to confirm:

  • we can ignore any other "non-official" repos if we don't need vue3 support right now
  • there will be no further support for vue2 after v0.9.28
  • "official" vue3 support will be released on buefy/master (date TBD)

Is that an accurate summary?

I don't need vue3 support right now, but in a few months I'll be migrating an app and staying tuned! Hopefully we'll be able to stay with buefy, because we've really loved it so far. Thanks for stepping up to maintain!

@wesdevpro
Copy link
Member Author

wesdevpro commented Jan 26, 2024

For those of us who haven't been following along the whole time, to confirm:

  • we can ignore any other "non-official" repos if we don't need vue3 support right now

  • there will be no further support for vue2 after v0.9.28

  • "official" vue3 support will be released on buefy/master (date TBD)

Is that an accurate summary?

I don't need vue3 support right now, but in a few months I'll be migrating an app and staying tuned! Hopefully we'll be able to stay with buefy, because we've really loved it so far. Thanks for stepping up to maintain!

That is correct. We may make a way for the community to fix maintain Buefy Vue2. However, all the details have yet to be determined.

Basically Buefy Vue2 would potentially live between v0.9.28 to v0.X.X.

If you are interested in Vue3 support, I recommend you start slowly migrating with @ntohq/buefy-next. All of our changes are there and using it early to slowly migrate your projects will help @kikuomax and I to find and squash any serious and or hidden bugs.

Thank you for summarizing the above details!

@grantmcconnaughey
Copy link

Thanks for the update, @wesdevpro. How would you define the current state of the buefy-next repo? Is it ready for testing?

@wesdevpro
Copy link
Member Author

wesdevpro commented Jan 26, 2024

Thanks for the update, @wesdevpro. How would you define the current state of the buefy-next repo? Is it ready for testing?

In my opinion, it seems reasonable to begin migrating towards using Buefy-next. However, I don't believe it would be suitable for production until we have moved all the code from @ntohq/buefy-next to @buefy/buefy. It's possible that we may encounter some bugs with the Buefy-next releases, but we will only discover them as more people use it.

@didaquis
Copy link

didaquis commented Apr 1, 2024

Would it be possible to know what state we are in on the roadmap for Buefy next?

@wesdevpro
Copy link
Member Author

Would it be possible to know what state we are in on the roadmap for Buefy next?

When you mean road map are you referring to this project?

https://github.com/orgs/ntohq/projects/12

@didaquis
Copy link

didaquis commented Apr 3, 2024

When you mean road map are you referring to this project?

Well.. I'm seeing that the last release of Buefy-next was in September. https://github.com/ntohq/buefy-next/releases

Is there any estimate of when there will be released the v0.1.3? https://github.com/ntohq/buefy-next/milestones

Thank you so much for your work!

@wesdevpro
Copy link
Member Author

wesdevpro commented Apr 15, 2024

ohq/buefy-next/releases

Hey @didaquis Buefy-next v0.1.3 has now been official released!

To answer your question, @kikuomax and I both have limited time to work on Buefy-next due our important life responsibilities. These "restrictions" often result in difficulty in planning out the road map and slow development progress for Buefy-next.

As a solution to this problem we went ahead and created developer packages. These packages are published on the GitHub NPM registry to bring you the latest changes we have made to the dev branch. This will allow you and others to provide feedback as we both migrate our projects (including Buefy-next) to Vue3. You can find more details on these packages in the Buefy-next README

You can also use the milestones for each version to help you determine how much farther we have until we release the next release.

Please let me know if you have any further question. Thanks

@didaquis
Copy link

Thanks for your answer!

@wesdevpro
Copy link
Member Author

Thanks for your answer!

No problem!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants