-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Bump react-native-onyx to 2.0.130 #67381
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
Conversation
|
@hungvu193 Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
|
|
I'll test it today! |
|
@mountiny could you rerun the test jobs? I see a lot of weird fails here |
|
Restarted |
|
🤔 Still failing. I think you can try to merge main again @TMisiukiewicz |
|
Still happening. |
|
Yeah, Both of E/App and Onyx are using the same node version 20.19.3 |
|
Alright I found the issue, we are getting some infinite loops in the tests that use derived values with selectors. Investigating this now |
|
@TMisiukiewicz all tests were passed 🎉 From the code changes, I can see you created function for selector. I believe this is to avoid rerender since inline function will recreate the function every time the component rerenders so our memorized selector inside But I believe we have tons of other places that are using inline selector. Do you think we should fix it everywhere else? |
|
@hungvu193 I was able to spot the problem -
I also found out an issue when I work in the import mode with Jason state on web. The app hangs on splash screen, but I don't see anything looping in the logs. Whenever I try this on any account in regular mode, everything works fine 🤔 Could we run an adhoc build for further testing? |
|
yeah. Let's create a test build and see if we can find any issues. If we find any critical issue related to performance. I'm afraid that we should refactor all the inline selector in this PR. |
|
@mountiny Could you trigger a build here? 😄 |
|
I just noticed the infinite splash in imported mode happens also on main |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb Chromemchrome.moviOS: HybridAppios.moviOS: mWeb SafariSafari.movMacOS: Chrome / SafariChrome.movMacOS: DesktopDesktop.mov |
|
All yours @mountiny. Also, in order to take advantage of this onyx enhancement, we need to refactor all the current inline-selector into function. |
mountiny
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks! I think these should be quite safe to do in terms of regressions so maybe Callstack handled them in couple PRs and then we add ESLint rule so more inline selectors cannot be added? @TMisiukiewicz
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
@mountiny I already have a branch where I migrated ~70% of the unstable selectors to see if there's a perf impact of such change and I also have some WIP Eslint rule so it should be easy to achieve. I think I can simply cherry pick a couple of commits based on my current work replacing a couple of most commonly used selectors, and create separate PRs for them. The rest can be forced by the rule and migrated by Callstack or the community. Second way is finishing the work on the branch and going with all in one PR, but it sounds like a lot of testing effort. Wdyt? |
|
I am ok splitting this up to multiple PRs, just want to make sure we add a clear guidelines and explanation around this please |
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.1.89-1 🚀
|
|
🚀 Deployed to production by https://github.com/jasperhuangg in version: 9.1.89-21 🚀
|
Explanation of Change
Changelog:
Expensify/react-native-onyx#666
Expensify/react-native-onyx#654
Expensify/react-native-onyx#668
Fixed Issues
$ #67171
PROPOSAL:
Tests
Do not require testing:
Expensify/react-native-onyx#666
Expensify/react-native-onyx#654
For Expensify/react-native-onyx#668:
Offline tests
n/a
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
Same as tests
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)myBool && <MyComponent />.src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
android.mov
Android: mWeb Chrome
iOS: Native
ios.mp4
iOS: mWeb Safari
ios-web.mp4
MacOS: Chrome / Safari
web.mov
MacOS: Desktop
desktop.mov