-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[core][updates] Add bridgeless support for ReactNativeHostHandler #27629
Conversation
The Pull Request introduced fingerprint changes against the base commit: a632983 Fingerprint diff[
{
"type": "dir",
"filePath": "../../packages/expo-modules-core/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "d3a235998c859b3ef094cb3ca6d0425a89486e54"
},
{
"type": "dir",
"filePath": "../../packages/expo-updates/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "f08f526f2fc78d040db90bc8224970aa371cc550"
},
{
"type": "dir",
"filePath": "../../packages/expo/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "b177add7cb93afab1d9a93b0f6ce56eeb4092a0a"
},
{
"type": "dir",
"filePath": "android",
"reasons": [
"bareNativeDir"
],
"hash": "8025ef08d2bc6a33113825c1859d908da350bb01"
}
] Generated by PR labeler 🤖 |
updates e2e failed because it's running on 0.73. will have a pr to migrate all our repo and template to 0.74 |
# Why previously we use yarn resolutions for 0.74 version pinning, that would help us to test canary on 0.73. since #27573 drop react-native < 0.74 support. we could remove resolutions and that would help #27601 and #27629 for updates-e2e testing. (updates-e2e testing still on 0.73 because we don't change react-native version on expo-template-bare-minimum. # How - update versions and remove yarn resolutions - update yarn.lock - update templates based on [upgrade helper](https://react-native-community.github.io/upgrade-helper/?from=0.73.6&to=0.74.0-rc.3) - for gradle wrapper, running `./gradlew wrapper --gradle-version 8.6 --distribution-type all` to update
037284b
to
fb3a099
Compare
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.
expo-updates changes look good. will defer to other reviewers for the other parts.
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
Co-authored-by: Tomasz Sapeta <tomasz.sapeta@swmansion.com>
73a7f23
to
1f6a6c1
Compare
…7629) # Why add bridgeless support for our react delegate on android close ENG-11646 # How - we cannot use `getDefaultReactHost()` because we will fit the `You can call getDefaultReactHost only with instances of DefaultReactNativeHost` exception. since our reactNativeHost is actually a ReactNativeHostWrapper. this pr tries to add a `ExpoReactHostFactory` to handle that. - refactor `ReactNativeHostHandler` a little bit to be ReactHost/ReactInstanceManager independent - drop react-native < 0.74.0 support --------- Co-authored-by: Tomasz Sapeta <tomasz.sapeta@swmansion.com>
# Why the error recovery of updates was broken since https://github.com/expo/expo/pull/27629/files#diff-b034a3a37c87b036bb0d9c0549d6701774c79fedb4892dd44807d8947d75d4fbL27-R37. apparently when ReactContext is available, it's too late for error recovery because bundle is loaded and may throw exceptions already. # How - i feel #27629's change is correct for `onDidCreateReactInstance`. for error recovery we sound like need to call point between onWillCreateReactInstance and DevSupportManager available (error recovery requires DevSupportManager to detect exceptions). this pr introduces a new `onDidCreateDevSupportManager` for this purpose. - also fix incorrect onWillCreateReactInstance timing on bridgeless mode - seen a detox failed from proguard that i have to add an additional proguard rule to fix that.
Why
add bridgeless support for our react delegate on android
close ENG-11646
How
getDefaultReactHost()
because we will fit theYou can call getDefaultReactHost only with instances of DefaultReactNativeHost
exception. since our reactNativeHost is actually a ReactNativeHostWrapper. this pr tries to add aExpoReactHostFactory
to handle that.ReactNativeHostHandler
a little bit to be ReactHost/ReactInstanceManager independentTest Plan
getCatalystInstance()
that we could address later.Checklist
npx expo prebuild
& EAS Build (eg: updated a module plugin).