| #
ba115a22 |
| 02-Feb-2023 |
Gabriel Donadel Dall'Agnol <[email protected]> |
Switch default JS engine to Hermes (#21001)
# Why
Closes ENG-7163
# How
Update `@expo/config-plugins`, `@expo/dev-server`, all templates and
`packages/expo-manifest` to use Hermes as the d
Switch default JS engine to Hermes (#21001)
# Why
Closes ENG-7163
# How
Update `@expo/config-plugins`, `@expo/dev-server`, all templates and
`packages/expo-manifest` to use Hermes as the default JS engine
Follow ups
- [x] Update `Using Hermes Engine` guide
(https://github.com/expo/expo/pull/21047)
- [x] Update xdl schema (https://github.com/expo/universe/pull/11355)
# Test Plan
```bash
# create a new project
npx create-expo-app hermes-app
cd hermes-app
# run local expo cli
nexpo prebuild --no-install
```
# Checklist
<!--
Please check the appropriate items below if they apply to your diff.
This is required for changes to Expo modules.
-->
- [ ] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [x] This diff will work correctly for `expo prebuild` & EAS Build (eg:
updated a module plugin).
---------
Co-authored-by: Douglas Lowder <[email protected]>
show more ...
|
| #
441852af |
| 02-Feb-2023 |
Kudo Chien <[email protected]> |
Upgrade react native to 0.71.2 (#21045)
# Why
for sdk 48 with latest upstream fixes
close ENG-7374
# How
- [react-native-lab] rebase onto 0.71.2
- bump package versions for 0.71.0 -> 0.71
Upgrade react native to 0.71.2 (#21045)
# Why
for sdk 48 with latest upstream fixes
close ENG-7374
# How
- [react-native-lab] rebase onto 0.71.2
- bump package versions for 0.71.0 -> 0.71.2 template changes
- `react-native`: 0.71.0 -> 0.71.2
- `@babel/core`: ^7.12.9 -> ^7.20.0
- `@babel/preset-env`: ^7.14.0 -> ^7.20.0
- `@babel/runtime`: ^7.12.5 -> ^7.20.0
- `metro-react-native-babel-preset`: 0.73.5 -> 0.73.7
- update template changes for 0.71.0 -> 0.71.2
# Test Plan
ci passed
show more ...
|
| #
84f418d7 |
| 17-Jan-2023 |
Kudo Chien <[email protected]> |
[1/3] upgrade react-native 0.71 (#20799)
# Why
upgrade react-native 0.71 for sdk 48
close ENG-7192
# How
- update package versions
- `react: 18.1.0 -> 18.2.0`
- `react-native 0.70.5
[1/3] upgrade react-native 0.71 (#20799)
# Why
upgrade react-native 0.71 for sdk 48
close ENG-7192
# How
- update package versions
- `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`
- upgrade three project templates based on [upgrade-helper](https://react-native-community.github.io/upgrade-helper/?from=0.70.6&to=0.71.0)
- bare-expo
- expo-template-bare-minimum
- fabric-tester (this is based on `npx expo prebuild --clean --no-install --template /path/to/expo-template-bare-minimum.tgz`) so it includes some inconsistent changes
- [@expo/config-plugins]: support 0.71 template transform. the `namespace` in build.gradle and the files in `release` build variants
- [fbjni] upgrade 0.3.0 to align 0.71 (also ndk version)
- [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.
- [native-tests / expo-modules-test-core / expo-modules-autolinking] fix ios unit test build error because jsc now in a dedicated podspec. in theory, the ios native unit test could now run on hermes as well.
- for other details, please check commit histories one by one.
# Test Plan
- bare-expo ios / android
- fabric ios / android
- ci passed (except ios)
- test-suite ios is broken for unknown reasons. it breaks only on github actions and hermes. for nightlies testing, i also [changed it to jsc](https://github.com/expo/expo/blob/1e029c89c4247802cc4880e27e116a6b4c71c502/tools/src/commands/SetupReactNativeNightly.ts#L287-L293) to make ci green. i'll try to follow up and investigate the root cause.
show more ...
|
| #
22b45c56 |
| 28-Sep-2022 |
Kudo Chien <[email protected]> |
Upgrade react-native 0.70 (#19261)
# Why
update react-native to 0.70 for sdk 47
# How
- update package versions
- `react` 18.0.0 -> 18.1.0
- `react-native` 0.69.5 -> 0.70.1
- `reac
Upgrade react-native 0.70 (#19261)
# Why
update react-native to 0.70 for sdk 47
# How
- update package versions
- `react` 18.0.0 -> 18.1.0
- `react-native` 0.69.5 -> 0.70.1
- `react-native-web` ~0.18.7 -> ~0.18.9
- `react-test-renderer` 18.0.0 -> 18.1.0
- `metro-react-native-babel-preset` ~0.70.3 -> ~0.72.1
- `react-native-reanimated` 2.9.1 -> 2.10.0 (because 2.9 doesn't support react-native 0.70)
- [NCL] remove unused react-native-redash
- [NCL] `@react-navigation/native` ~5.8.9 -> ~5.9.8 (fixed the deprecated Linking.removeEventListener)
- migrate templates based on [rn-upgrade helper](https://react-native-community.github.io/upgrade-helper/?from=0.69.5&to=0.70.1). one exception is that we still use jsc by default in sdk 47.
- expo-template-bare-minimum
- bare-expo
- bare-sandbox
- fabric-tester
- native-tests
- android (expo go)
- ios (expo go)
- update our react-native fork to 0.70 based
- [android] use ReactAndroid directly from _react-native-lab/react-native/ReactAndroid_ without copying a lot of files to expo/expo to increase the repo size. close ENG-4562. i will remove _android/ReactAndroid_ and _android/ReactCommon_ in a separate commit.
- toward this, i also change the prebuiltHermes support in this pr. the target react-native hermes version is in `react-native-lab/react-native/sdks/.hermesversion` and the cached hermes is now in `android/prebuiltHermes/.hermesversion`.
- [tools] update-rn: support running transformer directly in _react-native-lab/react-native_
- [ios] backport folly version to previous versioned code
- [0.70 breaking change] fix skia build error for `jsi::detail::throwJSError`. use `throw jsi::JSError` instead as upstream latest code.
- [0.70 breaking change][updates] `NativeModuleCallExceptionHandler -> JSExceptionHandler`. change from https://github.com/facebook/react-native/commit/b6f7689d701d0409c23ab364356aeb95710c20fa
# Test Plan
- ✅ android expo go + unversioned NCL
- ✅ ios expo go + unversioned NCL
- ✅ android bare-expo
- ✅ ios bare-expo
- ✅ android fabric-tester
- ✅ ios fabric-tester
- ✅ ci passed
- android client - eas build is broken on main. #19270 may address the issue.
- updates e2e is broken on main. the root cause should come from #18653 when proguard is enabled, the app will crash. will follow up in separated pr.
Co-authored-by: Tomasz Sapeta <[email protected]>
show more ...
|
| #
c88b85cf |
| 14-Sep-2022 |
Tomasz Sapeta <[email protected]> |
[ios] Bump deployment target to 13.0 (#18873)
|
| #
dec397fd |
| 29-Jun-2022 |
Kudo Chien <[email protected]> |
Upgrade to react-native 0.69 (#18006)
# Why
for sdk 46
close ENG-5353
# How
- update packages
- react -> 18.0.0
- react-native -> 0.69.0
- react-dom -> 18.0.0
- react-native-w
Upgrade to react-native 0.69 (#18006)
# Why
for sdk 46
close ENG-5353
# How
- update packages
- react -> 18.0.0
- react-native -> 0.69.0
- react-dom -> 18.0.0
- react-native-web -> ~0.18.1
- react-test-renderer -> ~18.0.0
- @types/react -> ~18.0.14
- @types/react-native -> ~0.69.1
- early patch react-native for 0.69.1 fixes
- https://github.com/facebook/react-native/commit/43f831b
- https://github.com/facebook/react-native/commit/c2088e1
- https://github.com/facebook/react-native/commit/f97c6a5
- https://github.com/facebook/react-native/commit/79baca6
- https://github.com/facebook/react-native/pull/34064#issuecomment-1168810152
- migrate `expo-template-bare-minimum`, `bare-expo`, `bare-sandbox` to 0.69. reference from https://react-native-community.github.io/upgrade-helper/?from=0.68.1&to=0.69.0
- also remove the `hermesCommand` because 0.69 uses the builtin hermes-engine
- `expo-av`, `expo-modules-core`, `expo-gl-cpp`: fix android cpp building errors, because 0.69 ships both release and debug aar
- `expo-dev-client`: fix android build error from RedBox package rename
- `html-elements`: update RNWView where react-native-web removed [the `css` import](https://github.com/necolas/react-native-web/commit/b27c9820)
- `expo`: move Expo.podspec out from ios, because newer [rn-cli removed the `podspecPath` and `project` support](https://github.com/react-native-community/cli/commit/25eec7c#diff-0dddbcedebb33032fcac5991f3dcdfa44157e6ae87afcf3dabcd240a0db09832L58).
- [ ] disable dev-client because the vendored reanimated in dev menu doesn't support 0.69 yet, e.g. `folly_json -> folly_runtime`
- update reanimated and gesture-handler to latest for 0.69 support
- `jest-expo`: update to [fix the deprecated react-native-web jest preset](https://github.com/necolas/react-native-web/commit/9b0c119)
- `NCL`, `home`, patch `react-native-svg`: fix react 18 that [`children` should be explicitly added](https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#updates-to-typescript-definitions)
- `@expo/cli` fix react-native-web and react-dom version checks
# Test Plan
- android bare-expo smoke test
- ios bare-expo smoke test
- ci passed
- updates e2e is broken because in the flow the react-native doesn't include 0.69.1 fixes.
show more ...
|
| #
aa3bb5e3 |
| 21-Jun-2022 |
Bartłomiej Klocek <[email protected]> |
[ios][tools][ci] Redesign iOS unit tests (#17634)
# Why
iOS Unit Test CI job had several issues:
- Fastlane is being run for each package separately, so it's restarting the simulator each time.
[ios][tools][ci] Redesign iOS unit tests (#17634)
# Why
iOS Unit Test CI job had several issues:
- Fastlane is being run for each package separately, so it's restarting the simulator each time. This makes the job slower and moreover, test results are scattered across all fastlane logs.
- Some tests are being run on bare-expo, others on the client project.
- Packages to be tested need to be defined manually in podfile
- Some dev-client tests aren't being run at all (bug in expotools)
# How
Basically, running tests once from a single xcscheme is faster and clearer than doing it separately for each package.
- Applied some autolinking + fastlane changes from #16993 and https://github.com/expo/expo/commit/0e0c1e3db71535002e56453ff6004b06e2836c8e - now we have `use_expo_modules_tests!` for autolinking only test packages.
- Created (`expo init -t bare`) a new `apps/native-tests` app which has no JS code, but only native iOS project with a single test-only scheme (`NativeTests.xcscheme`)
> It might be possible to integrate it as a separate test target in bare-expo instead of creating a new app
- Created a custom fastlane action `generate_test_scheme`, which takes that NativeTests scheme as a template and automatically finds test targets (named `PodspecName-Unit-Tests`, generated by CocoaPods during `pod install`) and generates a `NativeTests_generated` scheme aggregating all these targets. Package filtering is also supported.
- Created a new ios lane `:unit_tests` which uses that action to generate the scheme and then run tests, adopted the `et ios-native-unit-tests` command to use this lane.
- Fixed expotools not recognizing the `expo-dev-launcher` podspec, because it was in the package root instead of the `ios/` subdir.
- Got rid of `React-hermes` test spec dependencies. They're not needed anymore. JS engine for `apps/native-tests` is set to JSC.
- Added `FASTLANE_SKIP_UPDATE_CHECK=1` to the CI env to prevent fastlane from spamming.
One drawback of this approach is that we now have to maintain another app, another podfile etc
show more ...
|