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
[1/3] upgrade react-native 0.71 #20799
Conversation
…d with expo.jsEngine
const pattern = new RegExp(`applicationId ['"].*['"]`); | ||
return buildGradle.replace(pattern, `applicationId '${packageName}'`); | ||
const pattern = new RegExp(`(applicationId|namespace) ['"].*['"]`, 'g'); | ||
return buildGradle.replace(pattern, `$1 '${packageName}'`); |
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.
[@expo/config-plugins]: support 0.71 template transform. the namespace in build.gradle and the files in release build variants
cc @EvanBacon
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.
A test would be good here but otherwise this looks good to me.
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.
will follow up in separated pr 👍
appProjectExt.react.devDisabledInDebug = true | ||
} | ||
} | ||
def ex_updates_native_debug = System.getenv("EX_UPDATES_NATIVE_DEBUG") == "1" ? "true" : "false" |
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.
[expo-updates] move the EX_UPDATES_NATIVE_DEBUG bundleInDebug setup to templates. unfortunately, because RNGP setups the task dependencies pretty early. the original setup in expo-updates build.gradle is too late. note that the change doesn't reference any files from templates to expo-updates package. somehow it's not tightly coupled.
cc @douglowder
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.
🚀
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) 👇
|
i'm going to merge this pr. if there's any feedback from post-review, please let me know, and i'll follow up separately. |
# Why follow up #20799 for react-native 0.71 upgrade. this pr aims for jest upgrade and fix all broken tests. close ENG-7192 # How - upgrade packages - `jest: ^26.0.24 -> ^29.2.1` - `jest-watch-typeahead: 0.6.4 -> 2.2.1` - `@types/jest: ^26.0.24 -> ^29.2.1` - `babel-jest: ^26.6.3 -> ^29.2.1` - `@jest/create-cache-key-function: ^27.0.1 -> ^29.2.1` - `@babel/preset-env: ^7.12.9 -> ^7.14.0` - `eslint: ^8.20.0 -> ^8.29.0` - add `jest-environment-jsdom` because new jest does not include it by default - [core] fix `SyntheticPlatformEmitter` type error. originally it refers to `react-native/Libraries/EventEmitter/RCTDeviceEventEmitter` internal file which has incorrect type setup in 0.71. we could use the `react-native.DeviceEventEmitter` instead. - [expo-linking]: remove the deprecated `Linking.removeEventListener` (which is also removed from upstream) - [firebase-recaptcha] remove broken web test because firebase ESM which is not supported by jest. this pr simply remove the test case because the package is deprecated. - [jest-expo-enzyme] remove this package and move to [the archived repo](https://github.com/expo/jest-expo-enzyme). enzyme cannot upgrade to jest 29. - remove `@types/react-native` and the versioned cli package check. because 0.71 ships the types directly. - [ncl] workaround `@react-native-community/slider`, `@react-native-segmented-control/segmented-control`, and `@react-native-masked-view/masked-view` type errors in the `react-native-71-fix.d.ts`. - for other details, please check the commit histories one by one. # Test Plan - ci passed - for test-suite ios ci error, i've mentioned in #20799
# Why follow up #20799 (comment) to add unit test for build.gradle namespace updates # How add namespace unit test # Test Plan ci passed
Why
upgrade react-native 0.71 for sdk 48
close ENG-7192
How
react: 18.1.0 -> 18.2.0
react-native 0.70.5 -> 0.71.0
react-dom: 18.1.0 -> 18.2.0
react-test-renderer: 18.1.0 -> 18.2.0
react-native-web: 0.18.9 -> 0.18.10
babel-plugin-react-native-web: 0.18.9 -> 0.18.10
metro-react-native-babel-preset: 0.72.3 -> 0.73.5
npx expo prebuild --clean --no-install --template /path/to/expo-template-bare-minimum.tgz
) so it includes some inconsistent changesnamespace
in build.gradle and the files inrelease
build variantsEX_UPDATES_NATIVE_DEBUG
bundleInDebug
setup to templates. unfortunately, because RNGP setups the task dependencies pretty early. the original setup in expo-updates build.gradle is too late. note that the change doesn't reference any files from templates to expo-updates package. somehow it's not tightly coupled.Note
this pr covers native changes. most js ci jobs are still broken because jest upgrade. i'll keep jest upgrade as separated changes in [2/3] upgrade react native 0.71 #20832
to reduce ci times and [2/3] upgrade react native 0.71 #20832 maintenance, will update changelogs later, so we could get first round reviews.update in [3/3] update changelogs for react-native 0.71 upgrade #20858test-suite ios is broken for unknown reasons. it breaks only on github actions and hermes. for nightlies testing, i also changed it to jsc to make ci green. i'll try to follow up and investigate the root cause.
Test Plan
Checklist
expo prebuild
& EAS Build (eg: updated a module plugin).