[task-manager][Android] Migrated codebase to use Expo modules API (#24157)# Why Migrated codebase to use Expo modules API # Test Plan - bare-expo ✅
[android] Drop Android SDK 21 and 22 support (#24201)# Why We are dropping Android SDK 21 and 22 support, we want to use this opportunity to also change the way minSdkVersion and other build.g
[android] Drop Android SDK 21 and 22 support (#24201)# Why We are dropping Android SDK 21 and 22 support, we want to use this opportunity to also change the way minSdkVersion and other build.gradle options which are the same across most of the modules are handled. Right now for each module minSdkVersion is read from the root project properties, if undefined it fallbacks to a default value which is defined on a per-module basis. In the new version we want the option to be configured from a gradle plugin so that it's not necessary to change the fallback value in ~70 files when changing the property. For now the SDK 49 compatibility checks increase amount of boilerplate in the , but with SDK 51 we will be able to remove them and ship modules with a lot less of it. # How Used the gradle plugin as a source of the minSdkVersion compileSdkVersion and targetSdkVersion settings. Settings are applied automatically with the plugin and can be overwritten in the build.gradle of the module. Along with these options lintOptions have been moved to the gradle plugin and two functions were created: useExpoPublising and useCoreDependencies both can be called after the plugin is applied to reduce some of the boilerplate. # Test Plan Tested in Bare Expo and Expo Go on Android SDK 33 and 34 (emulator)
show more ...
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/pac
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected][email protected]
[packages] fix react-native 0.73 compatibility [1/3] (#24018)# Why fix react-native 0.73 compatibility. these are for AGP 8 support - https://github.com/react-native-community/discussions-and-pr
[packages] fix react-native 0.73 compatibility [1/3] (#24018)# Why fix react-native 0.73 compatibility. these are for AGP 8 support - https://github.com/react-native-community/discussions-and-proposals/issues/671#issuecomment-1677632448 # How - [packages][bare-expo] set jvm version only if AGP < 8 - [av][dev-launcher] fix AGP 8 non transitive R issue - [dev-client][dev-launcher][dev-menu][core][notifications] fix AGP 8 non default buildConfig issue # Test Plan ci passed in #23961 (https://github.com/expo/expo/pull/23961/checks)
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected]create-expo-module
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected]
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]babel-preset-ex
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected]
[packages] fix another gradle 8 warnings (#22609)# Why there are other gradle 8 build warnings: ``` > Task :expo:processReleaseManifest package="expo.core" found in source AndroidManifest.x
[packages] fix another gradle 8 warnings (#22609)# Why there are other gradle 8 build warnings: ``` > Task :expo:processReleaseManifest package="expo.core" found in source AndroidManifest.xml: /home/runner/work/expo/expo/packages/expo/android/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. ``` # How migrate `package` in **AndroidManifest.xml** to `namespace` in **build.gradle** # Test Plan ci passed
[packages] fix gradle build warnings for gradle 8 (#22537)# Why there are some gradle warnings and will deprecate on gradle 8. since react-native 0.72 upgraded gradle 8, we should deal with thes
[packages] fix gradle build warnings for gradle 8 (#22537)# Why there are some gradle warnings and will deprecate on gradle 8. since react-native 0.72 upgraded gradle 8, we should deal with these warnings. close ENG-7481 # How ``` > Configure project :expo-modules-core WARNING:Software Components will not be created automatically for Maven publishing from Android Gradle Plugin 8.0. To opt-in to the future behavior, set the Gradle property android.disableAutomaticComponentCreation=true in the `gradle.properties` file or use the new publishing DSL. ``` remove the legacy `androidSourcesJar` ``` > Task :expo-constants:createDebugExpoConfig Execution optimizations have been disabled for task ':expo-constants:createDebugExpoConfig' to ensure correctness due to the following reasons: - Gradle detected a problem with the following location: '/Users/user/expo-app/android'. Reason: Task ':expo-constants:createDebugExpoConfig' uses this output of task ':app:checkDebugAarMetadata' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.5.1/userguide/validation_problems.html#implicit_dependency for more details about this problem. ``` remove `create${targetName}ExpoConfig` task inputs and some refactoring of the `get-app-config-android.gradle` # Test Plan ci passed
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected][email protected]
Publish packages@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected]expo-b
Publish packages@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected]@expo/[email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]
[Android] Bump kotlin version to `1.8.10` (#21120)# Why This a follow-up to the https://github.com/expo/expo/pull/21117#discussion_r1100709414. # How Bumped the default kotlin version to `
[Android] Bump kotlin version to `1.8.10` (#21120)# Why This a follow-up to the https://github.com/expo/expo/pull/21117#discussion_r1100709414. # How Bumped the default kotlin version to `1.8.10`. I'll add a changelog entry later. # Test Plan - expo-go with NCL ✅ - bare-expo with NCL ✅
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/package-manager
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected][email protected][email protected][email protected]
[Android] Bump `compileSdkVersion` and `targetSdkVersion` to 33 (#20721)# Why Bumps the compile and target SDK version to 33. # How Changed SDK version from 31 to 33. Version 32 is correl
[Android] Bump `compileSdkVersion` and `targetSdkVersion` to 33 (#20721)# Why Bumps the compile and target SDK version to 33. # How Changed SDK version from 31 to 33. Version 32 is correlated with Android 12l which improves user experience on tablets or foldable phones. It doesn't require any changes from us. The 33 is introducing a couple of things that we may want to address. Most of them are connected with permissions. Fixes for that will be applied in a separate PR. Apart from that, everything else seems to be working fine. Behavior changes: - https://developer.android.com/about/versions/13/behavior-changes-all - https://developer.android.com/about/versions/13/behavior-changes-13 # Test Plan - Expo go with NCL and test-suite - simulator with API 33 ✅ - simulator with API 31 ✅ - physical device with API 33 ✅ - physical device with API 31 ✅ - Bare expo - simulator with API 33 ✅ - simulator with API 31 ✅ - physical device with API 33 ✅ - physical device with API 31 ✅ - Dev-Client - simulator with API 33 ✅ - simulator with API 31 ✅ - physical device with API 33 ✅ - physical device with API 31 ✅
Publish packages@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]
Publish packages@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/prebuild
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected][email protected][email protected][email protected]
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected]eslint-config-u
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected][email protected][email protected]
Publish packages[email protected][email protected][email protected][email protected]
[android] fix Android S PendingIntent mutable flag exception (#17164)# Why an android exception happening from TaskManager: ``` AndroidRuntime D Shutting down VM
[android] fix Android S PendingIntent mutable flag exception (#17164)# Why an android exception happening from TaskManager: ``` AndroidRuntime D Shutting down VM E FATAL EXCEPTION: main E Process: host.exp.exponent, PID: 15838 E java.lang.RuntimeException: Unable to start receiver expo.modules.taskManager.TaskBroadcastReceiver: java.lang.IllegalArgumentException: host.exp.exponent: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. E Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles. E at android.app.ActivityThread.handleReceiver(ActivityThread.java:4384) E at android.app.ActivityThread.access$1600(ActivityThread.java:256) E at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2102) E at android.os.Handler.dispatchMessage(Handler.java:106) E at android.os.Looper.loopOnce(Looper.java:201) E at android.os.Looper.loop(Looper.java:288) E at android.app.ActivityThread.main(ActivityThread.java:7870) E at java.lang.reflect.Method.invoke(Native Method) E at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) E at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) E Caused by: java.lang.IllegalArgumentException: host.exp.exponent: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. E Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles. E at android.app.PendingIntent.checkFlags(PendingIntent.java:375) E at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:645) E at android.app.PendingIntent.getBroadcast(PendingIntent.java:632) E at expo.modules.taskManager.TaskManagerUtils.createTaskIntent(TaskManagerUtils.java:191) E at expo.modules.taskManager.TaskManagerUtils.cancelTaskIntent(TaskManagerUtils.java:54) E at expo.modules.taskManager.TaskService.handleIntent(TaskService.java:310) E at expo.modules.taskManager.TaskBroadcastReceiver.onReceive(TaskBroadcastReceiver.java:15) E at android.app.ActivityThread.handleReceiver(ActivityThread.java:4375) E ... 9 more ``` it was partial fixed in #17052, but there's another call path from `TaskManagerUtils.cancelTaskIntent -> TaskManagerUtils.createTaskIntent` close ENG-4736 # How - move the `PendingIntent.FLAG_MUTABLE` code to the final shared `createTaskIntent()` - backport the changes to sdk versioned code # Test Plan NCL → Notification → Schedule notification for 10 seconds from now
Publish packages[email protected][email protected][email protected][email protected][email protected][email protected]expo-analytics-segment@
Publish packages[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected][email protected][email protected][email protected]
[Android][Expo Go][task-manager] Fix Android API 31+ runtime crash (#17052)
[all packages][Android] Migrate to `Android SDK 31` and `Java 11` (#16941)
Remove unimodules-task-manager-interface on Android (#16683)
[modules-core][proposal] Control version of the Kotlin from `expo-modules-core` (#16213)# Why Adds a way to control the Kotlin version from `expo-modules-core`. # How Created a simple plug
[modules-core][proposal] Control version of the Kotlin from `expo-modules-core` (#16213)# Why Adds a way to control the Kotlin version from `expo-modules-core`. # How Created a simple plugin that inject the Kotlin version to buildScript. This plugin has to be executed in the buildScript section, otherwise, we can't get a current version for the `kotlin-gradle-plugin`. This solution is compatible with older `expo-modules-core` versions. # Test Plan - Build `bare-expo`: - without any additional changes - with `kotlinVersion` set in the app's properties - without `ExpoModulesCorePlugin` file (backwards compatibility)
[packages] replace maven plugin with maven-publish plugin (#16080)# Why the `maven` plugin is deprecated in gradle 7 and the `maven-publish` plugin is the replacement. fix #12774 # How
[packages] replace maven plugin with maven-publish plugin (#16080)# Why the `maven` plugin is deprecated in gradle 7 and the `maven-publish` plugin is the replacement. fix #12774 # How - replace `maven` plugin with `maven-publish` plugin and update its configurations. - we still need `androidSourcesJar` and `artifact(androidSourcesJar)` to generate sourcesJar - original `uploadArchives` would be replaced to `publish` # Test Plan - diff the generated artifacts before and after the change in `$HOME/.m2/reposotiry` - test from react-native 0.67 project (gradle 7) - test from react-native 0.66 project (gradle 6)
[android] Upgrade kotlin in all libraries (#15566)
1234