getModalizer backward incompatibility issue
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 165
- Forks
- 42
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 9
Description
Our product is micro-frontend alike architecture, there's a host UI project and several guest UI projects that are all built and shipped differently, and all the dependencies are not shared. We discovered an issue during the upgrade of FluentUI v9, which is caused by different versions of tabster in host UI side and guest UI side.
A minimal repro could be found here: https://github.com/KagamiChan/multiple-fluentui-repro
I'm not using codesandbox because I need to use yarn resolutions to lock tabster version, please let me know if you prefer a codesandbox example.
tabster versions:
Host UI: 4.2.0
Guest UI: 4.6.0
main difference for this issue: tabster 4.3.0 introduces queue for initialization: #262
Steps to repro:
- click the button to mount guest UI
- error throws like below
what happened:
- host UI is mounted, and tabster core (v4.2.0) is initialized, while modalizer is not
- guest UI trying to mount, FluentUI tries to initialize modalizer, the
getModalizerfunction andModalizerAPIclass is from guest UI (v4.6.0) so it calls tabster isntance'squeueInitfunction - tabster instance is initialized by host UI (v4.2.0) and does not have
queueInitfunction, the exception throws
This issue is blocking us from the Fluent UI upgrade because we have to upgrade host UI everywhere but that would be difficult (our product is not served on web but is embedded), could you please help take a look and help us unblock?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the linked multiple-fluentui-repro and follow the mount sequence described in the issue. Inspect getModalizer, ModalizerAPI, and queueInit across the reported tabster versions; the work is done when the host at 4.2.0 and guest at 4.6.0 can mount without the reported exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100