-
-
Notifications
You must be signed in to change notification settings - Fork 655
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 v0.59 #3399
Comments
Similar to 7037393 a few months ago: done for the same reasons, and in the exact same way. The remaining cases that cause errors are mostly examples of #3451, so we can convert them to exact object types as we fix that. And then there are a handful of types that are genuinely meant to be inexact object types. When we upgrade soon to Flow v0.84 (as part of #3399), we can make those explicit; tracking that as #3452.
Update from a chat with @borisyankov today: there are two areas of work remaining to complete this:
|
OK, reviewing current status, referring to the latest version of the draft PR #3422:
|
A few more notes:
(The number after
|
Bumping to P0 to follow #3323, which this blocks. |
A couple of miscellaneous links -- things that looked likely useful when I was digging into this for the comments just above -- so I can close those tabs: |
Fixes zulip#3399! The bulk of the work of this upgrade went into a large number of commits previous to this one. The majority of the last few dozen commits, after 1c86488^, were part of the upgrade; some discussion in zulip#3561. An earlier wave of effort focused on getting things working with the upgrade of Flow to v0.92; see zulip#3450 and especially f8c9810, and then zulip#3453 and zulip#3442. Some other early discussion is at zulip#3422. This commit itself was done mainly by running: $ tools/upgrade rn v0.59.10 Then, that tool needs a bit of an update for changes upstream. Because I'm feeling pressed to get this upgrade out the door (and to deal with the various separate trouble on iOS), I just took care of the other relevant packages by hand: updated `@babel/core` and `metro-react-native-babel-preset` in package.json according to the diff seen in `rn-diff-purge`, then reran `yarn`.
This is partly a followup task from the RN v0.59 upgrade, #3399; we've upgraded a lot of dependencies, so we should upgrade the libdefs to match. Done with: $ yarn update-libdefs This turned up a couple of type errors, because there's now a real libdef for WebView! Marked those with fixmes; will fix properly next.
This fixes #3323, meeting the Google Play 64-bit requirement that comes into effect next week, 2019-08-01 -- in other words, it makes it possible for us to continue uploading new releases after that date. Aside from ticking a box, it's expected to improve performance on devices with 64-bit CPUs -- which is most new devices of the last few years, and 85% of all our installs on active devices as reported by the Play Console. (In "Release management > Device catalog", filtering "ABI" to `arm64-v8a` or `x86_64`.) The main work to make this possible happened in RN upstream; we pulled it in with our upgrade to RN v0.59, #3399. This is one last fragment of the diff in upstream's template app between those versions, enabling 64-bit versions in our build config. One unfortunate regression this causes: we're still distributing a single APK for all architectures, and so adding 64-bit architectures makes it a lot bigger. At a quick estimate from comparing `yarn build:android-nokeys` before and after, we go from 13MB to 22MB. The Play Store has had a solution to that for a while now, called "Android App Bundle". We should switch to that. We're already tracking that task as #3547, and this change increases its priority.
React Native 0.59 is out!
https://facebook.github.io/react-native/blog/2019/03/12/releasing-react-native-059
We should upgrade.
This is a big release with a lot of changes. Major things I'm eager to get include (details in above-linked post):
The text was updated successfully, but these errors were encountered: