Skip to content

feat: upgrade to RN v0.88 - #1173

Open
krozniata wants to merge 4 commits into
mainfrom
feat/upgrade-rn-088
Open

krozniata wants to merge 4 commits into
mainfrom
feat/upgrade-rn-088

Conversation

@krozniata

@krozniata krozniata commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Summary

Upgrades RN to v0.88

Applies changes from template to use SceneDelegate instead of AppDelegate to support iOS 27

image

Test Plan

What's required for testing (prerequisites)?

What are the steps to reproduce (after prerequisites)?

Compatibility

OS Implemented
iOS ✅❌
Android ✅❌

Checklist

  • I have tested this on a device and a simulator
  • I added the documentation in README.md
  • I updated the typed files (TS and Flow)

Base automatically changed from chore/cleanup-native-build-config to main October 12, 2026 12:49
@krozniata
krozniata force-pushed the feat/upgrade-rn-088 branch from edec660 to 9903011 Compare October 13, 2026 06:11
Copilot AI balanced review requested due to automatic review settings October 13, 2026 06:11

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.

🟡 Changes recommended

The Android NDK pin is incompatible with RN 0.88’s 16 KiB page-size configuration, and the documentation overstates stable-version support.

2 open findings
What changed in this PR

Upgrades the project and example app to React Native 0.88 RC and adopts the iOS scene lifecycle.

Changes:

  • Updates React Native, React, presets, and example dependencies.
  • Migrates iOS startup to SceneDelegate.
  • Regenerates JavaScript and CocoaPods lockfiles.
File Description
README.md Updates supported RN versions.
package.json Upgrades core development dependencies.
example/​package.json Upgrades example app dependencies.
example/​ios/​Podfile.lock Locks updated iOS pods.
example/​ios/​PagerViewExample/​SceneDelegate.swift Initializes React Native through scenes.
example/​ios/​PagerViewExample/​Info.plist Registers the scene lifecycle.
example/​ios/​PagerViewExample/​AppDelegate.swift Removes legacy RN initialization.
example/​ios/​PagerViewExample.xcodeproj/​project.pbxproj Adds SceneDelegate to the target.
bun.lock Locks upgraded JavaScript dependencies.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread package.json Outdated
"react": "19.2.3",
"react-native": "0.87.1",
"react": "19.3.0",
"react-native": "0.88.0-rc.5",
Comment thread README.md
@github-actions

Copy link
Copy Markdown

🟢 e2e: 14 passed

All 14 tests in 10 files
Test Time
🟢 tests/basic-pager.e2e.ts · 3 passed 1m 26s
🟢 basic pager › in LTR › pages horizontally 31.5s
🟢 basic pager › in LTR › pages vertically 21.1s
🟢 basic pager › in RTL › pages horizontally with the reversed gesture 33.1s
🟢 tests/issues/issue-1083-modal-set-page.e2e.ts · 1 passed 12.8s
🟢 setPage called behind a native-stack modal lands on the requested page 12.8s
🟢 tests/issues/issue-1098-nested-pager.e2e.ts · 1 passed 11.5s
🟢 outer pager stays responsive after its page count changes around a nested pager 11.5s
🟢 tests/issues/issue-1154-page-change-focus.e2e.ts · 3 passed 38.3s
🟢 leaving a page with setPage blurs its input 11.9s
🟢 leaving a page with a swipe blurs its input 9.9s
🟢 an input focused on the new page keeps focus 16.5s
🟢 tests/material-top-bar.e2e.ts · 1 passed 9.2s
🟢 material top tabs survive a native-stack push and pop 9.2s
🟢 tests/nested-pager-view.e2e.ts · 1 passed 9.4s
🟢 nested horizontal and vertical pagers scroll independently 9.4s
🟢 tests/on-page-selected.e2e.ts · 1 passed 10.5s
🟢 onPageSelected fires an alert for every page change 10.5s
🟢 tests/scrollable-pager-view.e2e.ts · 1 passed 14.1s
🟢 pager inside a ScrollView keeps its page across vertical scrolls 14.1s
🟢 tests/smoke.e2e.ts · 1 passed 7.8s
🟢 horizontal pager pages with the panel buttons 7.8s
🟢 tests/tab-view-inside-scroll-view.e2e.ts · 1 passed 11.6s
🟢 TabView inside a ScrollView swipes tabs and scrolls the page 11.6s

e2e 0.18.0 · 3m 32s · android · run artifacts

@github-actions

Copy link
Copy Markdown

🟢 e2e: 13 passed

All 13 tests in 11 files
Test Time
🟢 tests/basic-pager.e2e.ts · 3 passed 2m 21s
🟢 basic pager › in LTR › pages horizontally 36.5s
🟢 basic pager › in LTR › pages vertically 37.2s
🟢 basic pager › in RTL › pages horizontally with the reversed gesture 1m 7s
🟢 tests/issues/issue-1083-modal-set-page.e2e.ts · 1 passed 22.9s
🟢 setPage called behind a native-stack modal lands on the requested page 22.9s
🟢 tests/issues/issue-1096-keyboard-shrink.e2e.ts · 1 passed 28.6s
🟢 keyboard avoidance does not shrink the page under the keyboard 28.6s
🟢 tests/issues/issue-1098-nested-pager.e2e.ts · 1 passed 18.2s
🟢 outer pager stays responsive after its page count changes around a nested pager 18.2s
🟢 tests/issues/issue-1142-search-bar-inset.e2e.ts · 1 passed 22.2s
🟢 FlatList inside the pager gets the search bar safe-area insets 22.2s
🟢 tests/material-top-bar.e2e.ts · 1 passed 28.2s
🟢 material top tabs survive a native-stack push and pop 28.2s
🟢 tests/nested-pager-view.e2e.ts · 1 passed 21.6s
🟢 nested horizontal and vertical pagers scroll independently 21.6s
🟢 tests/on-page-selected.e2e.ts · 1 passed 27.1s
🟢 onPageSelected fires an alert for every page change 27.1s
🟢 tests/scrollable-pager-view.e2e.ts · 1 passed 45.1s
🟢 pager inside a ScrollView keeps its page across vertical scrolls 45.1s
🟢 tests/smoke.e2e.ts · 1 passed 14.4s
🟢 horizontal pager pages with the panel buttons 14.4s
🟢 tests/tab-view-inside-scroll-view.e2e.ts · 1 passed 18.5s
🟢 TabView inside a ScrollView swipes tabs and scrolls the page 18.5s

e2e 0.18.0 · 6m 30s · ios · run artifacts

@krozniata
krozniata force-pushed the feat/upgrade-rn-088 branch from 7b61f49 to 339d414 Compare October 13, 2026 09:21
@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

🟢 e2e: 20 passed

All 20 tests in 12 files
Test Time
🟢 tests/basic-pager.e2e.ts · 3 passed 1m 42s
🟢 basic pager › in LTR › pages horizontally 37.1s
🟢 basic pager › in LTR › pages vertically 23.2s
🟢 basic pager › in RTL › pages horizontally with the reversed gesture 41.7s
🟢 tests/issues/issue-1083-modal-set-page.e2e.ts · 1 passed 15.3s
🟢 setPage called behind a native-stack modal lands on the requested page 15.3s
🟢 tests/issues/issue-1098-nested-pager.e2e.ts · 1 passed 13.8s
🟢 outer pager stays responsive after its page count changes around a nested pager 13.8s
🟢 tests/issues/issue-1154-page-change-focus.e2e.ts · 3 passed 45.2s
🟢 leaving a page with setPage blurs its input 13.8s
🟢 leaving a page with a swipe blurs its input 11.9s
🟢 an input focused on the new page keeps focus 19.5s
🟢 tests/issues/issue-1156-nested-horizontal-scroll.e2e.ts · 3 passed 29.2s
🟢 a horizontal ScrollView in a page scrolls instead of the pager 9.5s
🟢 the pager takes the swipe once the ScrollView is at its edge 10.4s
🟢 a swipe outside the ScrollView changes the page 9.4s
🟢 tests/issues/issue-424-swipe-cancels-press.e2e.ts · 3 passed 34.5s
🟢 a tap on a button in a page presses it 10.1s
🟢 a swipe that starts on a button in a page cancels its touch 9.8s
🟢 a swipe while the JS thread is busy does not press the button 14.6s
🟢 tests/material-top-bar.e2e.ts · 1 passed 11.5s
🟢 material top tabs survive a native-stack push and pop 11.5s
🟢 tests/nested-pager-view.e2e.ts · 1 passed 10.5s
🟢 nested horizontal and vertical pagers scroll independently 10.5s
🟢 tests/on-page-selected.e2e.ts · 1 passed 12.3s
🟢 onPageSelected fires an alert for every page change 12.3s
🟢 tests/scrollable-pager-view.e2e.ts · 1 passed 17.3s
🟢 pager inside a ScrollView keeps its page across vertical scrolls 17.3s
🟢 tests/smoke.e2e.ts · 1 passed 9.1s
🟢 horizontal pager pages with the panel buttons 9.1s
🟢 tests/tab-view-inside-scroll-view.e2e.ts · 1 passed 13.9s
🟢 TabView inside a ScrollView swipes tabs and scrolls the page 13.9s

e2e 0.21.0 · 5m 16s · android · run artifacts

@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

🟢 e2e: 1 flaky, 12 passed

⚠️ 1 flaky test passed on a retry

⚠️ basic pager › in LTR › pages vertically
tests/support/test.ts:29

ACTION_FAILED (beforeEach) at step 1 of 1: device.openApp com.pagerviewexample, after 30.6s

device.openApp exceeded its timeout of 30000ms

All 13 tests in 11 files
Test Time
⚠️ tests/basic-pager.e2e.ts · 1 flaky, 2 passed 4m 3s
🟢 basic pager › in LTR › pages horizontally 1m 41s
⚠️ basic pager › in LTR › pages vertically (1 failed attempt first) 1m 8s
🟢 basic pager › in RTL › pages horizontally with the reversed gesture 1m 13s
🟢 tests/issues/issue-1083-modal-set-page.e2e.ts · 1 passed 23.9s
🟢 setPage called behind a native-stack modal lands on the requested page 23.9s
🟢 tests/issues/issue-1096-keyboard-shrink.e2e.ts · 1 passed 58.1s
🟢 keyboard avoidance does not shrink the page under the keyboard 58.1s
🟢 tests/issues/issue-1098-nested-pager.e2e.ts · 1 passed 33.5s
🟢 outer pager stays responsive after its page count changes around a nested pager 33.5s
🟢 tests/issues/issue-1142-search-bar-inset.e2e.ts · 1 passed 21.4s
🟢 FlatList inside the pager gets the search bar safe-area insets 21.4s
🟢 tests/material-top-bar.e2e.ts · 1 passed 29.5s
🟢 material top tabs survive a native-stack push and pop 29.5s
🟢 tests/nested-pager-view.e2e.ts · 1 passed 23.5s
🟢 nested horizontal and vertical pagers scroll independently 23.5s
🟢 tests/on-page-selected.e2e.ts · 1 passed 22.1s
🟢 onPageSelected fires an alert for every page change 22.1s
🟢 tests/scrollable-pager-view.e2e.ts · 1 passed 31.2s
🟢 pager inside a ScrollView keeps its page across vertical scrolls 31.2s
🟢 tests/smoke.e2e.ts · 1 passed 13.0s
🟢 horizontal pager pages with the panel buttons 13.0s
🟢 tests/tab-view-inside-scroll-view.e2e.ts · 1 passed 20.2s
🟢 TabView inside a ScrollView swipes tabs and scrolls the page 20.2s

e2e 0.21.0 · 9m 19s · ios · run artifacts

@krozniata
krozniata force-pushed the feat/upgrade-rn-088 branch from 339d414 to 6dcbcfe Compare October 16, 2026 06:56
@krozniata
krozniata marked this pull request as ready for review October 16, 2026 06:57
@krozniata
krozniata enabled auto-merge (squash) October 16, 2026 08:09
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.

2 participants