vscode-webview-ui-toolkit icon indicating copy to clipboard operation
vscode-webview-ui-toolkit copied to clipboard

Update the UI Toolkit to use v2+ of @microsoft/fast-element and v3+ of @microsoft/fast-foundation

Open guiherzog opened this issue 2 years ago • 19 comments

Feature request

Hi, we had a discussion about some issues on @microsoft/fast and they have been addressed on @microsoft/fast-element v2+ and @microsoft/fast-foundation v3+.

They are still in beta, but I would love to know if are you planning on updating this lib's dependencies to use those versions? If yes, when are you planning on doing that? A rough idea / estimate would already help.

Use case

We want to use this library to build internal VS Code extensions at Google, however, since some security concerns were raised, we cannot use until it gets updated.

References

The issue we were discussing was this one: https://github.com/microsoft/fast/pull/6456 Thank you!

guiherzog avatar Jan 13 '23 10:01 guiherzog

Hey @guiherzog! Thanks for calling this out (and linking the associated FAST issue)!

I haven't been keeping a close eye on FAST updates recently but I am happy to do some investigating on our end and report back

hawkticehurst avatar Jan 13 '23 18:01 hawkticehurst

That would be great, thanks!

guiherzog avatar Jan 16 '23 10:01 guiherzog

Hi all,

I hope you are doing well, do you have any updates in whether this is going to be done or not? No rush, of course.

Thanks :)

guiherzog avatar Jan 26 '23 12:01 guiherzog

Hey @guiherzog!

Apologies for the slowness in response, I feel fairly confident that we will indeed adopt the new changes from FAST!

I'm just waiting to have a meeting early next week with the FAST folks to talk about more of the details and hopefully get a better sense of potential timelines –– so I should be able to give final response by next week :)

hawkticehurst avatar Jan 26 '23 22:01 hawkticehurst

Hey @guiherzog, we will be moving forward with this work!

We'll be working with the FAST folks to make this happen/sort out any remaining details that come up, but at this point, we have the goal of completing this by end of June '23

--

P.S. as a heads up, I'll be out of the office starting at the end of this week until Feb 21 so I'll be unresponsive for a bit, but will pick this up once I'm back

hawkticehurst avatar Feb 01 '23 00:02 hawkticehurst

Hi @hawkticehurst, This is great news, thank you for the update!

June '23 seems a bit far away. Do you mind elaborating on the timeline, if possible? How much work do you think that would be, a few weeks?

Thanks again!

guiherzog avatar Feb 01 '23 13:02 guiherzog

Of course!

Also yes, totally reasonable question. I'd also wager the work should only take a handful of weeks in total, but June '23 is more a reflection of a reality where both the toolkit and FAST teams are really tightly resourced at this time.

On the toolkit side, myself and one other person currently split our time between this and a handful of other projects, so we wanted to make sure the timeline acknowledged that we won't always be able to work on the toolkit during the next few months.

We also wanted to leave some room for the FAST team to get their releases closer to stability (which are currently in alpha/beta states) too. And finally, we wanted to leave some buffer room for testing, updating docs, and generally leaving room for any potential snafus since these updates will cause a breaking change/new major release for the toolkit.

My hope is that we'll publish a beta or vnext release in the lead-up to June, so you may be able to start taking advantage of these changes sooner than later. And of course, if we find ourselves with more time than expected to work on this and development goes smoothly I'll happily release these changes early –– but June '23 is what we considered to be a safe/realistic timeline given all the various constraints.

Hope that all makes sense and let me know if you have any more questions :)

hawkticehurst avatar Feb 01 '23 18:02 hawkticehurst

This is a very thoughtful answer. I completely understand it, thanks a lot for taking the time to write it.

When you get to work on it, I am happy to send a few PRs with some of the work, if that helps. Of course, I am not as familiar with the lib as you are, but I can still offload some work from you.

Cheers, Gui

guiherzog avatar Feb 02 '23 12:02 guiherzog

You're welcome!

Also thank you for the offer! If/when we create a vnext release for these changes, getting some early usage and feedback from you all would probably be the most helpful thing you could provide!

Beyond that, if I think of anything else I'll let you know :)

hawkticehurst avatar Feb 02 '23 20:02 hawkticehurst

Sounds great, Thanks, please let me know. :)

guiherzog avatar Feb 09 '23 18:02 guiherzog

Hey @guiherzog, thought I'd give a quick status check-in.

I created a vnext branch a few weeks ago and finished up a lot of the foundational/infrastructural changes that were a prerequisite for updating to the new versions of FAST.

I'm now just waiting on some help from the FAST team to update everything since the new FAST APIs aren't formally documented yet. I know they're wicked busy prepping for these new releases so I'm not quite sure when the update will happen but still feeling mostly confident about the end-of-June timeline I proposed.

I'll keep you updated as work progresses or if anything changes :)

hawkticehurst avatar May 10 '23 20:05 hawkticehurst

That's great to hear, looking forward to it and thanks for taking the time to write the update!

guiherzog avatar May 11 '23 08:05 guiherzog

Looking forward to the updates as I've noticed an issue when trying to write a vitest test in a webview-ui layer using @microsoft/fast-react-wrapper and it is throwing an error due to the fact that the version of @microsoft/fast-react-wrapper package tied to the latest version of vscode-webview-ui-toolkit is not of type: module. I've checked their latest version and they have changed it to type: module which fixed this issue.

`SyntaxError: Named export 'provideReactWrapper' not found. The requested module '@microsoft/fast-react-wrapper' is a CommonJS module, which may not support all module.exports as named exports. CommonJS modules can always be imported via the default export, for example using:

import pkg from '@microsoft/fast-react-wrapper'; const { provideReactWrapper } = pkg;`

I have verified this fixes the problem by manually changing the package.json in node_modules of @microsoft/fast-react-wrapper to type: module. Looking forward to the version bump just for this.

I'm going to try a module resolution for now.

MarvDann avatar Jul 02 '23 10:07 MarvDann

Hi all! Back with another update.

So as of last week, someone from the FAST team started working on the update! 🥳

I was hoping they would have it finished by the end of this week so I could publish a beta version of the package but it seems like that likely won't happen. I'll be on vacation starting next week through the end of July and then will have a few high-priority tasks from another project to complete once I'm back so I'm going to set a new ETA of mid-September.

To be extra clear, this ETA represents publishing a beta V2 toolkit release since the FAST packages we're updating to are still in alpha/beta stages and I don't want to release a stable V2 until those underlying FAST packages are stable. I, unfortunately, don't have a strong indication from the team of when stability will be reached but I'll make sure to pass along an update the second I do have a more concrete timeline.

So in summary:

  • Beta V2 Toolkit Release: Mid-September
  • Stable V2 Toolkit Release: TBD based on FAST

Thank you for your continued patience and as always feel free to toss any questions/comments my way :)

p.s. hope you're all having a great summer

hawkticehurst avatar Jul 07 '23 06:07 hawkticehurst

Thanks for the detailed update once again! No worries about the new ETA, it's already really great that this is a WIP.

Happy vacation!

guiherzog avatar Jul 14 '23 12:07 guiherzog

Howdy again!

Alas, there's been no update/progress from the FAST team on this issue 😕. As a result, I think I'll unfortunately just have to set a TBD date on all work regarding a vnext release until I learn more.

In light of that, however, I think I'll be pivoting to update our current FAST dependencies to the latest stable versions and resolving any bugs/feature requests I can within that restriction.

I'll keep everyone updated as I learn more. Per usual, if there are any questions/concerns I'm happy to discuss them here.

hawkticehurst avatar Oct 10 '23 21:10 hawkticehurst

Happy vacation!

Thank you, it was a lovely one 😊 Hope you had a wonderful summer as well!

hawkticehurst avatar Oct 10 '23 21:10 hawkticehurst

No problem at all! Thanks for the update.

guiherzog avatar Oct 11 '23 13:10 guiherzog

Howdy, still no updates on vnext work, but I did want to give a heads up that our next minor release (v1.4.0) will include bumps to all the fast dependencies to their latest stable releases.

hawkticehurst avatar Dec 06 '23 23:12 hawkticehurst

Hi all,

Back with a final update: I'm so sorry to say that the toolkit is being deprecated and all active development will be coming to a close.

There was an announcement last week where you can learn more details and leave any questions or comments you may have.

Beyond that, thank you so much filing this issue and apologies for never getting around to addressing it. It means a lot that you contributed to the improvement of this project. I wish you all the best in your future VS Code extension endeavors!

hawkticehurst avatar Aug 08 '24 21:08 hawkticehurst

That's unfortunate to hear, but thank you for your timely and regular updates and your hard work implementing the library. I hope we can come together as a community to keep parts of it or a similar project alive.

I wish you all the best! :)

guiherzog avatar Aug 13 '24 08:08 guiherzog

Yeah definitely a sad conclusion to everything, but you're very welcome! Also yes, based on the discussions going on in the announcement thread I'm feeling hopeful that another project will be able to take the place of the toolkit

Thanks and wish you all the best as well! :)

hawkticehurst avatar Aug 13 '24 18:08 hawkticehurst