-
Notifications
You must be signed in to change notification settings - Fork 0
[pull] main from expo:main #506
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
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
Co-authored-by: Łukasz Kosmaty <[email protected]>
# Why Adds a config plugin for expo-widgets # How This config plugin consists of the following components: * withPodsLinking - Adds an entry to the Podfile that links pods from the main app to the target. * withWidgetSourceFiles - A `withDangerousMod` that generates the required swift files based on the `app.json` config. * withLiveActivity - Sets the `NSSupportsLiveActivities` flag in the `Info.plist`, which is required to run Live Activities. * withPushNotification - Enables push notifications - these may be necessary for some use cases, for example frequent refreshing. * withAppGroupEntitlements - Connects the target and the app by `groupIdentifier` specified in the config. * withTargetXcodeProject - Configures the Xcode project, registers generated files from withWidgetSourceFiles, and sets the `IS_EXPO_WIDGET` build property. # Test Plan Tested using `npx create-expo-app@latest projectname --template blank` --------- Co-authored-by: Jakub Grzywacz <[email protected]>
# Why In order to reduce the amount of boilerplate in the brownfield template and facilitate "reexporting" Expo classes into the final xcframework, we should symlink ExpoAppDelegate to iOS template, so that way these files will never get out of sync. The only caveat is that we need to use `internal import` for ExpoModuleCore and we keep the same class name otherwise the compiler fails due to duplicated symbols. To circumvent that, when running prebuild, we apply a patch to ExpoAppDelegate. # How - Symlink `ExpoAppDelegate` to iOS template and add a patch to expo-brownfield - Simplify `withXcodeProjectPlugin` structure - Remove unnecessary imports from `ExpoAppDelegate` # Test Plan `npx expo-brownfield build-ios` # 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 Search params were being stripped from client-side loader fetches, causing inconsistent behavior between SSR and client-side navigation. This also causes duplicate loader invocations when search params were present. # How - In `getLoaderModulePath()`, we now preserve and append the search string when constructing loader URLs - In `renderStaticContent()`, we now create the `loadedData` cache key using `location.pathname + location.search` # Test Plan - CI - Manual testing # Checklist - [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) - [x] 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 Small changes required for widgets
…ctions (#42051) # Why This allows users to return a `Response` object from a loader function, which allows controlling characteristics (such as `Cache-Control` headers) which we'll take advantage of in the `useLoaderData()` hook in the future. # How Made changes to the dev/SSG loader pipeline in `MetroBundlerDevServer` to enable returning a `Response` object or a regular JavaScript object (for backwards compatibility). In SSG, we extract the body from Response and serialize the result, stripping any custom headers since the output is pre-rendered static files. For SSR, expo-server also checks for a `Response` object and returns it as-is, preserving any custom headers. As an example: ```typescript export async function loader() { return Response.json({ foo: 'bar' }, { headers: { 'Cache-Control': 'public, max-age=3600', 'X-Custom-Header': 'test-value', }, }); } ``` # Test Plan - CI - Manual testing # Checklist - [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) - [x] 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 There was a breaking change in NativeTabs API and in order to stabilize native-tabs in router we need to upgrade screens to 4.20.0 # How <!-- How did you build this feature or fix this bug and why? --> # Test Plan 1. Test navigation in router-e2e 2. Test bare-expo 3. Test expo-go # 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)
…s for all routes (#42271) # Why We currently don't document how to set user-defined headers for Expo apps, support for which was added in #40173. # How Created a new page in the documentation with examples of how to add user-defined headers, along with its limitations. # Test Plan - CI # Checklist - [ ] 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) - [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) --------- Co-authored-by: Aman Mittal <[email protected]> Co-authored-by: Phil Pluckthun <[email protected]>
# Why Migrates obj-c files to swift where possible # Test Plan Expo go
# Why Removes unnecessary imports # Test Plan Expo go
# Why Uses swift concurrency consistently instead of a mixture of it and combine # Test Plan Expo go
# Why Removes more legacy code that's no longer needed from expo go # Test Plan Expo go
# Why <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> Fix ENG-18860 `@experimental` annotation only shows up in the header because `APIBoxHeader` calls `getTagNamesList` to build its tags. In the methods renderer, we weren't passing any comment into `APIBoxHeader`, so it never sees the `@experimental` tag. # Test Plan <!-- 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. --> Tested it locally with Expo Sharing package by adding `@experimental` annotation to a method. <img width="1928" height="750" alt="CleanShot 2026-01-20 at 02 45 07@2x" src="https://github.com/user-attachments/assets/34528186-1376-428a-8b57-0f20e36c6438" /> Result: <img width="2500" height="1068" alt="CleanShot 2026-01-20 at 02 44 57@2x" src="https://github.com/user-attachments/assets/6824fcd8-41b5-4521-b640-520a49531a02" /> # 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 <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> Fix ENG-18803 The prerequisite mentions SDK 54. I think with the new SDK upcoming, the second statement under Prerequisite section should mention using `latest` tag to create an Expo project or the `expo` sdk version in a project. # How <!-- How did you build this feature or fix this bug and why? --> * Clarified that an Expo project can be created with `npx create-expo-app@latest` or by installing the latest `expo` package version, instead of requiring Expo SDK 54 specifically. * Added a note explaining that the `codex mcp add` command updates your Codex configuration and prompts for Expo account authentication. * Improved instructions for generating a personal access token by providing a direct link to the Access Tokens settings page and breaking down the steps for clarity. # Test Plan <!-- 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. --> Run the docs app locally, and visit: http://localhost:3002/eas/ai/mcp/ ## Preview <img width="870" height="234" alt="CleanShot 2026-01-19 at 16 56 51" src="https://github.com/user-attachments/assets/fba3f2cb-26c9-4f7d-8875-e8ce4c634ed0" /> <img width="879" height="248" alt="CleanShot 2026-01-19 at 16 57 28" src="https://github.com/user-attachments/assets/9b76aca0-6d95-4245-bb2a-9aa0dae92593" /> # 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). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
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 : )