Skip to content

chore: upgrade playground to Expo SDK 58 - #570

Open
lukewalczak wants to merge 1 commit into
callstackincubator:mainfrom
lukewalczak:chore/upgrade-expo-sdk-58
Open

lukewalczak wants to merge 1 commit into
callstackincubator:mainfrom
lukewalczak:chore/upgrade-expo-sdk-58

Conversation

@lukewalczak

Copy link
Copy Markdown

Description

Upgrades the playground to Expo SDK 58 (React Native 0.88, React 19.3) and moves the workspace catalog to the same versions.

  • Align Expo, React Native, Metro 0.87 and native dependencies with the SDK 58 compatibility set.
  • Bump react-native-performance to 7.0.0 in the playground and @rozenite/performance-monitor-plugin.
  • Fix rozenite build for plugins on React Native 0.87+: the CommonJS emit no longer type checks (noCheck).
  • Type NativeEventEmitter in the network activity WebSocket interceptor and fix two playground type errors surfaced by the new React Native types.

Related Issue

Closes

Context

Since React Native 0.87, react-native/package.json has no top-level types field; types are published only through exports. The CommonJS emit of rozenite build uses moduleResolution: node10, which ignores exports, so every plugin whose React Native entry imports react-native failed with TS7016 (5 of 14 plugins in this repo). The emit without declarations now sets noCheck: the declaration emit of the same target still type checks the same sources with bundler resolution, and the compiled CommonJS output of all 14 plugins is byte-for-byte identical with and without it. noCheck needs TypeScript 5.6+; the plugin template has shipped 5.7+ since its first commit.

react-native-performance 5.1.4 does not compile on iOS against React Native 0.88 (StartupLogger lost getRunJSBundleEndTime and friends); 7.0.0 keeps the same public API. Nitro packages stay on the versions from main; they were verified on both platforms.

expo-doctor still reports duplicate expo copies, which already exist on main (peer variants differing only by typescript version).

Testing

Automated:

  • pnpm checks:affected — 106/106 tasks
  • pnpm test:affected — 72/72 tasks
  • pnpm --filter @rozenite/playground exec expo install --check — dependencies up to date
  • pnpm install --frozen-lockfile

Manual, playground on Android emulator (Pixel 8 Pro) and iOS simulator (iPhone 17 Pro, iOS 27.1):

  • pnpm --filter @rozenite/playground android / ios build, install and start without crashes.
  • Network Activity: fetch and Nitro GET return 200, WebSocket connects and receives messages (fetch and Nitro tabs).
  • Performance Monitor: metric, mark, measure and network request fire without errors.
  • File System: "Save react logo" writes the file.

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