Skip to content

refactor: drop support for expo 54#407

Merged
hurali97 merged 7 commits into
mainfrom
refactor/remove-expo54
Jul 6, 2026
Merged

refactor: drop support for expo 54#407
hurali97 merged 7 commits into
mainfrom
refactor/remove-expo54

Conversation

@hurali97

@hurali97 hurali97 commented Jul 2, 2026

Copy link
Copy Markdown
Member

Summary

With this PR, we drop support for Expo SDK 54.

Test plan

  • CI passes

@hurali97 hurali97 marked this pull request as ready for review July 6, 2026 09:35
Copilot AI review requested due to automatic review settings July 6, 2026 09:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes Expo SDK 54 support from the repo by deleting the ExpoApp54 example app and stripping all pre-55 Expo-specific code paths (templates, iOS Podfile/Xcode helpers, docs, and consumer build variants), leaving Expo SDK 55+ as the supported baseline.

Changes:

  • Removed the apps/ExpoApp54 workspace and all related CI/local scripts, consumer app build flavors, and documentation.
  • Simplified the Expo config plugin implementation by dropping pre-55 handling (iOS patch script phase + Podfile hook logic; Android pre55 template path).
  • Updated docs and changesets to reflect the new supported Expo SDK range.

Reviewed changes

Copilot reviewed 74 out of 85 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
yarn.lock Drops Expo 54 and related transitive dependencies from the lockfile.
scripts/ci-local-expo54-ios-e2e.sh Removes local CI helper for ExpoApp54 iOS Detox E2E.
packages/react-native-brownfield/src/expo-config-plugin/template/ios/patchExpoPre55.sh Removes pre-55 iOS patch script template.
packages/react-native-brownfield/src/expo-config-plugin/template/android/ReactNativeHostManager.pre55.kt Removes pre-55 Android host manager template.
packages/react-native-brownfield/src/expo-config-plugin/ios/xcodeHelpers.ts Removes pre-55 Xcode build phase helpers for patching ExpoModulesProvider.
packages/react-native-brownfield/src/expo-config-plugin/ios/withBrownfieldIos.ts Removes conditional pre-55 patch-phase injection; keeps 55+ flow.
packages/react-native-brownfield/src/expo-config-plugin/ios/podfileHelpers.ts Removes pre-55 Podfile hook path; always injects 55+ swift define hook.
packages/react-native-brownfield/src/expo-config-plugin/ios/tests/xcodeHelpers.test.ts Removes ExpoApp54-specific deployment-target test coverage.
packages/react-native-brownfield/src/expo-config-plugin/ios/tests/withFmtFix.test.ts Updates test fixture target name from ExpoApp54 to ExpoApp55.
packages/react-native-brownfield/src/expo-config-plugin/expoUtils.ts Removes isExpoPre55 from Expo info helper.
packages/react-native-brownfield/src/expo-config-plugin/android/withAndroidModuleFiles.ts Drops pre-55 branching; always renders post-55 template.
packages/react-native-brownfield/src/expo-config-plugin/android/tests/withAndroidModuleFiles.test.ts Updates helper usage after removing isExpoPre55 parameter.
packages/cli/src/brownfield/utils/supportsPrebuiltRNCore.ts Retains Expo SDK gating logic (still requires Expo SDK >= 55).
packages/cli/src/brownfield/utils/tests/supportsPrebuiltRNCore.test.ts Removes Expo-related mocks/tests (but now needs updated mocking for project detection).
package.json Removes root script for local ExpoApp54 iOS E2E.
docs/docs/docs/guides/expo-updates/how-to.mdx Removes SDK54 section and updates admonition formatting + SDK 55 section.
docs/docs/docs/guides/expo-updates/expo-54.mdx Deletes the SDK54 manual setup guide.
docs/docs/docs/guides/expo-updates/_meta.json Removes expo-54 entry from docs sidebar metadata.
docs/docs/docs/getting-started/examples.mdx Removes references to ExpoApp54 and updates the examples list/notes.
CONTRIBUTING.md Removes Expo 54 references from contributing/testing/build documentation.
apps/README.md Removes ExpoApp54 references from apps overview.
apps/AppleApp/package.json Removes iOS consumer build script for ExpoApp54.
apps/AppleApp/Brownfield Apple App.xcodeproj/xcshareddata/xcschemes/xcschememanagement.plist Removes scheme management entry for Expo 54 scheme.
apps/AppleApp/Brownfield Apple App.xcodeproj/xcshareddata/xcschemes/Brownfield Apple App Expo 54.xcscheme Deletes Expo 54 Xcode scheme.
apps/AppleApp/Brownfield Apple App.xcodeproj/project.pbxproj Removes ExpoApp54 target and associated build phases/references.
apps/AndroidApp/package.json Removes Android consumer build script for Expo 54 flavor.
apps/AndroidApp/gradle/libs.versions.toml Removes Expo 54 brownfieldlib dependency coordinate.
apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/ReactNativeHostManager.kt Deletes Expo 54 variant typealias file.
apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/ReactNativeConstants.kt Deletes Expo 54 variant constants.
apps/AndroidApp/app/src/expo54/java/com/callstack/brownfield/android/expo/BrownfieldStore.kt Deletes Expo 54 variant store typealias file.
apps/AndroidApp/app/build.gradle.kts Removes expo54 product flavor and dependency wiring.
.github/actions/prepare-android/action.yml Updates cache segmentation docs to remove Expo 54 mention.
.changeset/loose-papers-beam.md Adds changeset entries bumping relevant packages for dropping Expo 54 support.
.changeset/config.json Removes ExpoApp54 from ignored packages and updates ignore list entries.
apps/ExpoApp54/utils/expo-rn-updates.ts Deletes ExpoApp54 utility (workspace removal).
apps/ExpoApp54/tsconfig.json Deletes ExpoApp54 config (workspace removal).
apps/ExpoApp54/RNApp.tsx Deletes ExpoApp54 RN entry component (workspace removal).
apps/ExpoApp54/README.md Deletes ExpoApp54 readme (workspace removal).
apps/ExpoApp54/package.json Deletes ExpoApp54 workspace manifest (workspace removal).
apps/ExpoApp54/jest.setup.js Deletes ExpoApp54 Jest setup (workspace removal).
apps/ExpoApp54/jest.config.js Deletes ExpoApp54 Jest config (workspace removal).
apps/ExpoApp54/hooks/use-theme-color.ts Deletes ExpoApp54 hook (workspace removal).
apps/ExpoApp54/hooks/use-color-scheme.web.ts Deletes ExpoApp54 hook (workspace removal).
apps/ExpoApp54/hooks/use-color-scheme.ts Deletes ExpoApp54 hook (workspace removal).
apps/ExpoApp54/eslint.config.mjs Deletes ExpoApp54 ESLint config (workspace removal).
apps/ExpoApp54/entry.tsx Deletes ExpoApp54 entrypoint (workspace removal).
apps/ExpoApp54/e2e/jest.config.cjs Deletes ExpoApp54 Detox Jest config (workspace removal).
apps/ExpoApp54/constants/theme.ts Deletes ExpoApp54 theme constants (workspace removal).
apps/ExpoApp54/components/ui/icon-symbol.tsx Deletes ExpoApp54 UI component (workspace removal).
apps/ExpoApp54/components/ui/icon-symbol.ios.tsx Deletes ExpoApp54 iOS UI component (workspace removal).
apps/ExpoApp54/components/ui/collapsible.tsx Deletes ExpoApp54 UI component (workspace removal).
apps/ExpoApp54/components/themed-view.tsx Deletes ExpoApp54 themed component (workspace removal).
apps/ExpoApp54/components/themed-text.tsx Deletes ExpoApp54 themed component (workspace removal).
apps/ExpoApp54/components/postMessage/MessageBubble.tsx Deletes ExpoApp54 postMessage UI (workspace removal).
apps/ExpoApp54/components/postMessage/Message.ts Deletes ExpoApp54 postMessage model (workspace removal).
apps/ExpoApp54/components/parallax-scroll-view.tsx Deletes ExpoApp54 UI component (workspace removal).
apps/ExpoApp54/components/hello-wave.tsx Deletes ExpoApp54 UI component (workspace removal).
apps/ExpoApp54/components/haptic-tab.tsx Deletes ExpoApp54 UI component (workspace removal).
apps/ExpoApp54/components/external-link.tsx Deletes ExpoApp54 UI component (workspace removal).
apps/ExpoApp54/components/counter/index.tsx Deletes ExpoApp54 counter component (workspace removal).
apps/ExpoApp54/BrownfieldStore.brownie.ts Deletes ExpoApp54 brownie store types (workspace removal).
apps/ExpoApp54/brownfield.navigation.ts Deletes ExpoApp54 navigation spec (workspace removal).
apps/ExpoApp54/brownfield.config.json Deletes ExpoApp54 brownfield config (workspace removal).
apps/ExpoApp54/app/modal.tsx Deletes ExpoApp54 route (workspace removal).
apps/ExpoApp54/app/(tabs)/postMessage.tsx Deletes ExpoApp54 tab route (workspace removal).
apps/ExpoApp54/app/(tabs)/index.tsx Deletes ExpoApp54 tab route (workspace removal).
apps/ExpoApp54/app/(tabs)/explore.tsx Deletes ExpoApp54 tab route (workspace removal).
apps/ExpoApp54/app/(tabs)/_layout.tsx Deletes ExpoApp54 tabs layout (workspace removal).
apps/ExpoApp54/app/_layout.tsx Deletes ExpoApp54 root layout (workspace removal).
apps/ExpoApp54/app.json Deletes ExpoApp54 Expo config (workspace removal).
apps/ExpoApp54/.gitignore Deletes ExpoApp54 gitignore (workspace removal).
apps/ExpoApp54/.detoxrc.cjs Deletes ExpoApp54 Detox config (workspace removal).
apps/ExpoApp54/tests/brownfield.example.test.tsx Deletes ExpoApp54 Jest suite (workspace removal).
apps/brownfield-example-shared-tests/e2e/createDetoxJestConfig.cjs Updates shared tests docstring to remove ExpoApp54 mention.
apps/brownfield-example-shared-tests/detox-appleapp-variants.cjs Updates comment to reflect current AppleApp variants list.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/docs/docs/guides/expo-updates/how-to.mdx Outdated
Comment thread docs/docs/docs/guides/expo-updates/how-to.mdx Outdated
Comment thread docs/docs/docs/guides/expo-updates/how-to.mdx Outdated

@artus9033 artus9033 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM after comments resolved - we need to address versioning.

Comment thread .changeset/loose-papers-beam.md Outdated
Comment thread .changeset/loose-papers-beam.md Outdated

@artus9033 artus9033 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@hurali97 hurali97 merged commit dee9559 into main Jul 6, 2026
15 of 16 checks passed
@hurali97 hurali97 deleted the refactor/remove-expo54 branch July 6, 2026 11:17
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.

3 participants