-
Notifications
You must be signed in to change notification settings - Fork 984
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 0.60.5 and use Hermes js engine #8672
Comments
Useful resources:
Some issues observed while migrating:
Error regarding autolinking:
|
Added a non-exhaustive TODO list in the OP for transparency. |
This Realm issue is currently a blocker: realm/realm-js#2455 |
Current state of this PR (work in debug/release can easily be paralelized):
|
@pombeirp @flexsurfer looks like everything kinda works in my branch https://github.com/status-im/status-react/tree/hermes |
Apparently web-view is used with svgimages so it's just a matter of replacing it with the community version like I did for net_infos |
@yenda have you tried running the release version? Looks like some Realm stuff is still there: https://ci.status.im/job/status-react/job/combined/job/mobile-android/11647/console. I'll also need to regenerate the Maven offline repos for Nix. |
Problem
react-native recently had a major update to 0.60. It brings a lot of improvements, including auto-linking of libraries and an improved JS engine for Android called Hermes
Hermes is the main reason we want to do this upgrade now, because the Play Store now requires to publish 64bits apks starting 1st of August. As of today are experiencing random freezes on 64bits architectures with these apks and we have tried many options already #8665
This effort will take some time because nix makes the update process less trivial than it uses to be, and we also have a few libraries that are deprecated in favor of community maintain libraries that we need to switch.
Implementation
TODO (non-exhaustive)
Initial source-code migration work on status-react
Migration with AndroidX, Jetifier and Hermes disabled
Migration with AndroidX and Jetifier enabled
(OPTIONAL) Enable auto-linking for all RN modules supporting it
Migrate Nix release-android build
:react-native-android:installArchives
not existing anymoremigrate to community version of net-info
Migration with Hermes enabled
get rid of usage of component-will-mount because it is deprecated (Move from componentWillMount to componentDidMount #8858)
Fix issue running Hermes command in
node_modules/react-native/react.gradle
fix migration of react-native-camera (error accessing
.RNCamera
)migrate to community version of webviews (might be big)
Fix CI tests
Fix Android build on macOS (Release Android build is broken in 'feature/upgrade-to-rn-hermes' branch #8952)
Ensure everything works with iOS
Ensure everything works with Desktop
Acceptance Criteria
The text was updated successfully, but these errors were encountered: