Conversation
…ove symlink following (#44280) # Why `readdir`/`readdirSync` don't have a flag to turn off symlink-following. This makes the calls potentially dangerous, since they can enter uncontrolled directory traversals and infinite loops. While this shouldn't be an issue for the directory we're scanning here, it's just a few lines of code to replace this behaviour, so probably worth it. Discovered as part of #44279 # How - Replace `readdirSync(..., { recursive: true })` with manual directory traversal # Test Plan - See #44279 for tests first # 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)
…#45446) # Why The current data structure accumulates duplicates over time and doesn't merge well, which can cause excessive GC runs and an unbounded increase in memory over time. # How - Restructure data structure to shed `Set` and replace `{ request, path }` structure - **NOTE:** This had nothing to merge on before - Reduce cost of `customResolverOptions` serialisation for keying - Add memoisation for previous map structure as a micro-opt # Test Plan - Existing tests (with changes to adjust the data structure) should pass as-is # 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 <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> Fix ENG-20848 # How <!-- How did you build this feature or fix this bug and why? --> - Update the CodePush migration conceptual differences section to account for Channel Surfing - Replace outdated wording that said release builds could not switch update streams - Link to the Channel Surfing docs for production-build runtime channel switching # 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. --> Proofread. # 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) --------- Co-authored-by: Kadi Kraman <hellokadi@gmail.com>
# Why We're enabling prebuilds on iOS by default starting from SDK 56 # How Update the default template to enable `EXPO_USE_PRECOMPILED_MODULES` var by default # Test Plan run `pod install` inside BareExpo # 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 Another version - `4.25.0-beta.3` - of `react-native-screens` was released, with breaking change to native tabs state management. This should be the final version and if everything works correctly will be upgraded to `4.25.0` tomorrow. **Note**: Code bundled for our current beta version, will not align with the `4.25.0-beta.3` - react-native-screens needs to be aligned with router version # How # Test Plan 1. Bare expo 2. Router e2e 3. Expo go # 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: Expo Bot <34669131+expo-bot@users.noreply.github.com>
…custom Babel transformers (#45495) # Why The `getCacheKey` function on Babel transformers is new, and is probably missing from a lot of wrappers that use our transformer. We should fall back to ours when it's missing, since the alternative is that no cache key gets generated for a user's Babel config. # How - Check if we have a Babel config and fall back to our Babel transformer's `getCacheKey` if the transform is missing one > [!NOTE] > We should aim to also move reanimated/worklets version to `babel-preset-expo`'s `getCacheKey`. It's currently lacking one and we should somehow embed it, and check what the right approach is. Getting these versions out of the Metro config (which is then sourced into its `getCacheKey` seems better # Test Plan - Manually verified with custom transformer # 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)
…ting typescript types. (#44442)
@expo/ui@56.0.3 expo-symbols@56.0.5 expo-router@56.1.0 expo-modules-core@56.0.4 expo-linear-gradient@56.0.4 expo-calendar@56.0.4 expo-brownfield@56.0.4 expo-app-metrics@56.0.4 expo@56.0.0-preview.6 create-expo@3.7.3 @expo/metro-config@56.0.4 @expo/cli@56.0.6 expo-template-default@56.0.6 expo-template-tabs@56.0.6 expo-template-blank@56.0.6 expo-template-blank-typescript@56.0.6 expo-template-bare-minimum@56.0.6 @expo/log-box@56.0.5 expo-asset@56.0.5 expo-constants@56.0.5 expo-task-manager@56.0.4 expo-build-properties@56.0.4 expo-dev-menu@56.0.4 expo-dev-launcher@56.0.4 expo-widgets@56.0.4 patch-project@56.0.6 expo-background-task@56.0.4 expo-background-fetch@56.0.4 expo-sharing@56.0.4 expo-processing@56.0.4 expo-observe@56.0.4 expo-notifications@56.0.4 expo-location@56.0.4 expo-insights@56.0.4 expo-image-picker@56.0.4 expo-image-manipulator@56.0.4 expo-dev-client@56.0.4 expo-updates@56.0.5
# Why For enrichment of the updates dashboard in EAS, it would be helpful to have channel and runtime version headers in all asset requests for updates. # How Inspection of the code indicates that the channel is already included in the headers for asset requests, but runtime version was only added for the full update requests. The runtime version headers are now added for assets in both iOS and Android versions of the FileDownloader class. # Test Plan Tests for the presence of the correct headers are added to the Updates E2E (enabled) CI.
# Why - The Metro loading bar will show up multiple times in CI and non-interactive terminals. This change removes any progress updates until the bundling is complete. When observed in agents this appears to make it clearer that a fix has been applied and the dev server does not need to reset. - I also fixed the `--port 0` issue and changed the behavior so it finds the first available port instead of a random port. # Test Plan - Reproduced first with unit tests, then developed against the tests. - Tested manually in a project. --------- Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
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 : )