Skip to content

feat: update pnpm workspace for Expo SDK 58 and React Native 0.88 - #1502

Open
whydidoo wants to merge 2 commits into
callstack:mainfrom
whydidoo:feat/expo-sdk-58
Open

whydidoo wants to merge 2 commits into
callstack:mainfrom
whydidoo:feat/expo-sdk-58

Conversation

@whydidoo

Copy link
Copy Markdown
Collaborator

Summary

Expo SDK 58 (React Native 0.88) didn't bundle with Re.Pack. This PR fixes it and moves the Expo testers to SDK 58.

  • Polyfills: RN 0.87+ no longer depends on @react-native/js-polyfills. In Expo apps it is only reachable through expo → @expo/metro-config, so the lookup now checks there too. RN <= 0.86 still uses rn-get-polyfills.js.
  • Subpath exports: react-native/setup-env, react-native/react-private-interface and the other subpaths RN declares in exports didn't resolve, because repack-expo aliases react-native to its directory. NativeEntryPlugin now adds exact aliases for them. It also maps @react-native/assets-registry/registry (used by react-native-svg <= 15.15) to RN's registry. A user's own alias for the same request is never overridden.
  • repack-expo: @react-native/assets-registry is aliased only when react-native depends on it. RN 0.88 dropped that dependency, so a standalone SDK 58 app failed with REACT_NATIVE_RESOLUTION_FAILED.
  • Testers: the expo57 catalog becomes expo58 (expo ~58.0.13, RN 0.88.0, React 19.3.0).

Test plan

  • repack jest 365/365, repack-expo 125/125 (9 failed on SDK 58 before this PR), integration 139 passed, typecheck clean.
  • apps/tester-expo on the iOS simulator and the Android emulator, in dev and in release (repack-expo build --run): all 7 routes work, including both MF v2 widgets and Fast Refresh.

- Updated package versions in pnpm-workspace.yaml to align with Expo SDK 58.
- Added new aliases for React Native subpath exports in NativeEntryPlugin tests.
- Introduced setup-env.js to handle environment setup for React Native.
- Enhanced documentation to clarify package exports requirements for React Native 0.87 and newer.
@vercel

vercel Bot commented Oct 16, 2026

Copy link
Copy Markdown

@whydidoo is attempting to deploy a commit to the Callstack Team on Vercel.

A member of the Team first needs to authorize it.

@changeset-bot

changeset-bot Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9242c5f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 6 packages
Name Type
@callstack/repack Patch
@callstack/repack-plugin-expo-modules Patch
@callstack/repack-plugin-nativewind Patch
@callstack/repack-plugin-reanimated Patch
@callstack/repack-dev-server Patch
@callstack/repack-init Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

- Changed react-native-screens version to use testers catalog.
- Updated react to 19.3.0 and react-native to 0.88.0.
- Adjusted expo58 catalog to remove redundant react and react-native entries.
- Updated react-native-test-app to 5.4.14.
- Updated babel presets and community CLI plugins to 0.88.0.
- Ensured compatibility with React Native >= 0.87 by adding metro-config.
- Updated versions for react-native-reanimated, react-native-safe-area-context, react-native-screens, and react-native-worklets.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant