[go] add android sdk49 versioned code (#23110)# Why for sdk 49 # How - [go] add android sdk 49 versioned code - [tools] minor fix for android versioning # Test Plan ci passed
[android][tools] fix expo go versioning issues on android (#22950)# Why fix expo-go android versioning for sdk 49 close ENG-8955 # How - [tools] fix for react-native monorepo changes - [
[android][tools] fix expo go versioning issues on android (#22950)# Why fix expo-go android versioning for sdk 49 close ENG-8955 # How - [tools] fix for react-native monorepo changes - [tools] update manifest-merger because the original one doesn't support java 17. since the new manifest-merger has kotlin runtime and the jar takes about 35MB. rather than committing a prebuilt jar, now we build manifest-merger from source. - [tools] since #22609 we don't have `package` in libraries' AndroidManifest.xml, the manifest-merger still requires the `package`, so we have to temporarily put the `package` back during manifest merging. (the `package` name is generated from `namespace` in build.gradle) - [tools] the original jarjar uses outdated [ASM](https://asm.ow2.io/) and it doesn't support bytecode generated by kotlin. react-native now has some kotlin code, and the original jarjar cannot transform package name from those kotlin classes. i've tried to rebuild a jarjar from [this revision](https://github.com/google/jarjar/commit/e11d5636aa45664271c8f1603067527b2520f591). this requires some manual steps like updating ASM libs and install ant builder. so i still commit the prebuilt jarjar in this pr. - [updates] force casting for `UpdateEntity` to deal with kotlin smart casting from versioned to unversioned kernel class. (i'll leave inline comment for this) - [expo-modules-core's `android-annotation`] the project stays in a place that does not support versioning yet. in this pr i just keep it as an unversionable project. cc @lukmccall # Test Plan `et add-sdk -p android -s 49.0.0` + android versioned expo-go + sdk 49 NCL smoke test
show more ...
[android][tools] add sdk 48 versioned code (#21076)# Why add android sdk 48 versioned code # How - `et add-sdk -p android -s 48.0.0` - there is a big problem for versioning this time wher
[android][tools] add sdk 48 versioned code (#21076)# Why add android sdk 48 versioned code # How - `et add-sdk -p android -s 48.0.0` - there is a big problem for versioning this time where versioned aar size is from ~17MB to ~131MB because of prefab, so it's not able to commit to git. this pr proposes to upload versioned aar to github and having an `et android-download-versioned-aars` to download aars before gradle building. # Test Plan - sdk 48 android versioned expo go + sdk 48 ncl smoking test - ci passed
[android][tools] fix android versioning (#20889)# Why fix android versioning after react-native 0.71 upgrade # How mostly fixing transforms # Test Plan 1. `et add-sdk -p android -s 4
[android][tools] fix android versioning (#20889)# Why fix android versioning after react-native 0.71 upgrade # How mostly fixing transforms # Test Plan 1. `et add-sdk -p android -s 48.0.0` 2. `cd android ; ./gradlew :app:assembleVersionedDebug` 3. versioned android expo go + sdk 48 ncl smoke test
[tools] Update android versioning script for sdk 47 (#19518)# Why update android versioning script for sdk 47 # How - [android] update gradle wrapper version to 7.5.1, which aligned with r
[tools] Update android versioning script for sdk 47 (#19518)# Why update android versioning script for sdk 47 # How - [android] update gradle wrapper version to 7.5.1, which aligned with react-native 0.70 - [localization] fix compileSdkVersion 33 build error - [tools] update versioning script - remove `renameHermesEngine` which is deprecated patchelf based hermes versioning - replace duplicated runReactNativeCodegenAndroidAsync with `Codegen.runReactNativeCodegenAsync` - update versioning script to support building in-place from react-native-lab - update for react-native 0.70 - update versionCxx for expo-modules-core - support other new style vendoring modules - @react-native-community/slider - react-native-gesture-handler (with cxx files but they're only for new architecture) - react-native-screens (with cxx files but they're only for new architecture) - react-native-svg - react-native-reanimated (with cxx files) - remove old reanimated versioning scripts # Test Plan ``` $ et add-sdk -p android -s 47.0.0 $ cd android && ./gradlew :app:installVersionedDebug # smoke test on sdk 47 NCL ```
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]>
[android] align hermes support integration as ios (#19116)# Why close ENG-6275 # How - instead of parsing bundle header and maintaining the `HERMES_BYTECODE_VERSION` from each react-native
[android] align hermes support integration as ios (#19116)# Why close ENG-6275 # How - instead of parsing bundle header and maintaining the `HERMES_BYTECODE_VERSION` from each react-native upgrade, we should use the `jsEngine` from manifest to determine the js runtime type. - for reanimated, always use hermes as the runtime for worklets. since we build the `:ReactAndroid:hermes-engine` from source with prefab support, we could just use the prefab integration. - update versioning script for versioned reanimated + versioned hermes integration. # Test Plan `et add-sdk -p android -s 47.0.0` + `./gradlew :app:assembleVersionedDebug` + NCL sdk 47 there were some versioning error from expo-modules-core. i would not include in this pr and will follow up later before versioning for release.
[android] Add sdk46 versioned code (#18235)# Why for sdk 46 # How - fix expo-modules-core versioning patch that react-native java class should also be versioned. - fix skia versioning tha
[android] Add sdk46 versioned code (#18235)# Why for sdk 46 # How - fix expo-modules-core versioning patch that react-native java class should also be versioned. - fix skia versioning that the `versioned-react-native` is not committed into git. use a fallback instead. - `et add-sdk -p android -s 46.0.0` # Test Plan android versioned expo go + sdk46 NCL
[android][ios][ncl] Add FlashList (#18137)# Why close ENG-5623 # How - [NCL] Add FlashListScreen. reference example from https://github.com/EvanBacon/Expo-Flash-List-Demo - [tools] Add Fl
[android][ios][ncl] Add FlashList (#18137)# Why close ENG-5623 # How - [NCL] Add FlashListScreen. reference example from https://github.com/EvanBacon/Expo-Flash-List-Demo - [tools] Add FlashList vendoring support. that's easy without any further transforms, only a little fine tune for versioning import in `ExponentPackage.kt` that to separate @shopify/react-native-skia and @shopify/flash-list. - [android] Add ReactNativeFlashListPackage to `ExponentPackage.kt` - `et uvm -m @shopify/flash-list -c v1.1.0` # Test Plan - android unversioned expo go + NCL FlashList - ios unversioned expo go + NCL FlashList
[android] Add @shopify/react-native-skia vendoring support for Expo Go (#17964)# Why like #17704 but for android close ENG-4889 # How - introduce vendor modules autolinking for expo go.
[android] Add @shopify/react-native-skia vendoring support for Expo Go (#17964)# Why like #17704 but for android close ENG-4889 # How - introduce vendor modules autolinking for expo go. previously, reanimated is the only vendor module having cxx code, we had a fixed versioning script for reanimated. because react-native-skia also has cxx code, i'm trying to keep the versioning more modularized and like what we did for ios versioning. ideally, a vendor module should have a dedicated gradle project. that's why i introduced a vendor module autolinking here. - vendoring tool: add react-native-skia support - versioning tool: trying to add a minimum support for new style versioning like ios. currently, after transforming the code, i still prebuild the *.so to `jniLibs`. in the future when we commit `android/versioned-react-native/ABI46_0_0` to git, we can always build the versioned *.so from source. # Test Plan - android unversioned expo go + NCL skia - android versioned expo go + NCL skia Co-authored-by: Tomasz Sapeta <[email protected]>