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

Upgrade to RN 0.60.5 and enable Hermes JS engine #8943

Merged
merged 4 commits into from
Sep 12, 2019

Conversation

pedropombeiro
Copy link
Contributor

@pedropombeiro pedropombeiro commented Sep 6, 2019

fixes #8672
fixes #8665

Summary

This PR fixes the 64-bit issue on Android by enabling Hermes on RN 0.60.5. It has quite a few considerations, since some deprecated components were removed from RN and moved into separate community projects, sometimes with changed APIs (e.g. react-native-camera, react-native-webview).

Review notes

This PR is based on the branch from #8932 in order to minimize future merges.

It takes advantage of the new AutoLinking functionality in Realm, so a lot of cruft was removed from gradle and pod files.

A gist of the changes in this PR:

  • AutoLinking
  • Move to AndroidX libraries
  • Move to community version of react-native-camera
  • Use newer versions of @react-native-community/netinfo, react-native-mail, react-native-image-crop-picker, react-native-svg, react-native-securerandom, react-native-firebase either due to the fact that they now support AutoLinking or that they use AndroidX
  • Added some required changes in react-native-webview-bridge since it didn't support the community webview (would be super-useful to have @rasom's review there since there's an exported variable from the old RN's webview that is no longer present in the community webview)
  • gradle react-native-android:installArchives no longer exists (the archives are downloaded directly) so had to remove that from the Nix expression
  • Changed minSdkVersion from 18 to 23 due to react-native-camera changes
  • Am no longer passing callRPC to WebViewBridgePackage

Testing notes

Full regression testing (special focus on web browser-related functionality on iOS)

Platforms

  • Android
  • iOS

Areas that maybe impacted

Non-functional
  • CPU performance / speed of the app

status: ready

@pedropombeiro pedropombeiro self-assigned this Sep 6, 2019
@auto-assign auto-assign bot removed the request for review from a team September 6, 2019 15:46
@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

@status-github-bot
Copy link

status-github-bot bot commented Sep 6, 2019

Pull Request Checklist

  • Have you updated the documentation, if impacted (e.g. docs.status.im)?

@status-im-auto
Copy link
Member

status-im-auto commented Sep 6, 2019

Jenkins Builds

