-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Fix cycle dependencies in metro console #53852
Fix cycle dependencies in metro console #53852
Conversation
…to fix/attempt-to-fix-cycular-dependecies-1
…Mode, Session, API, Reauthentication, extractPolicyIDFromQuery, Navigation
…to fix/attempt-to-fix-cycular-dependecies-1
…to fix/attempt-to-fix-cycular-dependecies-1
…to fix/attempt-to-fix-cycular-dependecies-1
…to fix/attempt-to-fix-cycular-dependecies-1
…to fix/attempt-to-fix-cycular-dependecies-1
…to fix/attempt-to-fix-cycular-dependecies-1
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.
A couple of comments, but it sounds really good!
…to fix/attempt-to-fix-cycular-dependecies-1
…to fix/attempt-to-fix-cycular-dependecies-1
I have bumped them, they should be around |
…to fix/attempt-to-fix-cycular-dependecies-1
Reviewer Checklist
Screenshots/VideosAndroid: NativeScreen.Recording.2025-01-10.at.14.41.22.moviOS: NativeScreen.Recording.2025-01-10.at.14.53.16.movMacOS: Chrome / SafariScreen.Recording.2025-01-10.at.14.49.51.mov |
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.
LGTM!
We did not find an internal engineer to review this PR, trying to assign a random engineer to #53417 as well as to this PR... Please reach out for help on Slack if no one gets assigned! |
…to fix/attempt-to-fix-cycular-dependecies-1
Hi, can we run again to run a workflow to find internal engineer @eVoloshchak @mountiny |
…to fix/attempt-to-fix-cycular-dependecies-1
Hey I spoke with @fabioh8010 and we decided that it would be better to incorporate into this PR changes from this PR which is adding new eslint rules for the new import ways, so there wont be new cycle dependencies issues |
🚧 @francoisl has triggered a test build. You can view the workflow run here. |
🧪🧪 Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! 🧪🧪 |
import * as NetworkStore from './NetworkStore'; | ||
import * as SequentialQueue from './SequentialQueue'; | ||
import {isAuthenticating, isOffline} from './NetworkStore'; | ||
import {isRunning as sequentialQueueIsRunning} from './SequentialQueue'; |
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.
NAB - for consistency with naming boolean variables and functions, we could have named this isSequentialQueueRunning
instead
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
@kubabutkiewicz I don't see QA steps, what should we check this ? Thanks |
🚀 Deployed to staging by https://github.com/francoisl in version: 9.0.85-0 🚀
|
3 similar comments
🚀 Deployed to staging by https://github.com/francoisl in version: 9.0.85-0 🚀
|
🚀 Deployed to staging by https://github.com/francoisl in version: 9.0.85-0 🚀
|
🚀 Deployed to staging by https://github.com/francoisl in version: 9.0.85-0 🚀
|
🚀 Deployed to staging by https://github.com/francoisl in version: 9.0.85-0 🚀
|
@izarutskaya there are no specific QA steps for this, I think you can skip QA entirely. If you run into any weird regressions, it could possibly come from this PR, but there were no new features or existing features updated in this PR.
|
agree with @francoisl |
🚀 Deployed to production by https://github.com/mountiny in version: 9.0.85-4 🚀
|
🚀 Deployed to production by https://github.com/mountiny in version: 9.0.85-4 🚀
|
Explanation of Change
This PR is for fixing multiple occurrences of cycle dependencies warnings in the metro console.
Here is a proposal that I made in the open source channel
This is the first part of this effort, which is make change in metro config to load modules only when they are needed and change imports types to named imports in files which are causing cycles. In next PR I will create an eslint rule to enforce new import style.
There are still 2 warnings in the metro console for cycle dependencies but they are about
CONST.ts
file. Currently I dont know yet how we can fix it without changing export and import types of this file so there would be needed changes in a lot of places in the app so I will do it also separately since its already a huge PR.Tests: I think in that case there is no way to write some specific units tests for that change.
Fixed Issues
$ #53417
Tests
There is no change in specific flow, we should run some smoke tests to check if app is running properly in our most sensitive places
Offline tests
QA Steps
There is no change in specific flow, we should run some smoke tests to check if app is running properly in our most sensitive places
PR Author Checklist
### Fixed Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)src/languages/*
files and using the translation methodSTYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)Design
label and/or tagged@Expensify/design
so the design team can review the changes.ScrollView
component to make it scrollable when more elements are added to the page.main
branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTest
steps.Screenshots/Videos
Android: Native
Before:Before.Video.mp4
After:
![after](https://private-user-images.githubusercontent.com/25230417/395091746-7de1f6fe-6584-4a63-b060-ae9deb45e1c9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNTU4MTAsIm5iZiI6MTczOTM1NTUxMCwicGF0aCI6Ii8yNTIzMDQxNy8zOTUwOTE3NDYtN2RlMWY2ZmUtNjU4NC00YTYzLWIwNjAtYWU5ZGViNDVlMWM5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDEwMTgzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTkxNjY1NGFlYTUwNmUyOWJkNTY0NWE0NTA2OGY1MzU1NDZiOWM2NTU1Nzc2ZjQ2M2NhNzI0NmQ3MzQ0OTI0NmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.mnJz2NW8WjE54C3XA3_LqbHuaawZS5gZLNahs_c0law)
Android: mWeb Chrome
iOS: Native
Before:
Before.Video.mp4
After:
![after](https://private-user-images.githubusercontent.com/25230417/395091746-7de1f6fe-6584-4a63-b060-ae9deb45e1c9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNTU4MTAsIm5iZiI6MTczOTM1NTUxMCwicGF0aCI6Ii8yNTIzMDQxNy8zOTUwOTE3NDYtN2RlMWY2ZmUtNjU4NC00YTYzLWIwNjAtYWU5ZGViNDVlMWM5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDEwMTgzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTkxNjY1NGFlYTUwNmUyOWJkNTY0NWE0NTA2OGY1MzU1NDZiOWM2NTU1Nzc2ZjQ2M2NhNzI0NmQ3MzQ0OTI0NmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.mnJz2NW8WjE54C3XA3_LqbHuaawZS5gZLNahs_c0law)
iOS: mWeb Safari
MacOS: Chrome / Safari
MacOS: Desktop