-
-
Notifications
You must be signed in to change notification settings - Fork 343
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
feat: Adds SAGP as an experimental expo plugin feature #4440
Conversation
|
iOS (new) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
ae7b03d+dirty | 1223.71 ms | 1227.69 ms | 3.98 ms |
62a750b+dirty | 1228.12 ms | 1230.53 ms | 2.41 ms |
de59d3a+dirty | 1241.17 ms | 1249.16 ms | 8.00 ms |
afe5fcb+dirty | 1223.53 ms | 1223.90 ms | 0.37 ms |
21a0abb+dirty | 1224.37 ms | 1225.61 ms | 1.24 ms |
575f9da+dirty | 1272.00 ms | 1284.38 ms | 12.38 ms |
8ae23a7+dirty | 1233.67 ms | 1229.52 ms | -4.15 ms |
416f465+dirty | 1232.48 ms | 1233.26 ms | 0.78 ms |
148f924+dirty | 1220.72 ms | 1221.30 ms | 0.58 ms |
e5c9b8b+dirty | 1276.90 ms | 1280.92 ms | 4.02 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
ae7b03d+dirty | 3.19 MiB | 4.25 MiB | 1.06 MiB |
62a750b+dirty | 2.92 MiB | 3.48 MiB | 575.59 KiB |
de59d3a+dirty | 2.92 MiB | 3.67 MiB | 772.59 KiB |
afe5fcb+dirty | 3.19 MiB | 4.26 MiB | 1.08 MiB |
21a0abb+dirty | 3.19 MiB | 4.26 MiB | 1.08 MiB |
575f9da+dirty | 2.92 MiB | 3.43 MiB | 524.26 KiB |
8ae23a7+dirty | 2.92 MiB | 3.66 MiB | 757.67 KiB |
416f465+dirty | 2.92 MiB | 3.67 MiB | 772.44 KiB |
148f924+dirty | 2.92 MiB | 3.60 MiB | 701.88 KiB |
e5c9b8b+dirty | 2.92 MiB | 3.43 MiB | 524.50 KiB |
Previous results on branch: antonis/experimental-expo-sagp
Startup times
Revision | Plain | With Sentry | Diff |
---|---|---|---|
fc3cd14+dirty | 1252.76 ms | 1248.33 ms | -4.43 ms |
e0596ce+dirty | 1235.27 ms | 1230.63 ms | -4.63 ms |
a05231a+dirty | 1225.98 ms | 1234.84 ms | 8.86 ms |
987ce26+dirty | 1225.49 ms | 1219.68 ms | -5.81 ms |
c5d03fc+dirty | 1230.90 ms | 1235.12 ms | 4.22 ms |
1dddda4+dirty | 1219.34 ms | 1228.73 ms | 9.39 ms |
28fa62b+dirty | 1214.88 ms | 1214.82 ms | -0.06 ms |
e165be8+dirty | 1228.63 ms | 1245.41 ms | 16.78 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
fc3cd14+dirty | 3.19 MiB | 4.25 MiB | 1.07 MiB |
e0596ce+dirty | 3.19 MiB | 4.25 MiB | 1.07 MiB |
a05231a+dirty | 3.19 MiB | 4.25 MiB | 1.06 MiB |
987ce26+dirty | 3.19 MiB | 4.26 MiB | 1.08 MiB |
c5d03fc+dirty | 3.19 MiB | 4.25 MiB | 1.06 MiB |
1dddda4+dirty | 3.19 MiB | 4.26 MiB | 1.08 MiB |
28fa62b+dirty | 3.19 MiB | 4.25 MiB | 1.06 MiB |
e165be8+dirty | 3.19 MiB | 4.25 MiB | 1.06 MiB |
iOS (legacy) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
ae7b03d+dirty | 1221.19 ms | 1224.69 ms | 3.50 ms |
62a750b+dirty | 1216.60 ms | 1229.14 ms | 12.54 ms |
de59d3a+dirty | 1223.73 ms | 1236.28 ms | 12.55 ms |
afe5fcb+dirty | 1220.94 ms | 1214.73 ms | -6.21 ms |
21a0abb+dirty | 1225.31 ms | 1227.00 ms | 1.69 ms |
575f9da+dirty | 1266.22 ms | 1274.84 ms | 8.62 ms |
8ae23a7+dirty | 1230.02 ms | 1227.62 ms | -2.40 ms |
416f465+dirty | 1221.56 ms | 1226.48 ms | 4.92 ms |
148f924+dirty | 1214.76 ms | 1215.73 ms | 0.97 ms |
e5c9b8b+dirty | 1258.57 ms | 1267.32 ms | 8.75 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
ae7b03d+dirty | 2.63 MiB | 3.69 MiB | 1.05 MiB |
62a750b+dirty | 2.36 MiB | 2.92 MiB | 570.00 KiB |
de59d3a+dirty | 2.36 MiB | 3.11 MiB | 760.16 KiB |
afe5fcb+dirty | 2.63 MiB | 3.70 MiB | 1.06 MiB |
21a0abb+dirty | 2.63 MiB | 3.70 MiB | 1.06 MiB |
575f9da+dirty | 2.36 MiB | 2.87 MiB | 520.20 KiB |
8ae23a7+dirty | 2.36 MiB | 3.10 MiB | 752.42 KiB |
416f465+dirty | 2.36 MiB | 3.11 MiB | 759.80 KiB |
148f924+dirty | 2.36 MiB | 3.04 MiB | 696.25 KiB |
e5c9b8b+dirty | 2.36 MiB | 2.87 MiB | 520.43 KiB |
Previous results on branch: antonis/experimental-expo-sagp
Startup times
Revision | Plain | With Sentry | Diff |
---|---|---|---|
fc3cd14+dirty | 1220.68 ms | 1209.53 ms | -11.15 ms |
e0596ce+dirty | 1220.34 ms | 1213.90 ms | -6.44 ms |
a05231a+dirty | 1232.37 ms | 1242.12 ms | 9.75 ms |
987ce26+dirty | 1228.78 ms | 1238.02 ms | 9.24 ms |
c5d03fc+dirty | 1214.23 ms | 1214.45 ms | 0.21 ms |
1dddda4+dirty | 1231.96 ms | 1229.65 ms | -2.31 ms |
28fa62b+dirty | 1222.57 ms | 1223.91 ms | 1.34 ms |
e165be8+dirty | 1226.43 ms | 1225.46 ms | -0.97 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
fc3cd14+dirty | 2.63 MiB | 3.69 MiB | 1.05 MiB |
e0596ce+dirty | 2.63 MiB | 3.69 MiB | 1.06 MiB |
a05231a+dirty | 2.63 MiB | 3.68 MiB | 1.05 MiB |
987ce26+dirty | 2.63 MiB | 3.70 MiB | 1.06 MiB |
c5d03fc+dirty | 2.63 MiB | 3.69 MiB | 1.05 MiB |
1dddda4+dirty | 2.63 MiB | 3.70 MiB | 1.06 MiB |
28fa62b+dirty | 2.63 MiB | 3.69 MiB | 1.05 MiB |
e165be8+dirty | 2.63 MiB | 3.69 MiB | 1.05 MiB |
Android (new) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
0d3e677+dirty | 384.24 ms | 431.45 ms | 47.21 ms |
5571a20+dirty | 359.52 ms | 389.80 ms | 30.28 ms |
1c9e040+dirty | 372.30 ms | 417.80 ms | 45.50 ms |
148f924+dirty | 347.36 ms | 389.13 ms | 41.77 ms |
fe13591+dirty | 539.51 ms | 597.92 ms | 58.40 ms |
205982c+dirty | 383.94 ms | 424.98 ms | 41.04 ms |
61310e1+dirty | 463.51 ms | 511.09 ms | 47.57 ms |
83f6f6c+dirty | 442.82 ms | 487.48 ms | 44.66 ms |
31fcca2+dirty | 366.64 ms | 395.78 ms | 29.14 ms |
8900e1a+dirty | 371.40 ms | 377.70 ms | 6.31 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
0d3e677+dirty | 7.15 MiB | 8.35 MiB | 1.20 MiB |
5571a20+dirty | 7.15 MiB | 8.20 MiB | 1.05 MiB |
1c9e040+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
148f924+dirty | 7.15 MiB | 8.21 MiB | 1.07 MiB |
fe13591+dirty | 7.15 MiB | 8.35 MiB | 1.20 MiB |
205982c+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
61310e1+dirty | 7.15 MiB | 8.36 MiB | 1.21 MiB |
83f6f6c+dirty | 7.15 MiB | 8.37 MiB | 1.22 MiB |
31fcca2+dirty | 7.15 MiB | 8.18 MiB | 1.03 MiB |
8900e1a+dirty | 7.15 MiB | 8.03 MiB | 901.79 KiB |
Previous results on branch: antonis/experimental-expo-sagp
Startup times
Revision | Plain | With Sentry | Diff |
---|---|---|---|
a05231a+dirty | 410.49 ms | 464.94 ms | 54.45 ms |
e165be8+dirty | 403.17 ms | 433.17 ms | 30.00 ms |
987ce26+dirty | 394.51 ms | 421.02 ms | 26.51 ms |
fc3cd14+dirty | 409.87 ms | 463.46 ms | 53.59 ms |
28fa62b+dirty | 467.78 ms | 451.33 ms | -16.45 ms |
1dddda4+dirty | 361.73 ms | 392.37 ms | 30.64 ms |
e0596ce+dirty | 393.94 ms | 461.88 ms | 67.94 ms |
c5d03fc+dirty | 400.53 ms | 450.84 ms | 50.31 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
a05231a+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
e165be8+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
987ce26+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
fc3cd14+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
28fa62b+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
1dddda4+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
e0596ce+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
c5d03fc+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
Android (legacy) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
5bb8d5f | 431.21 ms | 459.40 ms | 28.19 ms |
9cab16b | 463.30 ms | 455.06 ms | -8.24 ms |
9282172 | 486.12 ms | 467.70 ms | -18.42 ms |
9433f35 | 347.64 ms | 356.22 ms | 8.58 ms |
5f03ae9 | 444.88 ms | 448.89 ms | 4.01 ms |
0eacc98 | 431.88 ms | 454.56 ms | 22.68 ms |
8de2810 | 430.47 ms | 428.72 ms | -1.75 ms |
acadc0f+dirty | 373.24 ms | 381.51 ms | 8.27 ms |
43e66e0 | 373.32 ms | 366.57 ms | -6.75 ms |
cdf2bdf | 448.42 ms | 443.42 ms | -5.00 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
5bb8d5f | 17.73 MiB | 19.93 MiB | 2.20 MiB |
9cab16b | 17.74 MiB | 20.08 MiB | 2.34 MiB |
9282172 | 17.74 MiB | 20.09 MiB | 2.35 MiB |
9433f35 | 17.73 MiB | 19.81 MiB | 2.08 MiB |
5f03ae9 | 17.75 MiB | 20.11 MiB | 2.36 MiB |
0eacc98 | 17.75 MiB | 20.11 MiB | 2.37 MiB |
8de2810 | 17.74 MiB | 20.08 MiB | 2.34 MiB |
acadc0f+dirty | 17.73 MiB | 19.75 MiB | 2.01 MiB |
43e66e0 | 17.74 MiB | 20.09 MiB | 2.35 MiB |
cdf2bdf | 17.74 MiB | 20.10 MiB | 2.36 MiB |
Previous results on branch: antonis/experimental-expo-sagp
Startup times
Revision | Plain | With Sentry | Diff |
---|---|---|---|
e0596ce | 405.46 ms | 423.43 ms | 17.97 ms |
fc3cd14 | 453.14 ms | 472.16 ms | 19.02 ms |
1dddda4 | 426.49 ms | 434.58 ms | 8.09 ms |
a05231a | 459.71 ms | 465.70 ms | 5.99 ms |
987ce26 | 466.33 ms | 501.40 ms | 35.07 ms |
c5d03fc | 422.04 ms | 418.83 ms | -3.21 ms |
e165be8 | 451.06 ms | 466.90 ms | 15.84 ms |
28fa62b | 420.92 ms | 423.72 ms | 2.80 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
e0596ce | 17.75 MiB | 20.11 MiB | 2.37 MiB |
fc3cd14 | 17.75 MiB | 20.11 MiB | 2.37 MiB |
1dddda4 | 17.75 MiB | 20.11 MiB | 2.36 MiB |
a05231a | 17.75 MiB | 20.11 MiB | 2.36 MiB |
987ce26 | 17.75 MiB | 20.11 MiB | 2.36 MiB |
c5d03fc | 17.75 MiB | 20.11 MiB | 2.37 MiB |
e165be8 | 17.75 MiB | 20.11 MiB | 2.37 MiB |
28fa62b | 17.75 MiB | 20.11 MiB | 2.37 MiB |
const withSentryAppBuildGradle = (config: any): any => { | ||
return withAppBuildGradle(config, (config: any) => { | ||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access | ||
if (config.modResults.language === 'groovy') { |
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.
Let's invert this and use it as a guard !== groovy
.
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.
Makes sense 👍 Updated with 7b053f5
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access | ||
config.modResults.contents = contents; | ||
} else { | ||
throw new Error('Cannot configure Sentry in android/app/build.gradle because it is not in Groovy.'); |
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.
Let's use the warnOnce
helper instead of throw. It will make the message more readable for the users.
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.
Good idea 👍
Updated with b1230bd
When this is merged and release we should also update the docs. Maybe a sub page to https://docs.sentry.io/platforms/react-native/manual-setup/expo/ (not to interrupt the default setup flow with the gradle options). |
Makes sense 👍 I followed up with a docs PR for this. |
# Conflicts: # CHANGELOG.md
It would be great if we could merge this Page and make it only available to people accessing it only by direct link, so it is easier to validate the URLs and also keep it hidden from the users while an official release isn't released |
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 see no issues with the PR, LGTM!
The current doc PR adds it as a subpage with no link from the parent (other than the navigation links). I'm ok with hiding it. Wdyt @krystofwoldrich? ps. If I'm not mistaken hiding the page can be achieved by setting |
We would love to see this merged! |
# Conflicts: # CHANGELOG.md
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. Thank you!
📢 Type of change
📜 Description
Adds SAGP as an experimental expo plugin when the
enableAndroidGradlePlugin
is enabled in theexperimental_android
section of the@sentry/react-native/expo
plugin.The supported options are the following:
autoUploadProguardMapping
includeProguardMapping
dexguardEnabled
uploadNativeSymbols
autoUploadNativeSymbols
includeNativeSources
includeSourceContext
💡 Motivation and Context
Fixes #4400
💚 How did you test it?
CI, Manual testing:
expo prebuild
android/build.gradle
andandroid/app/build.gradle
are modified according to the docs📝 Checklist
sendDefaultPII
is enabled🔮 Next steps
See getsentry/sentry-android-gradle-plugin#809