Click to see older builds (58)
Commit #️⃣ Finished (UTC) Duration Platform Result
c45e145 #1 2019-09-06 15:47:18 ~28 sec android 📄 log
c45e145 #1 2019-09-06 15:47:18 ~27 sec ios 📄 log
c45e145 #1 2019-09-06 15:59:01 ~12 min android-e2e 📄 log
9242a9d #2 2019-09-06 16:54:07 ~1 min ios 📄 log
9242a9d #2 2019-09-06 17:04:57 ~12 min android-e2e 📄 log
9242a9d #2 2019-09-06 17:05:11 ~13 min android 📄 log
ab5b950 #3 2019-09-06 17:30:27 ~55 sec ios 📄 log
ab5b950 #4 2019-09-06 17:34:42 ~51 sec ios 📄 log
4535152 #5 2019-09-06 17:37:59 ~1 min ios 📄 log
598a692 #6 2019-09-06 17:45:04 ~4 min ios 📄 log
✔️ 598a692 #6 2019-09-06 17:54:13 ~13 min android-e2e 📦 apk
✔️ 598a692 #6 2019-09-06 17:55:13 ~14 min android 📦 apk
✔️ fa3c513 #7 2019-09-06 18:44:01 ~10 min ios 📦 ipa
✔️ fa3c513 #7 2019-09-06 18:46:21 ~12 min android-e2e 📦 apk
✔️ fa3c513 #7 2019-09-06 18:46:23 ~12 min android 📦 apk
✔️ 71ba95b #8 2019-09-06 22:14:03 ~9 min ios 📦 ipa
✔️ 71ba95b #8 2019-09-06 22:16:49 ~12 min android-e2e 📦 apk
✔️ 71ba95b #8 2019-09-06 22:16:55 ~12 min android 📦 apk
✔️ e5c9639 #9 2019-09-07 06:56:43 ~11 min ios 📦 ipa
✔️ e5c9639 #9 2019-09-07 06:59:03 ~13 min android-e2e 📦 apk
✔️ e5c9639 #9 2019-09-07 06:59:03 ~13 min android 📦 apk
✔️ d9539bc #10 2019-09-07 09:36:06 ~10 min ios 📦 ipa
✔️ 0b883d6 #11 2019-09-07 09:44:39 ~8 min ios 📦 ipa
✔️ 0b883d6 #11 2019-09-07 09:49:27 ~13 min android 📦 apk
✔️ 0b883d6 #11 2019-09-07 09:51:16 ~14 min android-e2e 📦 apk
✔️ 3f2347b #12 2019-09-09 12:03:59 ~10 min ios 📦 ipa
3f2347b #12 2019-09-09 12:05:36 ~11 min android 📄 log
3f2347b #12 2019-09-09 12:07:15 ~13 min android-e2e 📄 log
✔️ 0df1b45 #13 2019-09-09 16:52:53 ~10 min ios 📦 ipa
✔️ 3550903 #14 2019-09-09 17:02:34 ~8 min ios 📦 ipa
3550903 #14 2019-09-09 17:08:47 ~14 min android-e2e 📄 log
3550903 #14 2019-09-09 17:09:02 ~14 min android 📄 log
3550903 #15 2019-09-10 09:08:57 ~12 min android 📄 log
✔️ 0fc0317 #15 2019-09-10 10:11:15 ~12 min ios 📦 ipa
✔️ 0fc0317 #15 2019-09-10 10:11:50 ~12 min android-e2e 📦 apk
✔️ 0fc0317 #16 2019-09-10 10:11:55 ~12 min android 📦 apk
✔️ a62cfb0 #17 2019-09-10 15:34:02 ~10 min ios 📦 ipa
✔️ a62cfb0 #17 2019-09-10 15:36:48 ~13 min android-e2e 📦 apk
✔️ a62cfb0 #18 2019-09-10 15:39:32 ~15 min android 📦 apk
✔️ 51601f2 #18 2019-09-10 16:03:39 ~11 min ios 📦 ipa
✔️ 51601f2 #18 2019-09-10 16:05:06 ~13 min android-e2e 📦 apk
✔️ 51601f2 #19 2019-09-10 16:05:18 ~13 min android 📦 apk
✔️ faf321c #19 2019-09-10 18:47:40 ~12 min android-e2e 📦 apk
✔️ faf321c #20 2019-09-10 18:47:50 ~13 min android 📦 apk
8324a57 #20 2019-09-11 09:22:03 ~23 sec android-e2e 📄 log
8324a57 #21 2019-09-11 09:22:03 ~21 sec android 📄 log
8324a57 #20 2019-09-11 09:22:03 ~20 sec ios 📄 log
✔️ 4f69f12 #21 2019-09-11 09:38:15 ~10 min ios 📦 ipa
✔️ 4f69f12 #21 2019-09-11 09:40:54 ~13 min android-e2e 📦 apk
✔️ 4f69f12 #22 2019-09-11 09:40:57 ~13 min android 📦 apk
22d2213 #22 2019-09-11 13:25:17 ~36 sec ios 📄 log
✔️ 22d2213 #22 2019-09-11 13:38:26 ~13 min android-e2e 📦 apk
✔️ 22d2213 #23 2019-09-11 13:38:30 ~13 min android 📦 apk
✔️ 22d2213 #23 2019-09-11 18:00:30 ~8 min ios 📦 ipa
d7d1d93 #24 2019-09-12 13:59:21 ~18 sec android 📄 log
d7d1d93 #24 2019-09-12 13:59:21 ~16 sec ios 📄 log
5401d24 #25 2019-09-12 14:03:36 ~15 sec android 📄 log
5401d24 #25 2019-09-12 14:03:41 ~19 sec ios 📄 log
Commit #️⃣ Finished (UTC) Duration Platform Result
bfabd91 #26 2019-09-12 14:06:47 ~17 sec android 📄 log
bfabd91 #26 2019-09-12 14:06:47 ~16 sec ios 📄 log
✔️ e07ca28 #28 2019-09-12 14:23:21 ~9 min android 📦 apk
✔️ e07ca28 #28 2019-09-12 14:25:05 ~11 min ios 📦 ipa
✔️ e07ca28 #27 2019-09-12 14:25:54 ~11 min android-e2e 📦 apk

@pedropombeiro pedropombeiro changed the title Feature/upgrade to rn hermes Upgrade to RN 0.60.5 and enable Hermes JS engine Sep 6, 2019
@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

1 similar comment
@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

@yenda yenda changed the base branch from develop to remove-realm-final September 6, 2019 17:33
@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

Copy link
Contributor

@yenda yenda left a comment

Choose a reason for hiding this comment

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

merge

@vitvly
Copy link
Contributor

vitvly commented Sep 12, 2019

@Serhy will investigate the perf issue separately

@Serhy
Copy link
Contributor

Serhy commented Sep 12, 2019

Can exchange messages in 1-1/Public/Group chat (custom userpic shared too)
Can receive messages from offline inbox.
No issues with web-browser, can navigate between web-pages, can transact (buy and sell) cryptokitty. Webhistory persist as expected.
Can block/unblock contact
Can transact in simpledapp.eth under Ropsten network
Can send transaction from Wallet
Can pair accounts between iOS and Android builds
List of autotest results ran and checked, - no regression (some known issues) https://ethstatus.testrail.net/index.php?/runs/view/4143&group_by=tests:status_id&group_order=desc

I don't see regressions apart performance one which will be looked at separately

@Serhy Serhy self-assigned this Sep 12, 2019
@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

@pedropombeiro pedropombeiro changed the base branch from remove-web3 to develop September 12, 2019 14:06
@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

@pedropombeiro pedropombeiro mentioned this pull request Sep 12, 2019
Pedro Pombeiro added 3 commits September 12, 2019 16:13
- Use community net-info, react-native-webview instead of deprecated react-native classes
- Remove react-native-tcp
- Upgrade react-native libs (react-native-camera, react-native-firebase, react-native-mail, react-native-udp, react-native-webview-bridge)
- Do not include `:react-native-android` module explicitly
- Take advantage of RN AutoLinking
- nix: Update Gradle dependencies
@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

@dependency-lockfile-snitch
Copy link

desktop_files/yarn.lock and mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Update react-native to 0.60.5 and use Hermes js engine Fix 64bit apk freezes on arm64 hardware
8 participants