-
Notifications
You must be signed in to change notification settings - Fork 601
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
RFC: Removal of @microsoft/fast-foundation
#6951
Comments
Is "community maintains foundation package on the FAST repo" a possible outcome of discussion, or is that out from the start? |
It is, we considered it as an option but ultimately we believe:
That said I'll reiterate that this package has been found to be extremely useful for certain groups of developers looking to quickly leverage some component logic, it's just hard to pinpoint an un-opinionated view on how that logic should work so we'd rather recuse ourselves and instead encourage others to pick up similar types of work, I think the concept has proved to be valuable and there is the potential for several projects to spring up from it. |
I was just about to start embedding the web components I think are being removed in a large new web application/hybrid-native project I'm building. I'm glad I came across this issue before I started. UnderstandingThe naming conventions and documentation however has left me confused as there seem to be references to (FAST) Foundation, Element, and Components. FAST Element is I think is alternative to options like Lit from Google or Stencil.js. Foundation I believe at this point is another name for the FAST web component library that uses FAST Element as building block. The web documentation is found at: https://www.fast.design/. There the web components seem to just be referred to as FAST Components, but the code and comments suggest that they are in fact, the FAST Foundation (web components). Mind the GapsI don't see how the library of components is not still a gap filler. They either provide functionality that is otherwise missing or often error-prone to build in an accessible way, and/or provide a consistency to a UX that is often missing in the native web browser. Having component/widget libraries from established respected companies is an important contribution to the greater good of the web. I've tried a number of component libraries (too many to count), and I'm disappointed how many: a) fail to provide a consistent dev platform, b) fail to create an accessible solution, and c) are used in major projects, d) allow customization/personalization, ... and bonus e) are for React only, rather than embracing an open web. There are only a small handful of options that solve all of these problems well. In fact, the number may be fewer than 5, especially those that have gained traction enough to be dependable. There seems to be a resurgence of interest (thankfully!) in providing core level components, rather than designs where "everything looks like Bootstrap" that was common for many years. It's disappointing that Microsoft seems to be stepping away from embracing providing these foundational components. Providing these components and a design system is something I'd expect Microsoft to do well (since I can trace my development back to VB3, 4, 5, 6, .NET, Avalon/WPF/Silverlight, XAML, ASP.NET, ...). Confusingly, the Microsoft Fluent UI components use FAST components, so this decision to drop the Foundation directly impacts the success of that project. SummaryI can only guess why this project may not be gaining the traction you'd imagined when it was started. I suspect much of it due to the existing pitch and documentation. The documentation is out of date as it references @microsoft/fast-components which is a deprecated library. As a former developer at a large software company (and I was responsible for approving 3rd party component libraries for 2000+ devs), that alone would have been enough to decline the request. 😀 To wrap up -- it feels more like this project needs a reboot to re-energize it rather than being dumped/graveyarded. As Microsoft creates the browser (Edge) I use 99% of the time on desktops and laptops, I'd argue the existence of this project (or rebooted as mentioned) is an important part of building for web and supporting the web ecosystem. Off to find another library. It's dang difficult to build a modern accessible web application still in 2024. I thought this would be a solved problem by now. |
As someone who is building/maintaining a design system built on top of FAST, this is a shocking decision to me. The reason FAST was picked as the foundation for our design system is the existence of the foundation library. It had all the controls one would need for a component library, we only had to re-style them, which allowed us to get up and running extremely quickly which was very valuable, so valuable that it made it worth it to go with Now the original RFC states that this is the core goal of the project now:
I consider it a huge gap in the platform that it does not have simple controls that all performant rich web experiences use, like tooltips, switches, stylable select, combobox etc. Is there somewhere where I can find the reasoning that explains why this is not a gap worth filling anymore? If not could you please tell me? I'm genuinely curious about this. Another thing I'm curious about, and I say this absolutely respectfully, curious about what the team's opinion is, why is having I tried to say everything above in a respectful way, if it sounded any other way I did not mean that, I'm truly just looking for answers to these questions. Thanks for any answers you can provide! |
I think you've partially hit on what we're trying to solve, we are in dire need of good resources and external projects built on In order to facilitate these goals, based on feedback, we will be merging in any relevant PRs into |
@janechu @chrisdholt are y'all willing to address the second question asked by @simonxabris reproduced as follows:
Having used fast-element extensively and lit only in passing, I would like to understand the differences more clearly as well. Also if there is a goal to grow the FAST community around fast-element, I expect that to be a common question worth having a clear message for. |
Short response for now (I’ve injured my hand so typing takes quite a bit of time currently. Without a doubt, this is a question which has been around since the beginning. I’m not sure it’s ever been shared but we did investigate Lit specifically before creating FAST. We also did a listening tour across Microsoft to identify needs. Ultimately, at that time, the core team felt the volume of asks and the changes required (some potentially fundamental) were too significant. This wasn’t about issues with Lit but the unique requirements of certain teams at Microsoft. One specific thing we needed and still have many teams relying on is support for MVVM, which is one reason for some of the API deltas. FE 2 has some added support here in directives, but they aren’t well documented. @janechu is working on documentation and we’ll get deeper as we go. There’s several emerging things we’d like to pursue and improve, and improvements coming from the web platform we’re advocating for so we can implement. I’ll echo what Jane has said around focusing the project, but I also will add that I’m hopeful folks from the community will take up the foundation work. As someone who initially advocated for its creation and being intimately involved in it over the years, there is a large part of myself struggling with releasing “control”. My day job has focused more around Fluent UI and the implementation there and development/contribution to Foundation has suffered. Ultimately, Foundation was/is a huge part of my OSS journey and I’m hopeful folks will improve it and take it beyond where we could. For various reasons, having folks outside the Microsoft organization own it from within isn’t a great path forward, which is why we’re making a call to interested folks. Much more than I intended to write, but I appreciate all the feedback and we are discussing it as it comes in. Forgive slow responses, typing with one hand, which I’m off to ice. :) |
@janechu @chrisdholt Thanks for providing some answers, much appreciated! Sadly we're a team of 3 engineers supporting 100+ frontend engineers with our design system, so the lack of resources on our side prevent us from picking up foundation officially, if there's traction for a community maintained version, we'll try to contribute as best we can. |
Totally understandable - I'm following up with some folks who have showed interest and we'll keep the community up to date on how things are tracking. |
I am definitely interested in taking on some derivative of fast-foundation myself, possibly as part of my regular job, but it'll be some time before I'm done with my current slate of large projects and can refocus on the design system. That said, it would probably be very different and redesigned from the ground up to split apart the template and design system tooling. It's likely that the adaptive-ui project will cover most of the design system portion so I would focus on the templates. In order to drive adoption and other contributors I think a framework agnostic approach would be beneficial, allowing the templates to be used in fast-element, lit, and maybe others. The templates and design system pieces are the most important to my team and I, fast-element itself is just an ergonomic mean to that end. I'm not sure that it will have any staying power after these pieces are removed, time will tell. |
Sorry for joining this discussion so late but it somehow went under my radar. I decided to use FAST as the underlying framework for building an enterprise level design system in the company I work in (https://explore.matrix42.design). I knew that it was a risky decision but ultimately I chose FAST over Lit because of the |
@DavidVollmers appreciate your feedback, we have some folks in the Discord and in this thread who are interested in picking up where we're leaving off for Ultimately, we view this as a win for the project, it has been stagnating for some time and this re-structuring is intended to invigorate it. I would ask our community to have some faith in where this is all going, we're working the most efficient way we can to achieve all of our goals (and hopefully yours). |
@janechu What would be really helpful to make the decision which my team will have to do now (stay with FAST or move to something else), is to publish a roadmap or something similar so we can better understand what issues will be addressed when and especially what features are upcoming. In terms of |
We are currently in the middle of a big push to get v2 of |
…6996) # Pull Request ## 📖 Description This change removes: - `@microsoft/fast-foundation` - the most recent version can be found on branch `archives/fast-foundation-3` - `@microsoft/fast-web-utilities` ### 🎫 Issues Closes #6951 and closes #6954 ## ✅ Checklist ### General <!--- Review the list and put an x in the boxes that apply. --> - [ ] I have included a change request file using `$ yarn change` - [ ] I have added tests for my changes. - [x] I have tested my changes. - [ ] I have updated the project documentation to reflect my changes. - [x] I have read the [CONTRIBUTING](https://github.com/microsoft/fast/blob/master/CONTRIBUTING.md) documentation and followed the [standards](https://github.com/microsoft/fast/blob/master/CODE_OF_CONDUCT.md#our-standards) for this project. ## ⏭ Next Steps - File an issue to remove dependency on `@microsoft/fast-foundation` in `@microsoft/fast-ssr` for testing.
Removal of
@microsoft/fast-foundation
Reason for removal
This package does not fill what FAST considers a core goal of the project. The FAST project seeks to provide useful tools for creating components as a platform gap filler, and not creating the components themselves. Refer to the core goals in the project re-alignment issue.
It is noted that the package has proved to be useful and popular among consumers, so we're open to the adoption of the package by other interested parties.
The text was updated successfully, but these errors were encountered: