[config-types] Remove classic updates (#24066)
[lint] Upgrade to Prettier v3, typescript-eslint to v6 (#23544)Why --- Prettier 3 is out. Add support for it with this linter config. **Note for reviewer:** the first commit is the one with th
[lint] Upgrade to Prettier v3, typescript-eslint to v6 (#23544)Why --- Prettier 3 is out. Add support for it with this linter config. **Note for reviewer:** the first commit is the one with the actual changes. The rest of this PR are changes to get the linter passing (mostly autofix). How --- Update eslint-config-prettier and eslint-plugin-prettier. To address deprecation warnings, also update typescript-eslint/parser and typescript-eslint/eslint-plugin. Because of an update to typescript-eslint/parser, we need to suppress deprecation warnings (documented in a comment). Regenerated test snapshots. Due to the upgraded dependencies, typecasts and optional chaining are now auto-fixable by lint. This converts warnings into autofixes. Test Plan --- `yarn test` in the linter config. Run `expotools check --all --fix-lint --no-build --no-test --no-uniformity-check` to try this config on the whole repo. --------- Co-authored-by: Expo Bot <[email protected]>
show more ...
[workspace] Bump TypeScript version to 5.1.3 (#23143)# Why Closes ENG-9088 # How Bump TypeScript to the latest, and rebuild all required SDK packages Had to update `typeRoots` inside `
[workspace] Bump TypeScript version to 5.1.3 (#23143)# Why Closes ENG-9088 # How Bump TypeScript to the latest, and rebuild all required SDK packages Had to update `typeRoots` inside `expo-module-scripts` due to a change in TypeScript 5.1 where it no longer walks up automatically looking in parent directories ([Release notes](https://devblogs.microsoft.com/typescript/announcing-typescript-5-1-rc/#typeroots-are-consulted-in-module-resolution)) # Test Plan Ensure that `et cp -a` yields no errors, docs and tools build correctly, and that CI is green # 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 `npx expo prebuild` & EAS Build (eg: updated a module plugin).
[config-plugins][prebuild-config][jest-expo] fix unit tests (#23124)# Why fix broken unit tests due to template changes and jest-expo changes # How - [config-plugins][prebuild-config] upda
[config-plugins][prebuild-config][jest-expo] fix unit tests (#23124)# Why fix broken unit tests due to template changes and jest-expo changes # How - [config-plugins][prebuild-config] update test snapshot - [jest-expo] add back the jest mock to fix expo-dev-client unit test # Test Plan ci passed
[config-plugins][prebuild-config] remove deprecated package in AndroidManifext.xml (#23056)# Why seeing a gradle build warning from a sdk49 project after prebuild: ``` > Task :app:processDeb
[config-plugins][prebuild-config] remove deprecated package in AndroidManifext.xml (#23056)# Why seeing a gradle build warning from a sdk49 project after prebuild: ``` > Task :app:processDebugMainManifest package="com.sdk49" found in source AndroidManifest.xml: /Users/kudo/sdk49/android/app/src/main/AndroidManifest.xml. Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated. Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information. /Users/kudo/sdk49/android/app/src/debug/AndroidManifest.xml:21:9-30:20 Warning: provider#expo.modules.filesystem.FileSystemFileProvider@android:authorities was tagged at AndroidManifest.xml:21 to replace other declarations but no other declaration present ``` # How we have the filled the application id to **build.gradle** `namespace` in the `withPackageGradle` plugin already. this pr just removes the deprecated `withPackageManifest` plugin. # Test Plan - ci passed
[build-properties] Add useCleartextTraffic option (#23043)
[templates][config-plugins][dev-server] aligned hermesEnabled property (#21067)# Why react-native 0.71 introduces `hermesEnabled` gradle property which is conflict with the original `expo.jsEngi
[templates][config-plugins][dev-server] aligned hermesEnabled property (#21067)# Why react-native 0.71 introduces `hermesEnabled` gradle property which is conflict with the original `expo.jsEngine` in gradle.properties. this pr tries to align the `hermesEnabled` as upstream. close ENG-7228 # How deprecate `expo.jsEngine` in **gradle.properties** and use `hermesEnabled` instead. # Test Plan ci passed
fix @expo/prebuild-config snapshot from template changes
Upgrade react-native 0.72.0-rc.5 (#22588)# Why upgrade react-native 0.72 for sdk 49 close ENG-8011 # How - bump package versions - `react-native 0.71.3 -> 0.72.0-rc.5` - `metro-reac
Upgrade react-native 0.72.0-rc.5 (#22588)# Why upgrade react-native 0.72 for sdk 49 close ENG-8011 # How - bump package versions - `react-native 0.71.3 -> 0.72.0-rc.5` - `metro-react-native-babel-preset 0.73.9 -> 0.76.5` - [bare-expo][templates][fabric-tester] migrate template base on [upgrade-helper](https://react-native-community.github.io/upgrade-helper/?from=0.71.7&to=0.72.0-rc.5) - [expo-template-tabs] remove the metro version overrides for expo-router. - [core][dev-laucher][dev-menu][media-library][screen-orientation][splash-screen][updates-interface][updates] add the `install_modules_dependencies` to support new architecture + use_frameworks! - [core][autolinking] fix some new architecture error on ios - [react-native-lab] update our fork to 0.72.0-rc.5 based - [go][tools] fix **react-native-lab/react-native/packages/react-native** path move because of react-native's repo monorepo changes - [go][android] fix gradle 8 errors - [go][ios] add `RCT_REMOTE_PROFILE=0` to fix the `RCT_ENABLE_INSPECTOR needs to be set to fulfill RCT_REMOTE_PROFILE` build error - [ncl] remove `ProgressViewIOS` / `ProgressBarAndroid` since they are deprecated/removed in 0.72 - [dev-menu][dev-launcher] rebuild bundles # Note - react-native-web is not bumped because of the [issue](https://github.com/necolas/react-native-web/issues/2523), so it's still react-native-web@~0.18.10. - currently disable ci typecheck for @expo/cli because of upstream metro typescript support. i'll have another pr to fix those errors. - updates e2e ci on android is broken at [here](https://github.com/expo/expo/blob/fada3d764957779fbfc3d7b723d185db1d933d95/packages/expo-updates/e2e/fixtures/Updates.e2e.ts#L518). i doubt if that's related to the react scheduler change. i'd disabled the failed test case. - the react-native upstream [migrated away the `@types/jest`](https://github.com/facebook/react-native/pull/36068). i was afraid that will be a breaking change to the existing jest test code since it requires the explicit `@jest/globals` import. i didn't do this in this upgrade. # Test Plan - ✅ fabric-tester (without expo-dev-client) - ✅ ci passed. there are some errors which are known: - updates e2e on android: as mentioned above - ios expo go on eas build: versioned expo go are broken on eas build m1 worker. this is also happening on main. - android client: no space left on the ubuntu worker. this is also happening on main. - ✅ bare-expo - ✅ unversioned expo go + ncl --------- Co-authored-by: Tomasz Sapeta <[email protected]>
Disable minimum frame duration by default (CADisableMinimumFrameDurationOnPhone) (#22751)# Why A lot of users would benefit from this functionality but aren't aware of its existence. This chang
Disable minimum frame duration by default (CADisableMinimumFrameDurationOnPhone) (#22751)# Why A lot of users would benefit from this functionality but aren't aware of its existence. This change will make `CADisableMinimumFrameDurationOnPhone` be set in the prebuild template by default. Users can overwrite the value with the following `app.json` configuration: ```json { "expo": { "ios": { "infoPlist": { "CADisableMinimumFrameDurationOnPhone": false } } } } ``` - It's unclear if this feature has any negative side-effects. --------- Co-authored-by: Expo Bot <[email protected]>
fix prebuild tests
chore(prebuild-config, config-plugins): rewrite tests to use latest template for fixtures (#21339)# Why - The previous tests were using static representations of the versioned fixtures. This me
chore(prebuild-config, config-plugins): rewrite tests to use latest template for fixtures (#21339)# Why - The previous tests were using static representations of the versioned fixtures. This meant that many tests were possibly outdated. - Now that the CLI is versioned, we can test against the latest templates to ensure our config plugins are always up to date. <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> # How - Pull in fixtures from the local template. - Rewrite tests to work with new fixtures. <!-- How did you build this feature or fix this bug and why? --> # Test Plan - Tests should continue to pass. --------- Co-authored-by: Expo Bot <[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]>
refactor: remove deprecated facebook types and plugins (#21018)# Why Fixes ENG-7363 # How Removed all plugins and types for `expo-facebook` and `expo-ads-facebook`. # Test Plan Make
refactor: remove deprecated facebook types and plugins (#21018)# Why Fixes ENG-7363 # How Removed all plugins and types for `expo-facebook` and `expo-ads-facebook`. # Test Plan Make sure CI passes, everything should be buildable and all tests should pass. # 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).
[2/3] upgrade react native 0.71 (#20832)# 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 packag
[2/3] upgrade react native 0.71 (#20832)# 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
fix prebuild tests (#20379)Co-authored-by: Expo Bot <[email protected]>
Removed support for deprecated `expo.ios.config.googleSignIn.reservedClientId` in favor of `expo.ios.googleServicesFile`. (#20376)# Why - Follow up for https://github.com/expo/universe/pull/1044
Removed support for deprecated `expo.ios.config.googleSignIn.reservedClientId` in favor of `expo.ios.googleServicesFile`. (#20376)# Why - Follow up for https://github.com/expo/universe/pull/10442 - Fix typo reserved -> reversed <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> # Test Plan - Unit tests Co-authored-by: Expo Bot <[email protected]>
Add Support For monochrome Android Adaptive Icons (#20074)# Why In Android 13, Android added the ability to include a monochrome adaptive icon that will be themed to the OS theme color. # Ho
Add Support For monochrome Android Adaptive Icons (#20074)# Why In Android 13, Android added the ability to include a monochrome adaptive icon that will be themed to the OS theme color. # How I added this to the already-included Adaptive Icon config, as Android includes it in their [Adaptive Icon docs](https://developer.android.com/develop/ui/views/launch/icon_design_adaptive#design-adaptive-icons). # Test Plan Tests written (mostly copied from other image tests). # Checklist - [x] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [x] 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). # Notes I am unsure why the rest of the files changed when I built again. I only changed two source files. Co-authored-by: Evan Bacon <[email protected]> Co-authored-by: Bartosz Kaszubowski <[email protected]>
Update withDefaultPlugins-test.ts.snap (#19816)
[prebuild-config] fix test (#19784)
chore: migrate config, config-plugins, config-types, prebuild-config (#17958)