-
-
Notifications
You must be signed in to change notification settings - Fork 337
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Chore: Upgrade core to RN 0.75 #4173
base: main
Are you sure you want to change the base?
Conversation
# Conflicts: # samples/react-native/package.json
Co-authored-by: LucasZF <[email protected]>
Co-authored-by: Krystof Woldrich <[email protected]>
Android (legacy) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
34aba08 | 328.10 ms | 342.84 ms | 14.74 ms |
8ae23a7 | 526.83 ms | 513.38 ms | -13.45 ms |
abb7058 | 370.27 ms | 389.58 ms | 19.31 ms |
e73f4ed+dirty | 332.96 ms | 354.33 ms | 21.37 ms |
62a750b | 395.96 ms | 423.36 ms | 27.41 ms |
31fcca2 | 391.22 ms | 414.78 ms | 23.56 ms |
fe13591 | 478.92 ms | 480.84 ms | 1.92 ms |
76d1baf+dirty | 335.72 ms | 355.52 ms | 19.80 ms |
5a22220 | 412.38 ms | 447.35 ms | 34.97 ms |
8900e1a+dirty | 430.68 ms | 456.13 ms | 25.44 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
34aba08 | 17.73 MiB | 19.80 MiB | 2.07 MiB |
8ae23a7 | 17.74 MiB | 20.07 MiB | 2.34 MiB |
abb7058 | 17.73 MiB | 19.83 MiB | 2.10 MiB |
e73f4ed+dirty | 17.73 MiB | 20.04 MiB | 2.31 MiB |
62a750b | 17.73 MiB | 19.93 MiB | 2.20 MiB |
31fcca2 | 17.73 MiB | 19.90 MiB | 2.17 MiB |
fe13591 | 17.74 MiB | 20.07 MiB | 2.34 MiB |
76d1baf+dirty | 17.73 MiB | 20.04 MiB | 2.31 MiB |
5a22220 | 17.73 MiB | 19.93 MiB | 2.20 MiB |
8900e1a+dirty | 17.73 MiB | 19.75 MiB | 2.01 MiB |
Previous results on branch: antonis/rn-0.75.4-core
Startup times
Revision | Plain | With Sentry | Diff |
---|---|---|---|
dd27cec | 496.40 ms | 521.70 ms | 25.30 ms |
1d9d09f | 475.76 ms | 476.40 ms | 0.64 ms |
40940de | 475.86 ms | 485.71 ms | 9.86 ms |
043095f | 491.90 ms | 492.22 ms | 0.32 ms |
2374c56 | 458.34 ms | 442.32 ms | -16.02 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
dd27cec | 17.74 MiB | 20.07 MiB | 2.34 MiB |
1d9d09f | 17.74 MiB | 20.07 MiB | 2.34 MiB |
40940de | 17.74 MiB | 20.07 MiB | 2.34 MiB |
043095f | 17.74 MiB | 20.07 MiB | 2.34 MiB |
2374c56 | 17.74 MiB | 20.07 MiB | 2.34 MiB |
iOS (legacy) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
ac41368+dirty | 1226.65 ms | 1237.90 ms | 11.24 ms |
62a750b+dirty | 1216.60 ms | 1229.14 ms | 12.54 ms |
baa882f+dirty | 1218.00 ms | 1227.04 ms | 9.04 ms |
d361d38+dirty | 1246.04 ms | 1267.12 ms | 21.08 ms |
4cc5c27+dirty | 1211.45 ms | 1214.60 ms | 3.16 ms |
148f924+dirty | 1214.76 ms | 1215.73 ms | 0.97 ms |
8ae23a7+dirty | 1230.02 ms | 1227.62 ms | -2.40 ms |
31fcca2+dirty | 1209.17 ms | 1216.21 ms | 7.04 ms |
0db0c72+dirty | 1275.02 ms | 1285.84 ms | 10.82 ms |
3ffcddd+dirty | 1244.47 ms | 1264.14 ms | 19.67 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
ac41368+dirty | 2.36 MiB | 3.14 MiB | 793.46 KiB |
62a750b+dirty | 2.36 MiB | 2.92 MiB | 570.00 KiB |
baa882f+dirty | 2.36 MiB | 3.08 MiB | 731.91 KiB |
d361d38+dirty | 2.36 MiB | 2.85 MiB | 499.84 KiB |
4cc5c27+dirty | 2.36 MiB | 3.04 MiB | 698.52 KiB |
148f924+dirty | 2.36 MiB | 3.04 MiB | 696.25 KiB |
8ae23a7+dirty | 2.36 MiB | 3.10 MiB | 752.42 KiB |
31fcca2+dirty | 2.36 MiB | 2.90 MiB | 552.95 KiB |
0db0c72+dirty | 2.36 MiB | 2.84 MiB | 487.01 KiB |
3ffcddd+dirty | 2.36 MiB | 2.84 MiB | 489.60 KiB |
Previous results on branch: antonis/rn-0.75.4-core
Startup times
Revision | Plain | With Sentry | Diff |
---|---|---|---|
40940de+dirty | 1221.61 ms | 1233.64 ms | 12.03 ms |
dd27cec+dirty | 1210.13 ms | 1210.23 ms | 0.10 ms |
2374c56+dirty | 1207.74 ms | 1218.33 ms | 10.58 ms |
043095f+dirty | 1234.06 ms | 1226.34 ms | -7.72 ms |
1d9d09f+dirty | 1226.44 ms | 1219.94 ms | -6.50 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
40940de+dirty | 2.36 MiB | 3.09 MiB | 742.65 KiB |
dd27cec+dirty | 2.36 MiB | 3.10 MiB | 752.41 KiB |
2374c56+dirty | 2.36 MiB | 3.09 MiB | 742.66 KiB |
043095f+dirty | 2.36 MiB | 3.09 MiB | 742.35 KiB |
1d9d09f+dirty | 2.36 MiB | 3.10 MiB | 752.41 KiB |
Android (new) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
80b2ce3+dirty | 271.29 ms | 316.47 ms | 45.18 ms |
5446992+dirty | 371.61 ms | 390.00 ms | 18.39 ms |
31fcca2+dirty | 366.64 ms | 395.78 ms | 29.14 ms |
457e29f+dirty | 591.49 ms | 612.96 ms | 21.47 ms |
e73f4ed+dirty | 262.98 ms | 311.02 ms | 48.04 ms |
fe13591+dirty | 539.51 ms | 597.92 ms | 58.40 ms |
ad6c299+dirty | 336.47 ms | 362.89 ms | 26.42 ms |
148f924+dirty | 347.36 ms | 389.13 ms | 41.77 ms |
b1e8712+dirty | 322.55 ms | 331.84 ms | 9.29 ms |
6e8584e+dirty | 383.37 ms | 400.84 ms | 17.47 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
80b2ce3+dirty | 7.15 MiB | 8.04 MiB | 911.02 KiB |
5446992+dirty | 7.15 MiB | 8.12 MiB | 999.45 KiB |
31fcca2+dirty | 7.15 MiB | 8.18 MiB | 1.03 MiB |
457e29f+dirty | 7.15 MiB | 8.10 MiB | 981.29 KiB |
e73f4ed+dirty | 7.15 MiB | 8.09 MiB | 965.94 KiB |
fe13591+dirty | 7.15 MiB | 8.35 MiB | 1.20 MiB |
ad6c299+dirty | 7.15 MiB | 8.04 MiB | 912.17 KiB |
148f924+dirty | 7.15 MiB | 8.21 MiB | 1.07 MiB |
b1e8712+dirty | 7.15 MiB | 8.04 MiB | 912.27 KiB |
6e8584e+dirty | 7.15 MiB | 8.13 MiB | 1002.18 KiB |
Previous results on branch: antonis/rn-0.75.4-core
Startup times
Revision | Plain | With Sentry | Diff |
---|---|---|---|
1d9d09f+dirty | 441.04 ms | 464.50 ms | 23.46 ms |
043095f+dirty | 377.68 ms | 416.38 ms | 38.70 ms |
dd27cec+dirty | 399.07 ms | 450.93 ms | 51.87 ms |
2374c56+dirty | 420.22 ms | 490.09 ms | 69.87 ms |
40940de+dirty | 400.37 ms | 450.55 ms | 50.18 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
1d9d09f+dirty | 7.15 MiB | 8.35 MiB | 1.20 MiB |
043095f+dirty | 7.15 MiB | 8.35 MiB | 1.20 MiB |
dd27cec+dirty | 7.15 MiB | 8.35 MiB | 1.20 MiB |
2374c56+dirty | 7.15 MiB | 8.35 MiB | 1.20 MiB |
40940de+dirty | 7.15 MiB | 8.35 MiB | 1.20 MiB |
iOS (new) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
ac41368+dirty | 1226.69 ms | 1229.96 ms | 3.27 ms |
62a750b+dirty | 1228.12 ms | 1230.53 ms | 2.41 ms |
baa882f+dirty | 1235.48 ms | 1229.02 ms | -6.46 ms |
d361d38+dirty | 1272.96 ms | 1291.70 ms | 18.74 ms |
4cc5c27+dirty | 1220.43 ms | 1215.13 ms | -5.30 ms |
148f924+dirty | 1220.72 ms | 1221.30 ms | 0.58 ms |
8ae23a7+dirty | 1233.67 ms | 1229.52 ms | -4.15 ms |
31fcca2+dirty | 1222.04 ms | 1226.51 ms | 4.47 ms |
0db0c72+dirty | 1258.88 ms | 1262.52 ms | 3.64 ms |
3ffcddd+dirty | 1272.22 ms | 1273.98 ms | 1.76 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
ac41368+dirty | 2.92 MiB | 3.69 MiB | 794.29 KiB |
62a750b+dirty | 2.92 MiB | 3.48 MiB | 575.59 KiB |
baa882f+dirty | 2.92 MiB | 3.64 MiB | 738.56 KiB |
d361d38+dirty | 2.92 MiB | 3.41 MiB | 503.57 KiB |
4cc5c27+dirty | 2.92 MiB | 3.61 MiB | 705.47 KiB |
148f924+dirty | 2.92 MiB | 3.60 MiB | 701.88 KiB |
8ae23a7+dirty | 2.92 MiB | 3.66 MiB | 757.67 KiB |
31fcca2+dirty | 2.92 MiB | 3.46 MiB | 557.31 KiB |
0db0c72+dirty | 2.92 MiB | 3.40 MiB | 492.71 KiB |
3ffcddd+dirty | 2.92 MiB | 3.40 MiB | 494.39 KiB |
Previous results on branch: antonis/rn-0.75.4-core
Startup times
Revision | Plain | With Sentry | Diff |
---|---|---|---|
40940de+dirty | 1228.31 ms | 1230.94 ms | 2.62 ms |
dd27cec+dirty | 1243.82 ms | 1248.04 ms | 4.23 ms |
2374c56+dirty | 1240.96 ms | 1232.04 ms | -8.92 ms |
043095f+dirty | 1231.96 ms | 1230.04 ms | -1.91 ms |
1d9d09f+dirty | 1228.00 ms | 1238.98 ms | 10.98 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
40940de+dirty | 2.92 MiB | 3.64 MiB | 744.18 KiB |
dd27cec+dirty | 2.92 MiB | 3.66 MiB | 757.69 KiB |
2374c56+dirty | 2.92 MiB | 3.64 MiB | 744.19 KiB |
043095f+dirty | 2.92 MiB | 3.64 MiB | 743.91 KiB |
1d9d09f+dirty | 2.92 MiB | 3.66 MiB | 757.64 KiB |
# Conflicts: # samples/react-native/android/app/src/release/java/io/sentry/reactnative/sample/ReactNativeFlipper.java
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, LGTM!
# Conflicts: # yarn.lock
This reverts commit c8bc67f.
plugins: [ | ||
['@babel/plugin-transform-class-properties', { loose: true }], | ||
['@babel/plugin-transform-private-methods', { loose: true }], | ||
['@babel/plugin-transform-private-property-in-object', { loose: true }] | ||
], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are these plugins needed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added those to fix the following test failures
Log
FAIL test/tracing/integrations/stallTracking/stalltracking.background.test.ts
● BackgroundEventListener › Stall tracking should set _isBackground to false, update _lastIntervalMs, and call _iteration when state is active and _timeout is not null
expect(received).toBeGreaterThanOrEqual(expected)
Expected: >= 1729094935703
Received: 1729094935702
26 | // Check if _isBackground is set to false and _lastIntervalMs is updated correctly
27 | expect(stallTracking['_internalState']['isBackground']).toBe(false);
> 28 | expect(stallTracking['_internalState']['lastIntervalMs']).toBeGreaterThanOrEqual(currentTime);
| ^
29 | jest.runOnlyPendingTimers(); // Fast-forward the timer to execute the timeout function
30 | });
31 | it('Stall tracking should set _isBackground to true when state is not active', () => {
at Object.<anonymous> (test/tracing/integrations/stallTracking/stalltracking.background.test.ts:28:63)
FAIL test/tracing/reactnavigation.ttid.test.tsx
● React Navigation - TTID › ttid enabled › should add ttfd span for application start up
Trying to detect host component names triggered the following error:
/Users/antonis/git/sentry-react-native/packages/core/node_modules/react-native/Libraries/Debugging/DebuggingOverlayRegistry.js: Class private methods are not enabled. Please add `@babel/plugin-transform-private-methods` to your configuration.
117 | };
118 |
> 119 | #findLowestParentFromRegistryForInstance(
| ^
120 | instance: ReactNativeElement,
121 | ): ?DebuggingOverlayRegistrySubscriberProtocol {
122 | let iterator: ?ReadOnlyElement = instance;
There seems to be an issue with your configuration that prevents React Native Testing Library from working correctly.
Please check if you are using compatible versions of React Native and React Native Testing Library.
277 | mockedEventEmitter.emitNewFrameEvent();
278 |
> 279 | TestRenderer.render(<TimeToFullDisplay record />);
| ^
280 | emitNativeFullDisplayEvent();
281 |
282 | jest.runOnlyPendingTimers(); // Flush ttid transaction
at detectHostComponentNames (node_modules/@testing-library/react-native/src/helpers/host-component-names.tsx:56:11)
at detectHostComponentNames (node_modules/@testing-library/react-native/src/helpers/host-component-names.tsx:27:30)
at renderInternal (node_modules/@testing-library/react-native/src/render.tsx:48:40)
at Object.renderInternal (node_modules/@testing-library/react-native/src/render.tsx:29:10)
at Object.<anonymous> (test/tracing/reactnavigation.ttid.test.tsx:279:20)
● React Navigation - TTID › ttid enabled › ttfd span duration and measurement should equal for application start up
Trying to detect host component names triggered the following error:
/Users/antonis/git/sentry-react-native/packages/core/node_modules/react-native/Libraries/Debugging/DebuggingOverlayRegistry.js: Class private methods are not enabled. Please add `@babel/plugin-transform-private-methods` to your configuration.
117 | };
118 |
> 119 | #findLowestParentFromRegistryForInstance(
| ^
120 | instance: ReactNativeElement,
121 | ): ?DebuggingOverlayRegistrySubscriberProtocol {
122 | let iterator: ?ReadOnlyElement = instance;
There seems to be an issue with your configuration that prevents React Native Testing Library from working correctly.
Please check if you are using compatible versions of React Native and React Native Testing Library.
346 | mockedEventEmitter.emitNewFrameEvent();
347 |
> 348 | TestRenderer.render(<TimeToFullDisplay record />);
| ^
349 | emitNativeFullDisplayEvent();
350 |
351 | jest.runOnlyPendingTimers(); // Flush ttid transaction
at detectHostComponentNames (node_modules/@testing-library/react-native/src/helpers/host-component-names.tsx:56:11)
at detectHostComponentNames (node_modules/@testing-library/react-native/src/helpers/host-component-names.tsx:27:30)
at renderInternal (node_modules/@testing-library/react-native/src/render.tsx:48:40)
at Object.renderInternal (node_modules/@testing-library/react-native/src/render.tsx:29:10)
at Object.<anonymous> (test/tracing/reactnavigation.ttid.test.tsx:348:20)
● React Navigation - TTID › ttid enabled › manual initial display api overwrites auto instrumentation
Trying to detect host component names triggered the following error:
/Users/antonis/git/sentry-react-native/packages/core/node_modules/react-native/Libraries/Debugging/DebuggingOverlayRegistry.js: Class private methods are not enabled. Please add `@babel/plugin-transform-private-methods` to your configuration.
117 | };
118 |
> 119 | #findLowestParentFromRegistryForInstance(
| ^
120 | instance: ReactNativeElement,
121 | ): ?DebuggingOverlayRegistrySubscriberProtocol {
122 | let iterator: ?ReadOnlyElement = instance;
There seems to be an issue with your configuration that prevents React Native Testing Library from working correctly.
Please check if you are using compatible versions of React Native and React Native Testing Library.
444 |
445 | mockedNavigation.navigateToNewScreen();
> 446 | const timeToDisplayComponent = TestRenderer.render(<TimeToInitialDisplay />);
| ^
447 |
448 | mockedEventEmitter.emitNewFrameEvent();
449 | timeToDisplayComponent.update(<TimeToInitialDisplay record />);
at detectHostComponentNames (node_modules/@testing-library/react-native/src/helpers/host-component-names.tsx:56:11)
at detectHostComponentNames (node_modules/@testing-library/react-native/src/helpers/host-component-names.tsx:27:30)
at renderInternal (node_modules/@testing-library/react-native/src/render.tsx:48:40)
at Object.renderInternal (node_modules/@testing-library/react-native/src/render.tsx:29:10)
at Object.<anonymous> (test/tracing/reactnavigation.ttid.test.tsx:446:51)
● React Navigation - TTID › ttid enabled › auto initial display api overwrites manual api if manual not initialized on time
Trying to detect host component names triggered the following error:
/Users/antonis/git/sentry-react-native/packages/core/node_modules/react-native/Libraries/Debugging/DebuggingOverlayRegistry.js: Class private methods are not enabled. Please add `@babel/plugin-transform-private-methods` to your configuration.
117 | };
118 |
> 119 | #findLowestParentFromRegistryForInstance(
| ^
120 | instance: ReactNativeElement,
121 | ): ?DebuggingOverlayRegistrySubscriberProtocol {
122 | let iterator: ?ReadOnlyElement = instance;
There seems to be an issue with your configuration that prevents React Native Testing Library from working correctly.
Please check if you are using compatible versions of React Native and React Native Testing Library.
481 |
482 | // Initialized too late auto instrumentation finished before manual
> 483 | TestRenderer.render(<TimeToInitialDisplay record />);
| ^
484 | emitNativeInitialDisplayEvent(secondInFutureTimestampMs());
485 |
486 | jest.runOnlyPendingTimers(); // Flush transaction
at detectHostComponentNames (node_modules/@testing-library/react-native/src/helpers/host-component-names.tsx:56:11)
at detectHostComponentNames (node_modules/@testing-library/react-native/src/helpers/host-component-names.tsx:27:30)
at renderInternal (node_modules/@testing-library/react-native/src/render.tsx:48:40)
at Object.renderInternal (node_modules/@testing-library/react-native/src/render.tsx:29:10)
at Object.<anonymous> (test/tracing/reactnavigation.ttid.test.tsx:483:20)
17f5779
to
5a74c05
Compare
📢 Type of change
📜 Description
Based on: #4155
REACT_NATIVE_PATH
that was causing a failure in theRNSentryCocoaTester
due to a newly introduced check in 0.75.4💡 Motivation and Context
See #4155 (comment)
💚 How did you test it?
CI and manual test
📝 Checklist
sendDefaultPII
is enabled🔮 Next steps
#skip-changelog