[expo-updates] Add fingerprintExperimental runtime version policy (#24126)# Why Manually handling runtimeVersions is a big pain for projects that uses native modules. This PR adds a new runtime
[expo-updates] Add fingerprintExperimental runtime version policy (#24126)# Why Manually handling runtimeVersions is a big pain for projects that uses native modules. This PR adds a new runtime policy that handles this automatically. See: https://discord.com/channels/695411232856997968/1142023605908156476/1142023605908156476 # How Using [expo-fingerprint](https://github.com/expo/expo/tree/main/packages/@expo/fingerprint#readme) to auto-generate a hash for the project. # Test Plan I made the changes locally on a working project and the build was successfully with expo prebuild. I checked the native files and the runtime version was set to the project hash. # 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 `npx expo prebuild` & EAS Build (eg: updated a module plugin). --------- Co-authored-by: Expo Bot <[email protected]> Co-authored-by: Aman Mittal <[email protected]> Co-authored-by: Kudo Chien <[email protected]> Co-authored-by: Douglas Lowder <[email protected]>
show more ...
[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]>
refactor(config-plugins): add existing native files ignore option (#23165)# Why Part of ENG-8481 This option helps to align the entitlements more to what users would expect. With this, we ca
refactor(config-plugins): add existing native files ignore option (#23165)# Why Part of ENG-8481 This option helps to align the entitlements more to what users would expect. With this, we can fetch the entitlements without the native files, if the user has gitignored them. > Note, this is an opt-in and does not change the default behavior. # How - Added opt-in option `ignoreExistingNativeFiles` to `evalModsAsync` # Todo In EAS CLI, we already know if the user has ignored certain paths. With this feature, we can enable this option (with the proper warnings and opt-out if they need to). See: https://github.com/expo/eas-cli/pull/1906 # Test Plan See added tests. > **Note** > I created the glob mocks by using the vscode launch config, and added a breakpoint whenever an "unexpected" glob was used. By doing that through vscode, I could quickly find all globs that were executed for this test. See config below if you want to try it too. <details><summary>vscode launch config</summary> ```json { "configurations": [ { "name": "Test mods", "request": "launch", "runtimeArgs": ["jest", "--verbose", "withIosBaseMods"], "runtimeExecutable": "yarn", "cwd": "${workspaceFolder}/packages/@expo/config-plugins", "skipFiles": ["<node_internals>/**"], "type": "node", "console": "integratedTerminal", "internalConsoleOptions": "neverOpen" } ] } ``` </details> # 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).
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]>
feat(config plugins): better support out of tree support (#22209)# Why Fix various validation issues when using `nexpo prebuild --platform windows --template https://github.com/microsoft/react
feat(config plugins): better support out of tree support (#22209)# Why Fix various validation issues when using `nexpo prebuild --platform windows --template https://github.com/microsoft/react-native-windows-samples/tree/main/samples/AppServiceDemo` <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> # How <!-- How did you build this feature or fix this bug and why? --> # 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. --> # 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). --------- Co-authored-by: Expo Bot <[email protected]>
fix(config-plugins): default to `['dangerous']` sort order when using unknown platforms (#22224)# Why Follow-up of #22201 # How When using arbitrary platforms, like `foobar`, the sort orde
fix(config-plugins): default to `['dangerous']` sort order when using unknown platforms (#22224)# Why Follow-up of #22201 # How When using arbitrary platforms, like `foobar`, the sort order is not defined. This results in errors like:  Instead, this change adds a default sorting order of `['dangerous']` when using arbitrary platforms. # Test Plan - Clone the example repository: https://github.com/byCedric/custom-prebuild-example - Create a tarball from template `$ cd ./template && npm pack` - Run `$ expo prebuild --platform macos --template ../template/custom-prebuild-template-1.0.0.tgz` This should not fail as the screenshot above. # 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).
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]>
feat(cli): reduce multi target iOS warnings (#18890)* feat(cli): handle multi-target ios app opening better * Update scheme.ts * Update clearNativeFolder.ts * Update withIosBaseMods.ts
feat(cli): reduce multi target iOS warnings (#18890)* feat(cli): handle multi-target ios app opening better * Update scheme.ts * Update clearNativeFolder.ts * Update withIosBaseMods.ts * check for pbxproj * Update packages/@expo/cli/CHANGELOG.md Co-authored-by: Expo Bot <[email protected]> * Update scheme.ts * Update clearNativeFolder-test.ts * Update MetroBundlerDevServer-test.ts * Update MetroBundlerDevServer-test.ts * Update scheme.ts Co-authored-by: Expo Bot <[email protected]>
chore: migrate config, config-plugins, config-types, prebuild-config (#17958)