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

v3: roadmap to release #4409

Open
13 of 27 tasks
layershifter opened this issue Dec 13, 2022 · 26 comments
Open
13 of 27 tasks

v3: roadmap to release #4409

layershifter opened this issue Dec 13, 2022 · 26 comments

Comments

@layershifter
Copy link
Member

layershifter commented Dec 13, 2022

This PR tracks work for Semantic UI React v3 πŸŽ‰

Pre beta-0 βœ…

  • chore: replace ta-scripts with release-it

For beta-0 βœ…

Post beta-0 βœ…

For beta-2 βœ…

For beta-3

For RC

  • chore: integrate monosize
  • chore: add bundle size fixtures for all components
  • chore: remove dependency on lodash
  • chore: deprecate "dot-syntax"
    • add warnings
    • add a codemod

After release

  • docs: update CodeSandbox templates
@vinodhrajamuralidharan
Copy link

@layershifter what is the status user.React.forwardRef PR status? I see it is still in open

@layershifter
Copy link
Member Author

@vinodhrajamuralidharan I had a conversation with @levithomason about that PR. The agreement was that he will review it and then we can proceed. I am also waiting for that PR to be merged πŸ˜‰

@sunech
Copy link

sunech commented Feb 21, 2023

Is there any ETA on v3 progress @levithomason / @layershifter ?
There was such a great traction in December, so I started to get my hopes up for SUIR again 🀞 Would hate to see it stall again, with all the great work that has been put in to it πŸ™

@layershifter
Copy link
Member Author

3.0.0-beta.0 is out πŸŽ‰ Please try and report issues πŸ™

@DreierF
Copy link

DreierF commented Mar 19, 2023

Thanks a lot @layershifter for the effort!
I didn't run into any issues yet with the beta besides the probably expected Typescript issues such as https://stackblitz.com/edit/react-ts-ejdyij?file=App.tsx.

@sunech
Copy link

sunech commented Jun 16, 2023

Is there anything further that we can help test, in order to proceed with the v3 release?

@tourman
Copy link
Contributor

tourman commented Jul 4, 2023

@layershifter could you please update the status? FYI @levithomason

  1. Is the roadmap todo list still relevant? If not, please refresh or update it. In particular, please add the links to the appropriate PRs, branches, etc.
  2. Please add more clear description for each point. E.g. what is Document breaking changes that is not checked?
  3. If you are not about to move on with the project, please initiate a process to pass it to the community. There are projects and people who are waiting for the new version trying to replace SUIR with a fork or something else.

@layershifter
Copy link
Member Author

@tourman

1/2. Yes, it's relevant. I will update it to be more precise and detailed πŸ‘
3. To be clear, I don't have time and motivation to maintain this project currently. If there people who are interested in move forward it would be great to hear back 🐱

@sunech
Copy link

sunech commented Jul 4, 2023

@layershifter thank you for all you great work so far, highly appreciate your effort!

This project is too good to just die, so I really hope someone wants to pick up from here.
Would love to support if I can, not experienced enough to contribute with code though.
If any freelancers are considering, I would gladly pay for some of your time to get the ball rolling on this again.

@layershifter
Copy link
Member Author

layershifter commented Jul 9, 2023

Thanks a lot @layershifter for the effort! I didn't run into any issues yet with the beta besides the probably expected Typescript issues such as https://stackblitz.com/edit/react-ts-ejdyij?file=App.tsx.

@DreierF it's indeed a bug, see #4432 for details.

Is there anything further that we can help test, in order to proceed with the v3 release?

@sunech @tourman I updated changelog and created migration guide (https://react.semantic-ui.com/migration-guide). I also updated issues that needs to be solved to release the next beta. Both issues contain action items and examples of changes needed to be done.

Help on these issues is much appreciated 🐱

@siarheipashkevich
Copy link

@layershifter thanks for your work on this package, do you have approximate time when you plan to release 3.0 version?

@layershifter
Copy link
Member Author

3.0.0-beta.2 is out πŸŽ‰

It fixes .defaultProps warnings, TypeScript typings & issues with appDir in Next.js.

Please try and report issues πŸ™

@fniessink
Copy link

I can report that after making a few small changes all frontend unit tests of Quality-time pass with 3.0.0-beta.2:

Test Suites: 85 passed, 85 total
Tests:       694 passed, 694 total
Snapshots:   0 total
Time:        67.751 s, estimated 70 s

Most changes were needed because popups would not appear at the right position with 3.0.0-beta.2. Adding a span or div around triggers solved this. I can't reproduce this issue on the Semantic UI React documentation site so I guess it's an issue on our side.

@dominikdosoudil
Copy link
Contributor

I don't think that it's worth creating a issue but the Sticky component didn't work after the upgrade. I needed to add scrollContext because there is a scrollable div instead of whole window. I am not sure if it's somehow breaking change or I had it wrong even before. I am just mentioning as a possible information to migration guide.

@Noahkoole
Copy link

I can report that after making a few small changes all frontend unit tests of Quality-time pass with 3.0.0-beta.2:

Test Suites: 85 passed, 85 total
Tests:       694 passed, 694 total
Snapshots:   0 total
Time:        67.751 s, estimated 70 s

Most changes were needed because popups would not appear at the right position with 3.0.0-beta.2. Adding a span or div around triggers solved this. I can't reproduce this issue on the Semantic UI React documentation site so I guess it's an issue on our side.

This seems to also be an issue on our side. Started with the transition to beta.2 and adding a span around it indeed fixed it

@atti187
Copy link
Contributor

atti187 commented Jun 26, 2024

@layershifter - I fixed the first task in the beta-3 release. Could you please add issues for the rest of tasks in the list and I'll see if I can have a go at some of them? Would be nice to get v3 out!

@BlenesiAron
Copy link

When is the v3 release scheduled for?

@triemstr
Copy link

triemstr commented Nov 10, 2024

When is the v3 release scheduled for?

Outside of the eventStack breaking change, it looks like it is just a lot of testing and documentation for the 3.0.0 beta 3 release. I'm not sure if @layershifter is taking pull requests, but maybe some in the community can assist.

@layershifter
Copy link
Member Author

layershifter commented Nov 11, 2024

I'm not sure if @layershifter is taking pull requests, but maybe some in the community can assist.

Yep, if somebody is brave enough to get rid of EventStack, I would be happy to review the changes.

@triemstr
Copy link

triemstr commented Nov 11, 2024

@layershifter Would you consider just going with the current state as version 3 and then working on the rest as version 4?

Only reason is that so many people are getting the props and other javascript warnings now and they don't know that the version 3 beta solves them. Running outdated on npm sources wouldn't show the version 3 beta. Might be a good way to keep the upgrades occurring so that a few more community members may jump in on EventStack.

Just a thought, unless someone is about there on EventStack.

@dominikdosoudil
Copy link
Contributor

@triemstr I am up to looking into the EventStack however there might be one more thing blocking the release that needs to be fixed: https://github.com/Semantic-Org/Semantic-UI-React/pull/4233/files#r1837715017

@dominikdosoudil
Copy link
Contributor

@layershifter So few past days, I've been looking into the EventStack in the Modal (and source code of the event-stack) and there is the thing "eventPool". As I think that I understand that it might help keeping multiple references to same callback (I imagine some independent unsubscribing), I can't really see the real purpose of it (or what and if something would break after removing it).

Could you possibly give me some hint or direction or use case where it's necessary?

@layershifter
Copy link
Member Author

layershifter commented Nov 22, 2024

@dominikdosoudil My previous attempt there #3734 (ignore it, just to provide a perspective). The EventStack pattern is so fundamentally broken that it’s not even worth explaining what it does πŸ’©. The eventPool prop should definitely be removed.

Let me break down the complexity behind this issue. The .contains() method is used to determine whether to close a Modal (for example) on an inside or outside click. This works well in straightforward cases like the following (e.g., clicking a button):

// JSX
<Modal>
  <Button />
</Modal>

// HTML
<body>
  <div class="ui modal">
    <button class="ui button"></button>
  </div>
</body>

However, it fails in nested scenarios. For example:

// JSX
<Modal>
  <Popup>
    <Button />
  </Popup>
</Modal>

// HTML
<body>
  <div class="ui modal">
  </div>
  <div class="ui popup">
    <button class="ui button"></button>
  </div>
</body>

In this case, the ui popup is not a child of ui modal, causing .contains() to break. A more detailed explanation of this issue can be found here: Virtual Parents.

To address this, I propose the following steps:

  1. Add a test case for this scenario (refer to cypress/integration/Sidebar/Sidebar.spec.js as an example).
  2. Implement the virtual parent approach, as seen in this PR: microsoft/fluentui#18148, and the related code: https://github.com/microsoft/fluentui/tree/master/packages/react-components/react-utilities/src/virtualParent).

Hope this helps.

@dominikdosoudil
Copy link
Contributor

dominikdosoudil commented Nov 22, 2024

@layershifter I see, the nesting is tricky. Converted #4504 to draft. I am gonna look into it and decide if i am "brave enough" after all. πŸ˜†

Thank you for explaining it.

@dominikdosoudil
Copy link
Contributor

I've explored the links you sent me and I must say that the prop injecting into element object seems pretty hacky to me. However it actually seems to be the most straightforward solution. I think that I might start working on porting that mechanism into SUIR about next week or so.

@layershifter
Copy link
Member Author

layershifter commented Nov 28, 2024

I've explored the links you sent me and I must say that the prop injecting into element object seems pretty hacky to me. However it actually seems to be the most straightforward solution. I think that I might start working on porting that mechanism into SUIR about next week or so.

@dominikdosoudil sounds great ❀️ FYI I explored other solutions (with React Context), however that one in Fluent worked so far the best and is the most straightforward. But in general, I agree with you 🐱

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

No branches or pull requests