-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
[NoQA][CP STAGING][HybridApp] Add Mobile-Expensify submodule and build HybridApp on both platforms #52629
[NoQA][CP STAGING][HybridApp] Add Mobile-Expensify submodule and build HybridApp on both platforms #52629
Conversation
73ce9c1
to
72edef4
Compare
@chiragsalian 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] |
"android": "./scripts/set-pusher-suffix.sh && ./scripts/run-build.sh --android", | ||
"android-standalone": "./scripts/set-pusher-suffix.sh && ./scripts/run-build.sh --android --new-dot", | ||
"ios": "./scripts/set-pusher-suffix.sh && ./scripts/run-build.sh --ios", | ||
"ios-standalone": "./scripts/set-pusher-suffix.sh && ./scripts/run-build.sh --ios --new-dot", |
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.
Can we do isHybridApp ? ios : ios-standalone
? So users don't have to choose manually? Or does run-build handle this already?
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.
If someone has access to Mobile-Expensify
, the run-build
command builds HybridApp by default - for Expesnify/App
contributors nothing changes, the command will build a standalone NewDot.
I added the npm run ios-standalone
for HybridApp devs that would need to build the "original", greenfield version of NewDot. I consider it a bit simpler than invoking the command with some additional flags. I don't think it'll be used frequently, but I wanted to add this option for anyone that wants to do that 😄
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.
I'm just checking in here. This seems reasonable, but I want to confirm where the switch logic is for future reference before marking this thread resolved.
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.
🚀
Converting to draft since we've encountered some minor issues with the HybridApp build! When they're resolved I'll reopen! |
Can we also make sure that we don't break the deploy with these changes? |
@AndrewGable The changes from this PR shouldn't affect the deploy (since the NewDot build logic should not be changed). Temporarily we can point to another branch on Nevertheless, until the deploy scripts are adjusted we can stay in the "partial" setup, and if the tests go well we can merge the PR from OD |
Ah I see, thanks. I see your comment here, but one thing I'm not getting is how this check is made for the repo. Is it checking for the submodule, or read/write access?
|
@Julesssss the check is pretty simple - it has basically 3 steps:
I didn't want to make it overly complicated, so I went for this simple and reliable check |
Thanks, that seems good to me. |
@AndrewGable @mountiny any other thoughts here? I'd love to get this merged tomorrow so we have time to resolve any issues before the holidays. |
ESLint errors come from untouched files. Ignoring. |
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.
We have pre-tested as much as we can. We have a plan for broken deploys and will test further on main
.
Ignoring checklist, other checks are already failing. |
@Julesssss looks like this was merged without a test passing. Please add a note explaining why this was done and remove the |
Explained above already. |
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.
Very excited for this, great job everyone involved!
npx react-native run-ios --simulator "iPad Pro (11-inch) (4th generation)" --mode $IOS_MODE --scheme "$SCHEME" | ||
;; | ||
--android) | ||
npx react-native run-android --mode $ANDROID_MODE --appId $APP_ID --active-arch-only |
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.
npx react-native run-android --mode $ANDROID_MODE --appId $APP_ID --active-arch-only | |
npx react-native run-android --mode "$ANDROID_MODE" --appId "$APP_ID" --active-arch-only |
npx react-native run-ios --simulator "iPad Pro (12.9-inch) (6th generation)" --mode $IOS_MODE --scheme "$SCHEME" | ||
;; | ||
--ipad-sm) | ||
npx react-native run-ios --simulator "iPad Pro (11-inch) (4th generation)" --mode $IOS_MODE --scheme "$SCHEME" |
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.
npx react-native run-ios --simulator "iPad Pro (11-inch) (4th generation)" --mode $IOS_MODE --scheme "$SCHEME" | |
npx react-native run-ios --simulator "iPad Pro (11-inch) (4th generation)" --mode "$IOS_MODE" --scheme "$SCHEME" |
npx react-native run-ios --list-devices --mode $IOS_MODE --scheme "$SCHEME" | ||
;; | ||
--ipad) | ||
npx react-native run-ios --simulator "iPad Pro (12.9-inch) (6th generation)" --mode $IOS_MODE --scheme "$SCHEME" |
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.
npx react-native run-ios --simulator "iPad Pro (12.9-inch) (6th generation)" --mode $IOS_MODE --scheme "$SCHEME" | |
npx react-native run-ios --simulator "iPad Pro (12.9-inch) (6th generation)" --mode "$IOS_MODE" --scheme "$SCHEME" |
# Check if the argument is one of the desired values | ||
case "$BUILD" in | ||
--ios) | ||
npx react-native run-ios --list-devices --mode $IOS_MODE --scheme "$SCHEME" |
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.
Should these be in "" as well as SCHEME? Or is there a reason its different?
npx react-native run-ios --list-devices --mode $IOS_MODE --scheme "$SCHEME" | |
npx react-native run-ios --list-devices --mode "$IOS_MODE" --scheme "$SCHEME" |
> If you'd like to modify the `Mobile-Expensify` source code, it is best that you create your own fork. Then, you can swap origin of the remote repository by executing this command: | ||
> |
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.
If we are ready to merge this, are we making the OldApp repo public too now?
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.
Mobile-Expensify will remain private for now
Ah shit, these comments didn't show up, they were made same time as merge. But we can still review post-merge. |
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
npm has a |
…module [NoQA] [HybridApp] Add Mobile-Expensify submodule and build HybridApp on both platforms (cherry picked from commit 890806d) (CP triggered by Julesssss)
🚀 Cherry-picked to staging by https://github.com/Julesssss in version: 9.0.74-3 🚀
|
🚀 Deployed to production by https://github.com/luacmartins in version: 9.0.74-8 🚀
|
cc: @AndrewGable @Julesssss
Explanation of Change
This PR adds Mobile-Expensify as git submodule to allow simpler setup of the HybridApp environment
The related OldDot PR: https://github.com/Expensify/Mobile-Expensify/pull/13282
Fixed Issues
$ #49845
PROPOSAL: https://swmansion.slack.com/archives/C05LX9D6E07/p1731515589222279
Tests
Run the following scripts and see if they work correctly on NewDot (or if they work the same as before):
npm install
npm run clean
npm run android
npm run ios
npm run ipad
npm run ipad-sm
npm run pod-install
Offline tests
QA Steps
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
N/A
Android: mWeb Chrome
N/A
iOS: Native
N/A
iOS: mWeb Safari
N/A
MacOS: Chrome / Safari
N/A
MacOS: Desktop
N/A