-
Notifications
You must be signed in to change notification settings - Fork 8.3k
[bare-expo] Use official react-native #15817
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
Conversation
ENG-2234 Stop using our forked react-native in bare-expo
since we stopped using forked react-native in bare templates, we should also consistently do it in bare-expo. |
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.
🚀
apps/bare-expo/ios/Podfile.lock
Outdated
@@ -1338,7 +1338,7 @@ SPEC CHECKSUMS: | |||
EXWebBrowser: 37388663fa51cbfc883de2244931a5182d948e5f | |||
FacebookSDK: 4b9bb8e2824898b47f18c666dc145c09b40609e6 | |||
FBLazyVector: c71c5917ec0ad2de41d5d06a5855f6d5eda06971 | |||
FBReactNativeSpec: 289039c27ca26d02a6683c56c6fc7868bc804c43 | |||
FBReactNativeSpec: 8758eb0003171e03e3bb263e52848cf4286fe30d |
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.
oh no, this cherry-pick does matter: expo/react-native@f21d982
i need to find a way to deal with the unstable hash
const copyFiles = ['scripts/generate-specs.sh', 'scripts/react_native_pods.rb']; | ||
for (const file of copyFiles) { | ||
fs.copyFileSync(path.join(expoRNRoot, file), path.join(nodeModulesRNRoot, file)); | ||
} |
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.
it's worth to pay attention to this workaround script. @tsapeta could you help to review again when you get a chance?
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.
I think that's fine. On the other side, I think that we should maybe try to upgrade RN in the repository right now to 0.66, before the release.
If we would upgrade to 0.67 in SDK45, it would be a pain to go from 64 to 67 at once. Also, I'll feel more confident if we test our modules against newer versions, rather than waiting until April 🤔
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.
it's worth to try. i'll merge this first and do some trial on 66 upgrade this week.
# Why follow up #15817 (comment) after we use the react-native from npm, the react-native version we used in expo-go is decoupled with other stuffs. that makes us upgrade react-native easier. # How 1. update versions in package.json 2. sync changes from [react-native-upgrade-helper](https://react-native-community.github.io/upgrade-helper/?from=0.64.2&to=0.66.4) 3. `RCTComponentData` changed its designated initializer in react-native 0.65. to make it compatible with older version, i introduced the `EXComponentDataCompatibleWrapper` class to support different versions. 4. [react-native-lab] to fix expo-go build error, we should patch react-native to use the codegen library from its repo but not from node_modules: expo/react-native#29. # Test Plan - CI passed - bare-expo build & launch test - unversioned expo-go build & launch test
# Why follow up expo#15817 (comment) after we use the react-native from npm, the react-native version we used in expo-go is decoupled with other stuffs. that makes us upgrade react-native easier. # How 1. update versions in package.json 2. sync changes from [react-native-upgrade-helper](https://react-native-community.github.io/upgrade-helper/?from=0.64.2&to=0.66.4) 3. `RCTComponentData` changed its designated initializer in react-native 0.65. to make it compatible with older version, i introduced the `EXComponentDataCompatibleWrapper` class to support different versions. 4. [react-native-lab] to fix expo-go build error, we should patch react-native to use the codegen library from its repo but not from node_modules: expo/react-native#29. # Test Plan - CI passed - bare-expo build & launch test - unversioned expo-go build & launch test
Why
from sdk 43, we've tried to use official react-native in our bare template. that would be good if we do this also in bare-expo and our tests will be more like a real app which user would have. this change will also reduce android CI time because we don't need to build react-native AAR. (test-suite android from about 30m -> 23m)
close ENG-2234
How
react-native-lab/react-native
from yarn workspacethe only purpose of
react-native-lab/react-native
is for expo-go versioned code after this pr.Test Plan
et remove-sdk -p {android,ios} -s 44.0.0 ; et add-sdk -p {android,ios} -s 44.0.0
and check versioning rightChecklist
expo build
(eg: updated@expo/xdl
).expo prebuild
& EAS Build (eg: updated a module plugin).