| #
74e0b8df |
| 02-Aug-2023 |
Alan Hughes <[email protected]> |
[sqlite] CRSQLite integration (#23791)
# Why
Supercedes #23728
Completes ENG-8809
Investigate possibility of using [crsqlite](https://vlcn.io/) in
`expo-sqlite` which allows database syncing b
[sqlite] CRSQLite integration (#23791)
# Why
Supercedes #23728
Completes ENG-8809
Investigate possibility of using [crsqlite](https://vlcn.io/) in
`expo-sqlite` which allows database syncing between clients.
# How
- Added the crsqlite extension as a framework and provided an event that
contains the changeset to send to the server.
- Currently only works on iOS.
- Needs input on an API
- Discussion about how to handle the sync server
- Need to look into demo using TinyBase. This will require writing a
custom `persister`
# Test Plan
https://github.com/expo/expo/assets/30924086/1b576700-4ff7-4270-9f50-7e0d464b4975
show more ...
|
| #
71ea6032 |
| 22-Jun-2023 |
Kudo Chien <[email protected]> |
[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 ...
|
| #
0502d1f9 |
| 18-May-2023 |
Tomasz Sapeta <[email protected]> |
Remove Amplitude from Expo Go (#22523)
|
| #
0a6ddb20 |
| 13-Mar-2023 |
Evan Bacon <[email protected]> |
feat(cli): add basic static rendering for router projects (#21572)
# Why
- Implement an experimental static rendering system for Metro websites
using Expo Router.
- Behavior is undocumented and
feat(cli): add basic static rendering for router projects (#21572)
# Why
- Implement an experimental static rendering system for Metro websites
using Expo Router.
- Behavior is undocumented and highly experimental.
<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->
# How
- Add support to `start` and `export` which pre-renders static web pages
to HTML to improve SEO support on web.
- The system implements [React Navigation's
SSR](https://reactnavigation.org/docs/server-rendering) support.
- Head elements can be used with `import { Head } from
'expo-router/head'`.
- The root HTML is not exposed to the user.
- There are no data fetching mechanisms.
- There's no ability to provide a 404 page or other server features.
<!--
How did you build this feature or fix this bug and why?
-->
# Test Plan
- e2e test for exporting a router project statically.
- `EXPO_USE_STATIC=1 yarn expo` -> websites are pre-rendered before
being served.
- `EXPO_USE_STATIC=1 yarn expo export -p web` -> static routes are
rendered to static HTML files by the same name (dynamic routes are not
supported).
<!--
Please describe how you tested this change and how a reviewer could
reproduce your test, especially if this PR does not include automated
tests! If possible, please also provide terminal output and/or
screenshots demonstrating your test/reproduction.
-->
# 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)
- [ ] This diff will work correctly for `expo prebuild` & EAS Build (eg:
updated a module plugin).
---------
Co-authored-by: Expo Bot <[email protected]>
show more ...
|
| #
ab11e3c9 |
| 06-Feb-2023 |
Kudo Chien <[email protected]> |
[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
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 ...
|
| #
9eae8a6a |
| 14-Sep-2022 |
Kudo Chien <[email protected]> |
[ios][tools] Add Hermes support for Expo Go (#19078)
# Why
close ENG-6189
# How
- [tools] add *versionHermes.ts* to create a versioned hermes.xcframework. this script will be invoked in add
[ios][tools] Add Hermes support for Expo Go (#19078)
# Why
close ENG-6189
# How
- [tools] add *versionHermes.ts* to create a versioned hermes.xcframework. this script will be invoked in adding new sdk. it will also show a prompt to upload the artifact.
for ci testing, the hermes podspec also supports xcframework from local file system:
```
if File.exists?(File.join(__dir__, "destroot"))
source[:path] = '.'
else
source[:http] = 'https://github.com/expo/react-native/releases/download/sdk-47.0.0/ABI47_0_0hermes.tar.gz'
end,
```
- [tools] versioning hermes related code in react-native
- [manifest] add `jsEngine` method to read the jsEngine or ios.jsEngine value from manifest
- ~[reanimated] introduce `useHermes` runtime option to create specific js runtime~ Update: always use hermes to simplify the versioning script.
- [reanimated] backport sdk45, sdk46 code to disable hermes
# Test Plan
- `et add-sdk -p ios -s 47.0.0` + versioned expo go
- unversioned expo go + NCL
- unversioned expo go + NCL with `"jsEngine": "hermes"`
- versioning ci job passed: https://github.com/expo/expo/actions/runs/3049529467/jobs/4915687276
Co-authored-by: Tomasz Sapeta <[email protected]>
show more ...
|
| #
2fd75d6d |
| 25-Jul-2022 |
Kudo Chien <[email protected]> |
Deprecate source-login-scripts.sh (#18330)
# Why
the `source-login-scripts.sh` introduced a lot of pain where the community reported much build errors from it. it doesn't support shells other tha
Deprecate source-login-scripts.sh (#18330)
# Why
the `source-login-scripts.sh` introduced a lot of pain where the community reported much build errors from it. it doesn't support shells other than zsh and bash. this pr find a new way to deal with xcode building issues that it cannot find the correct nodejs path.
close ENG-4864
close ENG-5242
# How
react-native introduces `.xcode.env` and `.xcode.env.local` for developers to override the `$NODE_BINARY`: https://github.com/facebook/react-native/pull/33546
to make sure building success from expo-constants, expo-updates, and also the app target when generating bundles. i would like to reuse the `.xcode.env` and `.xcode.env.local` from react-native. this pr further generates `.xcode.env.local` automatically for the app during `pod install`. we can ensure that `pod install` is executed from shell and nodejs is available. so we will generate `export NODE_BINARY="$(command -v node)"` in the `.xcode.env.local`. for xcode, the path will be `$PODS_ROOT/../.xcode.env.local`, every xcode subprojects can source the file to get correct `$NODE_BINARY`.
# Test Plan
- building bare-expo from xcode (opening xcode by macos finder)
- building bare-expo by `yarn ios`
- updates e2e ci passed
- building expo-go (prerequisite: #18344)
Co-authored-by: James Ide <[email protected]>
show more ...
|
| #
04e0e9ec |
| 22-Jul-2022 |
Bartosz Kaszubowski <[email protected]> |
[eyw] remove yarn lock from template, address Metro TODO (#18339)
Co-authored-by: James Ide <[email protected]>
|
| #
f194f574 |
| 05-Jul-2022 |
Wojciech Kozyra <[email protected]> |
[versioning][android] Support react-native 69 (#18032)
* [skip ci] suppoort rn69
* version expo-modules-core
* review feedback + small cleanup
|
| #
367bccf2 |
| 26-Jun-2022 |
Kudo Chien <[email protected]> |
[android] ignore android/ReactAndroid/prebuiltHermes from git [skip ci]
|
| #
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 ...
|
| #
ad83b875 |
| 11-Apr-2022 |
Kudo Chien <[email protected]> |
[templates] remove lockfiles (#16975)
# Why
lock files are actually not be used and not publish to npm. but they sometimes confuse us whether to update them or now.
close ENG-4201
# How
-
[templates] remove lockfiles (#16975)
# Why
lock files are actually not be used and not publish to npm. but they sometimes confuse us whether to update them or now.
close ENG-4201
# How
- remove lock files from templates
- add lock files to .gitignore
# Test Plan
`npx [email protected] init -t /path/to/expo/expo/templates/expo-template-bare-minimum sdk45`
show more ...
|
| #
d566f199 |
| 06-Apr-2022 |
Kudo Chien <[email protected]> |
[android][ios] Upgrade expo go to react-native 0.68 (#16752)
# Why
upgrade for sdk 45
# How
- upgrade our react-native fork to 0.68 based: https://github.com/expo/react-native/tree/sdk-45
[android][ios] Upgrade expo go to react-native 0.68 (#16752)
# Why
upgrade for sdk 45
# How
- upgrade our react-native fork to 0.68 based: https://github.com/expo/react-native/tree/sdk-45
- migrate android/ios projects to 0.68
- [android] bump `targetSdkVersion` and `compileSdkVersion` to 31 (aligned with react-native 0.68)
- [tools] update codegen customization in `update-rn` script
- [tools] update versioning scripts
- [android] replace our customized `NDK_ABI_FILTERS` with official supported `reactNativeArchitectures` gradle property
- [android] use jdk 11
that is a huge pr because of changes from `et update-rn`. recommend to review this pr by commits.
most `add-sdk` problems on 0.68 are fixed. there are still an issue on android. i'll address in another pr.
- expo-av CMakeLists.txt versioning
# Test Plan
- unversoned android expo-go + ncl
- unversoned ios expo-go + ncl
- `et add-sdk -p ios -s 45.0.0` + versioned ios sdk 45 expo-go + ncl
- `et add-sdk -p android -s 45.0.0` + versioned android sdk 45 expo-go + ncl (should commented out expo-av in `ExperiencePackagePicker.kt`
show more ...
|
| #
dd384754 |
| 05-Apr-2022 |
andy <[email protected]> |
[expotool] generate ah-hoc bare apps via expotool (#16590)
Co-authored-by: Bartłomiej Bukowski <[email protected]>
|
| #
0001e716 |
| 18-Feb-2022 |
Kudo Chien <[email protected]> |
[gitignore] exclude files from android/versioned-react-native
|
| #
d06f8b02 |
| 04-Jul-2021 |
andy <[email protected]> |
[home] update profile refresh control (#13478)
|
| #
65c59487 |
| 04-Jun-2021 |
Łukasz Kosmaty <[email protected]> |
[ios][android] Update `react-native-reanimated` to `v2.2.0` (#13161)
|
| #
cf081831 |
| 01-Apr-2021 |
Bartosz Kaszubowski <[email protected]> |
[Android] remove & gitignore whole /.idea directory (#12366)
# Why
Currently there are files within `.idea` directory which are not ignored and appears on the Git unversioned files list.
# How
[Android] remove & gitignore whole /.idea directory (#12366)
# Why
Currently there are files within `.idea` directory which are not ignored and appears on the Git unversioned files list.
# How
This small PR replaces the `.gitignore` entries related to IDEA / Android Studio with the whole directory ignore.
It is the common pattern and should not degrade any IDEs functionality or IDE project settings.
show more ...
|
| #
e62fb08e |
| 24-Mar-2021 |
Tomasz Sapeta <[email protected]> |
Add fastlane/gc_keys.json to gitignore
|
| #
2e9c9f13 |
| 08-Feb-2021 |
Tomasz Sapeta <[email protected]> |
[ios] Delete ios/Pods directory
|
| #
dd61f31a |
| 07-Dec-2020 |
Tomasz Sapeta <[email protected]> |
[et] Prebuilding iOS libraries (#11224)
|
| #
880c2392 |
| 29-Jul-2020 |
Evan Bacon <[email protected]> |
Added react-native-bundle-visualizer to home (#9457)
|
| #
4c712bd3 |
| 24-Jun-2020 |
Brent Vatne <[email protected]> |
[templates] Update bare templates to React Native 62
|