-
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
Update react-native to Expensify fork #9841
Update react-native to Expensify fork #9841
Conversation
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
I have read the CLA Document and I hereby sign the CLA |
CLA link is broken btw :) |
5980274
to
7a88062
Compare
7a88062
to
f7d762a
Compare
f7d762a
to
acbb8d9
Compare
acbb8d9
to
2d9fe0f
Compare
That happens when running pod install? |
Yes. Also cleaned everything and tried again w/o success. |
Ok I get the error too if I delete my ios/Pods folder |
Running |
Ok podfile should be good 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.
Overall code changes look good. Still needs more thorough testing
@Override | ||
public ReactNativeHost getReactNativeHost() { | ||
// if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { |
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 uncomment this because it will end up being the same with the current BuildConfig anyways
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 wanted to avoid creating 2 ReactNativeHost instances by removing this https://github.com/Expensify/App/pull/9841/files#diff-bc1549da6355f7f82f324af9c667b78ff60672b6b80219062629fe4184e8fa93R60, then it won't compile if that doesn't exist.
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 could also just remove that code completely, but wanted to stay close to template
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.
Other option could be to do private final ReactNativeHost mNewArchitectureNativeHost = null
This comment was marked as outdated.
This comment was marked as outdated.
Yea I saw, I was able to fix a couple ones, but Network tests are still failing. I actually tried updating jest thinking it might be the cause of failures, so might not be related. |
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 add these changes to the build.gradle file
configurations.all {
resolutionStrategy {
force 'org.xerial:sqlite-jdbc:3.34.0'
}
}
Coming from this slack thead
@kidroca if you have any spare cycles could you help us investigate why the network tests are failing on this PR? I know you helped write a lot of them so might have some more ideas? |
@janicduplessis This PR fixes the tests 🎉 https://github.com/janicduplessis/Expensify-App/pull/1/files |
335ad27
to
ed4628a
Compare
@Justicea83 I don't have access to this slack convo, but will add. This is in root build.gradle right? I know using allprojects make sure it will apply to everything. |
Yes! Looks like it should go in |
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.
Looks great!
iOS app seems to be working perfectly as far as I can tell (including push notification tests) 🎉 Android up next... |
Okay, Android seems to be working as expected as well (though it's very, very slow, I don't think that's related to this PR) |
Dismissing because he said "Looks great!" above and his change request was met
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
I was also testing on web + desktop all the way through by sending messages back and forth between the mobile and web/desktop apps |
Seems you figured it out already 👍 |
Yep, thanks! Why the changes were necessary on this PR, I have no idea 🙃 |
"react": "18.0.0", | ||
"react-collapse": "^5.1.0", | ||
"react-content-loader": "^6.1.0", | ||
"react-dom": "^17.0.2", |
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.
@janicduplessis @roryabraham
Any reason for react-dom
to stay on 17 while React is updated to 18?
Usually they have to be the same (major) version
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 wanted to avoid updating it as I'm not sure react-native-web is compatible yet. From our testing it works just fine. The react package doesn't really include much code, it is basically just a facade for react-dom / react-native renderers.
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.
Updating to react-dom 18 would be really nice to do in a follow up tho :)
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 going to continue working on updating our react-native-web fork, and we can update react-dom
when we update NewDot to point at the updated react-native-web
fork?
Details
This updates the RN files to 0.69 and to our fork. Some changes:
Other libraries updated:
react-native-pdf
requires installingreact-native-blob-util
now, which is actually a fork ofrn-fetch-blob
so it is impossible to use both at the same time.react-native-blob-util
is supposed to have the same api asrn-fetch-blob
, but might want to double check features that use this. This also avoids having to patchrn-fetch-blob
.Note that this also fixes M1 mac compatibility issues I've had.
Fixed Issues
$ GH_LINK
Tests
Tested that the app builds and open a few screens on iOS and Android
TODO: Test something that uses
react-native-blob-util
PR Review Checklist
Contributor (PR Author) Checklist
### Fixed Issues
section aboveTests
sectionQA steps
sectiontoggleReport
and notonIconClick
)src/languages/*
filesSTYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)/** comment above it */
displayName
propertythis
properly so there are no scoping issues (i.e. foronClick={this.submit}
the methodthis.submit
should be bound tothis
in the constructor)this
are necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);
ifthis.submit
is never passed to a component event handler likeonClick
)StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)PR Reviewer Checklist
The Contributor+ will copy/paste it into a new comment and complete it after the author checklist is completed
### Fixed Issues
section aboveTests
sectionQA steps
sectiontoggleReport
and notonIconClick
).src/languages/*
filesSTYLE.md
) were followedAvatar
, I verified the components usingAvatar
have been tested & I retested again)/** comment above it */
displayName
propertythis
properly so there are no scoping issues (i.e. foronClick={this.submit}
the methodthis.submit
should be bound tothis
in the constructor)this
are necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);
ifthis.submit
is never passed to a component event handler likeonClick
)StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)QA Steps
This is a significant PR that affects the whole app, but it does not really have specific QA steps.
That said, this PR coincidentally includes the remaining changes that were needed to complete #7962, so please retest that issue and post the results in the issue. Thank you.
Screenshots
Web
Mobile Web
Desktop
iOS
Android