Skip to content

chore(ci): Upgrade performance test apps to React Native 0.85.1#6088

Merged
antonis merged 6 commits intomainfrom
antonis/upgrade-perf-test-apps-rn-0.85.1
May 6, 2026
Merged

chore(ci): Upgrade performance test apps to React Native 0.85.1#6088
antonis merged 6 commits intomainfrom
antonis/upgrade-perf-test-apps-rn-0.85.1

Conversation

@antonis
Copy link
Copy Markdown
Contributor

@antonis antonis commented May 5, 2026

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

Upgrades the performance test apps (TestAppPlain/TestAppSentry) from React Native 0.80.2 to 0.85.1, aligning them with the RN version used in the e2e test matrix.

Changes across both apps:

Component Before After
react-native 0.80.2 0.85.1
react 19.1.0 19.2.3
@react-native-community/cli* 19.1.x 20.1.0
@react-native/{babel-preset,metro-config,typescript-config} 0.80.2 0.85.1
Android buildToolsVersion 35.0.0 36.0.0
Android compileSdkVersion/targetSdkVersion 35 36
Gradle 8.14.1 9.3.1

Additional changes:

  • Added edgeToEdgeEnabled=false to gradle.properties (new RN 0.85 template property)
  • Added nkf gem to Gemfiles (Ruby 3.4 compatibility, per RN 0.85 template)
  • Set REACT_NATIVE_NODE_MODULES_DIR for perf test iOS builds to fix podspec RN version detection in the yarn workspace (the podspec was resolving packages/core/node_modules/react-native at 0.80.1 instead of the test app's 0.85.1, causing the old Hermes profiling API to be compiled)
  • Bumped iOS binary size threshold from 1470 to 1550 KiB to accommodate the increased Sentry-vs-plain diff after the RN upgrade
  • Relaxed iOS startup time diffMin from -20 to -3000 — on RN 0.85.1, the plain app consistently shows ~2.6s slower startup via Appium's activateApp() duration measurement. This is a measurement artifact (not real overhead); the diffMax still guards against SDK overhead regressions. See Flaky E2E Metrics App Start Time #3413

Notes:

  • newArchEnabled is intentionally kept as false (default). CI toggles it for the new-arch matrix variant.

💡 Motivation and Context

Closes #4426

This is a followup on #4414 which bumped the apps from RN 0.70.6 to 0.70.15 as a minimal fix. Upgrading to 0.85.1 brings the perf test apps in line with the e2e test matrix and modern Android/iOS tooling.

💚 How did you test it?

CI — monitoring the metrics job for binary size and startup time regressions.

📝 Checklist

  • I added tests to verify changes
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled
  • I updated the docs if needed.
  • I updated the wizard if needed.
  • All tests passing
  • No breaking changes

🔮 Next steps

#skip-changelog

Closes #4426

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 5, 2026

Semver Impact of This PR

None (no version bump detected)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


This PR will not appear in the changelog.


🤖 This preview updates automatically when you update the PR.

@antonis antonis added the ready-to-merge Triggers the full CI test suite label May 5, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 5, 2026

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 407.33 ms 463.22 ms 55.90 ms
Size 48.30 MiB 53.46 MiB 5.15 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
2c735cc+dirty 414.09 ms 438.47 ms 24.38 ms
3d377b5+dirty 406.18 ms 453.52 ms 47.34 ms
5c1e987+dirty 423.52 ms 471.64 ms 48.12 ms
23598c3+dirty 414.12 ms 426.24 ms 12.12 ms
04207c4+dirty 459.19 ms 518.54 ms 59.35 ms
8929511+dirty 405.33 ms 452.16 ms 46.83 ms
0d9949d+dirty 403.57 ms 437.00 ms 33.43 ms
4953e94+dirty 442.02 ms 456.52 ms 14.50 ms
df5d108+dirty 527.06 ms 603.58 ms 76.52 ms
7ac3378+dirty 404.78 ms 439.84 ms 35.06 ms

App size

Revision Plain With Sentry Diff
2c735cc+dirty 43.75 MiB 48.08 MiB 4.33 MiB
3d377b5+dirty 43.75 MiB 48.14 MiB 4.39 MiB
5c1e987+dirty 43.75 MiB 48.08 MiB 4.33 MiB
23598c3+dirty 43.75 MiB 48.16 MiB 4.41 MiB
04207c4+dirty 43.75 MiB 48.12 MiB 4.37 MiB
8929511+dirty 43.75 MiB 48.16 MiB 4.41 MiB
0d9949d+dirty 43.75 MiB 48.13 MiB 4.37 MiB
4953e94+dirty 43.75 MiB 48.08 MiB 4.33 MiB
df5d108+dirty 43.75 MiB 48.08 MiB 4.33 MiB
7ac3378+dirty 43.75 MiB 48.13 MiB 4.37 MiB

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 5, 2026

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 491.63 ms 526.30 ms 34.67 ms
Size 48.30 MiB 53.46 MiB 5.15 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
5fe1c6c+dirty 365.84 ms 408.62 ms 42.78 ms
2c735cc+dirty 435.20 ms 459.48 ms 24.28 ms
3d377b5+dirty 425.38 ms 440.67 ms 15.30 ms
4b87b12+dirty 356.23 ms 399.86 ms 43.63 ms
04207c4+dirty 395.40 ms 456.55 ms 61.15 ms
7ac3378+dirty 410.67 ms 442.60 ms 31.92 ms
3ce5254+dirty 373.90 ms 427.84 ms 53.94 ms
5c1e987+dirty 444.71 ms 475.13 ms 30.42 ms
3817909+dirty 357.52 ms 391.52 ms 34.00 ms
a50b33d+dirty 353.21 ms 398.48 ms 45.27 ms

App size

Revision Plain With Sentry Diff
5fe1c6c+dirty 43.94 MiB 49.00 MiB 5.06 MiB
2c735cc+dirty 43.94 MiB 48.94 MiB 5.00 MiB
3d377b5+dirty 43.94 MiB 49.00 MiB 5.06 MiB
4b87b12+dirty 43.94 MiB 49.00 MiB 5.06 MiB
04207c4+dirty 43.94 MiB 48.98 MiB 5.04 MiB
7ac3378+dirty 43.94 MiB 48.99 MiB 5.05 MiB
3ce5254+dirty 43.94 MiB 48.98 MiB 5.04 MiB
5c1e987+dirty 43.94 MiB 48.94 MiB 5.00 MiB
3817909+dirty 43.94 MiB 48.94 MiB 5.00 MiB
a50b33d+dirty 43.94 MiB 48.94 MiB 5.00 MiB

antonis and others added 2 commits May 5, 2026 11:03
The podspec's node resolution finds packages/core/node_modules/react-native
(0.80.1) instead of the perf test app's (0.85.1) due to yarn workspace
symlink resolution. This causes NEW_HERMES_RUNTIME to not be defined,
and the old Hermes static profiling API (removed in RN 0.85) to be compiled.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The RN 0.80 to 0.85 upgrade increased the Sentry-vs-plain iOS binary
size diff from ~1.44 MiB to ~1.51 MiB.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@antonis
Copy link
Copy Markdown
Contributor Author

antonis commented May 5, 2026

@sentry review

@antonis
Copy link
Copy Markdown
Contributor Author

antonis commented May 5, 2026

@cursor review

Comment thread performance-tests/TestAppSentry/package.json
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit fbd7702. Configure here.

@antonis antonis marked this pull request as ready for review May 5, 2026 09:56
Copy link
Copy Markdown
Collaborator

@lucas-zimerman lucas-zimerman left a comment

Choose a reason for hiding this comment

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

LGTM!

antonis and others added 3 commits May 6, 2026 10:03
On RN 0.85.1, the iOS startup time test consistently shows the plain
app ~2.6s slower than the Sentry app. This is a measurement artifact
of using Appium's activateApp() duration rather than actual UI render
time — the command returns at different times based on binary
characteristics unrelated to SDK overhead.

Relaxing diffMin to -3000 for iOS only. Android keeps -20 as it
doesn't exhibit this behavior. The diffMax (150ms) still catches real
SDK overhead regressions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Comment thread performance-tests/metrics-ios.yml
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 690bc89. Configure here.

Comment thread performance-tests/metrics-ios.yml
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 2026

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 3830.37 ms 1210.45 ms -2619.93 ms
Size 5.15 MiB 6.66 MiB 1.51 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
3ce5254+dirty 1219.93 ms 1221.90 ms 1.96 ms
7d6fd3a+dirty 1223.29 ms 1229.57 ms 6.28 ms
04207c4+dirty 1191.27 ms 1189.78 ms -1.48 ms
3d377b5+dirty 1218.48 ms 1219.51 ms 1.03 ms
df5d108+dirty 1225.90 ms 1220.14 ms -5.76 ms
5fe1c6c+dirty 1220.79 ms 1217.63 ms -3.16 ms
5c1e987+dirty 1204.30 ms 1222.15 ms 17.85 ms
23598c3+dirty 1207.00 ms 1209.90 ms 2.90 ms
3817909+dirty 1183.90 ms 1187.50 ms 3.60 ms
0d9949d+dirty 1211.38 ms 1219.67 ms 8.29 ms

App size

Revision Plain With Sentry Diff
3ce5254+dirty 3.38 MiB 4.76 MiB 1.38 MiB
7d6fd3a+dirty 3.38 MiB 4.77 MiB 1.39 MiB
04207c4+dirty 3.38 MiB 4.76 MiB 1.38 MiB
3d377b5+dirty 3.38 MiB 4.76 MiB 1.38 MiB
df5d108+dirty 3.38 MiB 4.73 MiB 1.35 MiB
5fe1c6c+dirty 3.38 MiB 4.77 MiB 1.39 MiB
5c1e987+dirty 3.38 MiB 4.73 MiB 1.35 MiB
23598c3+dirty 3.38 MiB 4.80 MiB 1.42 MiB
3817909+dirty 3.38 MiB 4.73 MiB 1.35 MiB
0d9949d+dirty 3.38 MiB 4.76 MiB 1.38 MiB

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 2026

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 3853.94 ms 1231.07 ms -2622.87 ms
Size 5.15 MiB 6.66 MiB 1.51 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
3ce5254+dirty 1217.70 ms 1224.69 ms 6.99 ms
7d6fd3a+dirty 1210.89 ms 1217.63 ms 6.74 ms
04207c4+dirty 1228.55 ms 1226.04 ms -2.51 ms
3d377b5+dirty 1201.55 ms 1201.80 ms 0.25 ms
df5d108+dirty 1207.34 ms 1210.50 ms 3.16 ms
5fe1c6c+dirty 1201.36 ms 1209.15 ms 7.78 ms
5c1e987+dirty 1208.43 ms 1220.72 ms 12.29 ms
23598c3+dirty 1223.59 ms 1229.13 ms 5.53 ms
3817909+dirty 1210.76 ms 1215.64 ms 4.89 ms
0d9949d+dirty 1203.94 ms 1202.27 ms -1.67 ms

App size

Revision Plain With Sentry Diff
3ce5254+dirty 3.38 MiB 4.76 MiB 1.38 MiB
7d6fd3a+dirty 3.38 MiB 4.77 MiB 1.39 MiB
04207c4+dirty 3.38 MiB 4.76 MiB 1.38 MiB
3d377b5+dirty 3.38 MiB 4.76 MiB 1.38 MiB
df5d108+dirty 3.38 MiB 4.73 MiB 1.35 MiB
5fe1c6c+dirty 3.38 MiB 4.77 MiB 1.39 MiB
5c1e987+dirty 3.38 MiB 4.73 MiB 1.35 MiB
23598c3+dirty 3.38 MiB 4.80 MiB 1.42 MiB
3817909+dirty 3.38 MiB 4.73 MiB 1.35 MiB
0d9949d+dirty 3.38 MiB 4.76 MiB 1.38 MiB

@antonis antonis merged commit 91bcd28 into main May 6, 2026
81 of 83 checks passed
@antonis antonis deleted the antonis/upgrade-perf-test-apps-rn-0.85.1 branch May 6, 2026 11:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Triggers the full CI test suite

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade performance test apps on the latest RN version

2 participants