Conversation
uri-scheme@2.0.21 unimodules-app-loader@56.0.1 pod-install@1.0.17 patch-project@56.0.3 install-expo-modules@0.14.20 @expo/html-elements@56.0.1 expo-web-browser@56.0.2 expo-video-thumbnails@56.0.1 expo-updates-interface@56.0.2 @expo/ui@56.0.2 expo-video@56.0.1 expo-tracking-transparency@56.0.1 expo-updates@56.0.2 expo-test-runner@0.3.14 expo-widgets@56.0.2 expo-task-manager@56.0.1 expo-symbols@56.0.2 expo-store-review@56.0.1 expo-standard-web-crypto@56.0.1 expo-system-ui@56.0.2 expo-status-bar@56.0.2 expo-splash-screen@56.0.2 expo-speech@56.0.1 expo-sharing@56.0.1 expo-sqlite@56.0.1 expo-sms@56.0.1 expo-sensors@56.0.1 expo-secure-store@56.0.1 expo-screen-capture@56.0.1 expo-screen-orientation@56.0.1 expo-processing@56.0.1 expo-print@56.0.1 expo-router@56.0.2 expo-notifications@56.0.1 expo-network-addons@56.0.1 expo-network@56.0.1 expo-navigation-bar@56.0.1 expo-server@56.0.1 expo-observe@56.0.1 expo-modules-core@56.0.1 expo-modules-autolinking@56.0.1 expo-module-template@56.0.1 expo-maps@56.0.1 expo-media-library@56.0.1 expo-manifests@56.0.2 expo-mesh-gradient@56.0.1 expo-location@56.0.1 expo-mail-composer@56.0.1 expo-localization@56.0.1 expo-local-authentication@56.0.1 expo-keep-awake@56.0.2 expo-live-photo@56.0.1 expo-linear-gradient@56.0.1 expo-linking@56.0.1 expo-image-picker@56.0.1 expo-intent-launcher@56.0.1 expo-image-manipulator@56.0.1 expo-insights@56.0.1 expo-image-loader@56.0.1 expo-haptics@56.0.1 expo-gl@56.0.1 expo-image@56.0.2 expo-glass-effect@56.0.2 expo-file-system@56.0.2 expo-font@56.0.2 expo-env-info@2.0.14 expo-eas-client@56.0.1 expo-document-picker@56.0.1 expo-device@56.0.2 expo-doctor@1.19.3 expo-dev-menu-interface@56.0.1 expo-dev-menu@56.0.1 expo-dev-client@56.0.1 expo-crypto@56.0.1 expo-dev-launcher@56.0.1 expo-codemod@56.0.1 expo-contacts@56.0.1 expo-clipboard@56.0.1 expo-checkbox@56.0.1 expo-constants@56.0.2 expo-calendar@56.0.1 expo-camera@56.0.1 expo-cellular@56.0.1 expo-brightness@56.0.1 expo-build-properties@56.0.1 expo-blur@56.0.1 expo-blob@56.0.1 expo-battery@56.0.1 expo-background-task@56.0.1 expo-brownfield@56.0.1 expo-background-fetch@56.0.1 expo-auth-session@56.0.1 expo-audio@56.0.1 expo-app-metrics@56.0.1 expo-apple-authentication@56.0.1 expo-asset@56.0.2 expo-application@56.0.1 @expo/app-integrity@56.0.1 expo@56.0.0-preview.3 eslint-plugin-expo@1.0.2 eslint-config-expo@56.0.1 create-expo-nightly@0.4.1 create-expo-module@56.0.1 create-expo@3.7.1 babel-preset-expo@56.0.2 expo-age-range@56.0.1 @expo/schemer@2.2.1 @expo/schema-utils@56.0.1 @expo/prebuild-config@56.0.1 @expo/plist@0.6.1 @expo/pkcs12@0.5.1 @expo/require-utils@56.0.1 @expo/router-server@56.0.2 @expo/package-manager@1.11.1 @expo/osascript@2.5.1 @expo/metro-runtime@56.0.2 @expo/metro-config@56.0.2 @expo/metro-file-map@56.0.0-1 @expo/json-file@10.1.1 @expo/image-utils@0.9.1 @expo/fingerprint@0.17.2 @expo/local-build-cache-provider@56.0.1 @expo/log-box@56.0.2 @expo/inline-modules@0.0.3 @expo/env@2.2.1 @expo/devtools@56.0.1 @expo/dom-webview@56.0.2 @expo/config-types@56.0.1 @expo/cli@56.0.3 @expo/config-plugins@56.0.1 @expo/config@56.0.1 expo-module-scripts@56.0.1 expo-template-default@56.0.3 expo-template-tabs@56.0.3 expo-template-bare-minimum@56.0.3 expo-template-blank@56.0.3 expo-template-blank-typescript@56.0.3
# Why `NativeTabs.Trigger` exposes `unstable_nativeProps` option to pass props directly to RNS implementation, however this is missing from the `NativeTabs` themselves # How Add `unstable_nativeProps` to `NativeTabs` # Test Plan 1. CI 2. Router e2e # Checklist <!-- Please check the appropriate items below if they apply to your diff. --> - [x] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why Accessibility props are not exposed from android toolbar. # How Map `accessibilityLabel` prop to `contentDescription` # Test Plan CI I added a follow-up ticket for auditing the iOS and Android toolbars - https://linear.app/expo/issue/ENG-21055/test-accessibility-of-android-and-ios-toolbar # Checklist <!-- Please check the appropriate items below if they apply to your diff. --> - [ ] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why While installing dependencies with pnpm I noticed a warning coming from `expo-progress` dependency. Upon inspection, it was revealed that we don't use this dependency anymore and it can be safely removed # How Remove `expo-progress` dependency from NCL # Test Plan N / A # Checklist <!-- Please check the appropriate items below if they apply to your diff. --> - [ ] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
@expo/metro-config@56.0.3 @expo/config@56.0.2 @expo/config-plugins@56.0.2 babel-preset-expo@56.0.3 expo-constants@56.0.3 @expo/devtools@56.0.2 @expo/fingerprint@0.17.3 @expo/local-build-cache-provider@56.0.2 expo-asset@56.0.3 expo-file-system@56.0.3 expo-font@56.0.3 expo-keep-awake@56.0.3 expo-modules-autolinking@56.0.2 expo-modules-core@56.0.2 @expo/dom-webview@56.0.3 expo@56.0.0-preview.4 @expo/log-box@56.0.3 expo-router@56.0.3 @expo/cli@56.0.4 expo-splash-screen@56.0.3 expo-updates@56.0.3 expo-dev-client@56.0.2 expo-dev-launcher@56.0.2 expo-dev-menu@56.0.2 @expo/metro-runtime@56.0.3 @expo/inline-modules@0.0.4 @expo/prebuild-config@56.0.2 @expo/router-server@56.0.3 expo-glass-effect@56.0.3 expo-image@56.0.3 expo-symbols@56.0.3 expo-device@56.0.3 expo-linking@56.0.2 expo-status-bar@56.0.3 expo-system-ui@56.0.3 expo-web-browser@56.0.3 expo-application@56.0.2 expo-crypto@56.0.2 expo-task-manager@56.0.2 expo-gl@56.0.2 expo-app-metrics@56.0.2 expo-image-loader@56.0.2 expo-build-properties@56.0.2 create-expo@3.7.2 patch-project@56.0.4 expo-template-default@56.0.4 expo-template-tabs@56.0.4 expo-auth-session@56.0.2 expo-video-thumbnails@56.0.2 expo-video@56.0.2 expo-tracking-transparency@56.0.2 expo-background-task@56.0.2 expo-background-fetch@56.0.2 expo-store-review@56.0.2 expo-template-blank-typescript@56.0.4 expo-template-blank@56.0.4 expo-template-bare-minimum@56.0.4 expo-sqlite@56.0.2 expo-speech@56.0.2 expo-sms@56.0.2 expo-sharing@56.0.2 expo-sensors@56.0.2 expo-secure-store@56.0.2 expo-screen-orientation@56.0.2 expo-screen-capture@56.0.2 expo-processing@56.0.2 expo-print@56.0.2 expo-observe@56.0.2 expo-notifications@56.0.2 expo-network-addons@56.0.2 expo-network@56.0.2 expo-navigation-bar@56.0.2 expo-mesh-gradient@56.0.2 expo-media-library@56.0.2 expo-maps@56.0.2 expo-mail-composer@56.0.2 expo-location@56.0.2 expo-localization@56.0.2 expo-local-authentication@56.0.2 expo-live-photo@56.0.2 expo-linear-gradient@56.0.2 expo-intent-launcher@56.0.2 expo-insights@56.0.2 expo-image-picker@56.0.2 expo-image-manipulator@56.0.2 expo-haptics@56.0.2 expo-document-picker@56.0.2 expo-doctor@1.19.4 expo-contacts@56.0.2 expo-clipboard@56.0.2 expo-cellular@56.0.2 expo-camera@56.0.2 expo-calendar@56.0.2 expo-brownfield@56.0.2 expo-brightness@56.0.2 expo-blur@56.0.2 expo-blob@56.0.2 expo-battery@56.0.2 expo-audio@56.0.2 expo-apple-authentication@56.0.2 @expo/app-integrity@56.0.2 expo-age-range@56.0.2 uri-scheme@2.0.22 install-expo-modules@0.14.21
# Why There's a subtle issue with `#cloneTree`'s changes in #45391 — it's unable to include relative roots, since it's trying to apply the `#rootPattern` to partial root folders. # How Instead, we should re-traverse all `roots` and rebuild the tree starting from these roots, knowing that they'll be included in `watchFolders` that way. This PR also removes the full clone of the tree, since it's not necessary and just increases memory pressure. # Test Plan - Unit test added # Checklist <!-- Please check the appropriate items below if they apply to your diff. --> - [x] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
…ut of scope (#45460) # Why Currently, we enable `scopeFallback` out of an abundance of caution, which disallows the on-demand filesystem from leaving the defined server root. This has to be explicitly disabled in some cases, for example for package manager global stores (supported by [pnpm](https://pnpm.io/11.x/global-virtual-store) and [bun](https://bun.com/docs/pm/global-store)). Global stores for package managers with isolated installations are pretty ideal for worktrees, and as such, we'd like to support them by default, which the on-demand filesystem allowed, provided `scopeFallback: false` was passed. Instead, we can allow the on-demand filesystem to automatically follow symlinks out of the server root, trusting that symlinks in the server root are intended and safe. That assumption is usually safe and already made by different frameworks/bundlers that don't have a "server root" concept. # How - Mark directories discovered by on-demand filesystem with `VISITED | CRAWLED` flag, and mark all directories at least as `VISITED` if the crawler found them - Pass on a symlink flag to the on-demand filesystem calls, and allow directories if they've either been reached by a symlink, or if they've been discovered by the on-demand filesystem This effectively allows a symlink to first escape the server root, and then subsequent sub-directories are allowed to be discovered by Metro. # Test Plan - Unit tests added - Tested in a fresh `expo/expo` worktree with `enableGlobalVirtualStore` enabled # Checklist <!-- Please check the appropriate items below if they apply to your diff. --> - [x] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why Fixes #41833 Currently, calling `exitFullscreen()` on Android throws a `MethodUnsupportedException`. This PR implements the functionality to programmatically exit fullscreen mode. # How - Implemented `exitFullscreen` in `VideoModule` by calling `VideoManager.finishFullscreenPlayer`. - Added `finishFullscreenPlayer` to `VideoManager` to finish the activity. - Updated `VideoManager.unregisterFullscreenPlayerActivity` to verify the activity instance to prevent race conditions. - Updated `FullscreenPlayerActivity` to correctly attach the player back to the VideoView on finish and handle cleanup in `onDestroy`. - Added a try-catch block in `FullscreenPlayerActivity.finish()` to handle cases where the original VideoView might have been destroyed. # Test Plan - Tested in a local reproduction app. - Verified that calling `exitFullscreen()` closes the fullscreen player. - Verified that the player is correctly re-attached to the inline view. - Verified that no crash occurs if the inline view is destroyed while in fullscreen. <!-- 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. --> - [x] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) --------- Co-authored-by: Wojciech Dróżdż <31368152+behenate@users.noreply.github.com>
…oration after process death (#45426) # Why Fixes #45234 The default generated Expo MainActivity uses super.onCreate(null), which masks this issue by discarding Activity saved state. Apps that preserve Activity state restoration can hit the crash. # How Add a no-arg constructor (required for fragment restoration), and self-removethe restored zombie fragment in onCreate when no listener is attached. # Test Plan Tested in the provided repro app, by running the following commands: ``` adb shell input keyevent KEYCODE_HOME adb shell dumpsys activity activities | grep -E "dev.expo.videopiprestoreissue/.MainActivity|mHaveState|mIcicle|state=STOPPED" adb shell am kill dev.expo.videopiprestoreissue adb shell am start -n dev.expo.videopiprestoreissue/.MainActivity -a android.intent.action.MAIN -c android.intent.category.LAUNCHER ``` Co-authored-by: dive <artyom.loenko@mac.com>
# Why Follow up of #44954 # How - update package versions - `react-native 0.85.2-> 0.85.3` - `@react-native/normalize-colors 0.85.2 -> 0.85.3` - `@react-native/babel-preset 0.85.2 -> 0.85.3` - `@react-native/dev-middleware 0.85.2 -> 0.85.3` # Test Plan bare-expo ios / android minimal-tester ios / android ci passed # Checklist <!-- Please check the appropriate items below if they apply to your diff. --> - [ ] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
…packages (#45461) # Why Getting errors when precompiling Expo Widgets: ``` [2026-05-06T15:55:59.083Z] :x: [expo-widgets/ExpoWidgets] Generate sources failed: Could not find xcframework for external dependency @expo/ui/ExpoUI at expected path: /Users/expo/workingdir/build/packages/precompile/.build/@expo/ui/output/debug/xcframeworks/ExpoUI.xcframework ``` `@expo/ui` lives at `packages/expo-ui/`, a slug that differs from the npm name # How `tools/src/Packages.ts`: for scoped names, `pathToLocalPackageJson` now uses `require.resolve('@scope/name/package.json', { paths: [PACKAGES_DIR] })`. Workspace symlinks point at the real on-disk location regardless of the slug, so this works for both standard layouts (`@expo/cli`) and slug-mismatched ones (`@expo/ui`). The non-scoped fast path is untouched. # Test-plan ✅ run `et prebuild expo-widgets` to verify.
# Why This regular expression is very expensive and slows down per-file checks to >3ms, which adds up very quickly. We can now replace it with a project-root relative check. # Checklist <!-- Please check the appropriate items below if they apply to your diff. --> - [ ] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
expo-widgets@56.0.3 expo-video@56.1.0 expo-updates@56.0.4 expo-system-ui@56.0.4 expo-standard-web-crypto@56.0.2 expo-modules-jsi@56.0.1 expo-module-template@56.0.2 expo-dev-menu@56.0.3 expo-constants@56.0.4 expo@56.0.0-preview.5 eslint-config-expo@56.0.2 babel-preset-expo@56.0.4 @expo/prebuild-config@56.0.3 @expo/metro-file-map@56.0.0-2 @expo/log-box@56.0.4 @expo/cli@56.0.5 expo-template-blank-typescript@56.0.5 expo-template-blank@56.0.5 expo-template-bare-minimum@56.0.5 expo-module-scripts@56.0.2 expo-dev-client@56.0.3 expo-dev-launcher@56.0.3 expo-asset@56.0.4 expo-modules-core@56.0.3 @expo/metro-runtime@56.0.4 @expo/dom-webview@56.0.4 @expo/router-server@56.0.4 expo-router@56.0.4 expo-glass-effect@56.0.4 expo-image@56.0.4 expo-symbols@56.0.4 expo-linking@56.0.3 expo-status-bar@56.0.4 expo-web-browser@56.0.4 expo-device@56.0.4 expo-application@56.0.3 expo-crypto@56.0.3 expo-task-manager@56.0.3 expo-gl@56.0.3 expo-app-metrics@56.0.3 expo-image-loader@56.0.3 expo-build-properties@56.0.3 patch-project@56.0.5 expo-template-tabs@56.0.5 expo-template-default@56.0.5 expo-auth-session@56.0.3 expo-video-thumbnails@56.0.3 expo-tracking-transparency@56.0.3 expo-background-task@56.0.3 expo-background-fetch@56.0.3 expo-store-review@56.0.3 expo-sqlite@56.0.3 expo-sms@56.0.3 expo-sharing@56.0.3 expo-speech@56.0.3 expo-sensors@56.0.3 expo-secure-store@56.0.3 expo-screen-orientation@56.0.3 expo-screen-capture@56.0.3 expo-processing@56.0.3 expo-print@56.0.3 expo-observe@56.0.3 expo-notifications@56.0.3 expo-network-addons@56.0.3 expo-network@56.0.3 expo-navigation-bar@56.0.3 expo-mesh-gradient@56.0.3 expo-media-library@56.0.3 expo-maps@56.0.3 expo-mail-composer@56.0.3 expo-location@56.0.3 expo-localization@56.0.3 expo-local-authentication@56.0.3 expo-live-photo@56.0.3 expo-linear-gradient@56.0.3 expo-intent-launcher@56.0.3 expo-insights@56.0.3 expo-image-picker@56.0.3 expo-image-manipulator@56.0.3 expo-haptics@56.0.3 expo-document-picker@56.0.3 expo-doctor@1.19.5 expo-contacts@56.0.3 expo-clipboard@56.0.3 expo-cellular@56.0.3 expo-camera@56.0.3 expo-calendar@56.0.3 expo-brownfield@56.0.3 expo-brightness@56.0.3 expo-blur@56.0.3 expo-blob@56.0.3 expo-battery@56.0.3 expo-audio@56.0.3 expo-apple-authentication@56.0.3 @expo/app-integrity@56.0.3 expo-age-range@56.0.3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )