Skip to content
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

[packages][bare-expo][tools] fix react-native 0.74 nightlies support #26357

Merged
merged 27 commits into from
Jan 16, 2024

Conversation

Kudo
Copy link
Contributor

@Kudo Kudo commented Jan 11, 2024

Why

fix react-native nightlies support for 0.74

How

summarize here, please check each commit messages for details

To be resolved and currently workarounded by SetupReactNativeNightly

  • import com.facebook.react.turbomodule.core.CallInvokerHolderImpl -> import com.facebook.react.internal.turbomodule.core.CallInvokerHolderImpl

Test Plan

ci passed

Checklist

@@ -4,10 +4,14 @@

### 🛠 Breaking changes

- Removed `ReactNativeHostHandler.onRegisterJSIModules` interface. ([#26357](https://github.com/expo/expo/pull/26357) by [@kudo](https://github.com/kudo))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For who this is going to be a breaking change? I guess it'll continue to work in RN 0.73, right?
If this is just breaking support for 0.72 and older, I think it should go to Others section as the users don't have to do anything due to this change.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this interface was originally opened for reanimated. from what i can tell, nobody should use this nowadays. i removed the interface entirely across all react native versions to save the effort for backward compatibility. it's kind of a minimal breaking change.

@Kudo
Copy link
Contributor Author

Kudo commented Jan 12, 2024

will park landing this pr and update some code next week since facebook/react-native#42259 help to reduce some RCT_NEW_ARCH_ENABLED migration and also noticed another breaking change from facebook/react-native#42236

- react-native removed `ReactNativeHost.getJSIModulePackage()`
  facebook/react-native@6555205
- react-native added `ReactNativeHost.getUIManagerProvider()`
  facebook/react-native@153a264
- DevLauncherClientHost/DevMenuHost: also for removed `getJSIModulePackage()`,
  resolved by inherit the `DefaultReactNativeHost()`
- [BREAKING] remove our `ReactNativeHostHandler.onRegisterJSIModules()` support
  i think nobody used that nowadays
- DevLauncherDevSupportManager: add 0.74 src because react-native resource change
  facebook/react-native@8bcaed9
- remove some ReactNativeHostWrapper for old unsupported react-native versions
- also fix `USE_HERMES` is not defined in some cases
- add 0.74 DevClientAppDelegate because `unstable_registerLegacyComponents()` is deprecated
  facebook/react-native@27f38f6
- com.facebook.react.internal.turbomodule.core.CallInvokerHolderImpl package rename (wait for upstream to resolve the issue)
- `RCT_NEW_ARCH_ENABLED -> USE_NEW_ARCH` for some 3rd party libs
- react-native-safe-area-context: fix yoga interface changes
@expo-bot
Copy link
Collaborator

Hi there! 👋 I'm a bot whose goal is to ensure your contributions meet our guidelines.

I've found some issues in your pull request that should be addressed (click on them for more details) 👇

⚠️ Suggestion: Missing changelog entries


Your changes should be noted in the changelog. Read Updating Changelogs guide and consider adding an appropriate entry to the following changelogs:


Generated by ExpoBot 🤖 against 0577426

@Kudo Kudo merged commit 30072b9 into main Jan 16, 2024
23 checks passed
@Kudo Kudo deleted the @kudo/fix-nightlies branch January 16, 2024 18:34
@Kudo Kudo mentioned this pull request Jan 19, 2024
3 tasks
Kudo added a commit that referenced this pull request Jan 19, 2024
# Why

a regression from #26357, when using dev-launcher to load an app, it
will crash because `RCTAppDelegate` does not implement the
`extraModulesForBridge:` selector.

# How

rather than calling super, return empty array with fallback
@brentvatne brentvatne added the published Changes from the PR have been published to npm label Apr 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot: fingerprint changed bot: suggestions ExpoBot has some suggestions published Changes from the PR have been published to npm
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants