sentry-dart
                                
                                 sentry-dart copied to clipboard
                                
                                    sentry-dart copied to clipboard
                            
                            
                            
                        feat: move plugin from sentry_dart_plugin (experimental)
:scroll: Description
Testing whether moving plugin directly to the sentry package has any impact on app size or usability.
The way it's added in this PR, users would be able to run plugin by dart run sentry:plugin
TODO:
- [ ] I don't like the dependency updates - try if it can somehow be integrated as a dev_dependency instead - maybe if the actual source is kept as a separate package?
:bulb: Motivation and Context
See discussions here: https://github.com/getsentry/sentry-dart-plugin/issues/64
:green_heart: How did you test it?
:pencil: Checklist
- [ ] I reviewed submitted code
- [ ] I added tests to verify changes
- [ ] I updated the docs if needed
- [ ] All tests passing
- [ ] No breaking changes
:crystal_ball: Next steps
| Fails | |
|---|---|
| :no_entry_sign: | Please consider adding a changelog entry for the next release. | 
| Messages | |
|---|---|
| :book: | Do not forget to update Sentry-docs with your feature once the pull request gets approved. | 
Instructions and example for changelog
Please add an entry to CHANGELOG.md to the "Unreleased" section. Make sure the entry includes this PR's number.
Example:
## Unreleased
- move plugin from sentry_dart_plugin (experimental) ([#1099](https://github.com/getsentry/sentry-dart/pull/1099))
If none of the above apply, you can opt out of this check by adding #skip-changelog to the PR description.
Generated by :no_entry_sign: dangerJS against 66576c943633e4669e8b5ee269953b3499f4d0fd
Android Performance metrics :rocket:
| Plain | With Sentry | Diff | |
|---|---|---|---|
| Startup time | 273.25 ms | 320.21 ms | 46.96 ms | 
| Size | 5.94 MiB | 6.95 MiB | 1.01 MiB | 
Baseline results on branch: main
Startup times
| Revision | Plain | With Sentry | Diff | 
|---|---|---|---|
| 1c6eb5b33483c440c18525f0e946a9031d09863c | 350.69 ms | 393.86 ms | 43.17 ms | 
| af2d175c1ac16ff4cfdb9504c013db825fe9b436 | 279.08 ms | 312.37 ms | 33.29 ms | 
| 9c5aec6059869d06fd3c0c37f68ef530fb707ceb | 287.33 ms | 320.94 ms | 33.61 ms | 
| 633cf2e1c17c650e952b570d6a63d9d4d2256a14 | 289.36 ms | 340.38 ms | 51.02 ms | 
| 21845e2c4fd3604443616251b5d44240ea390663 | 345.08 ms | 382.82 ms | 37.74 ms | 
| 6d317ea0c2dcfba0d8300bc7693d2dc292486d01 | 303.46 ms | 356.06 ms | 52.60 ms | 
| 04db237c887e97fd4e5843a50e97135e2e03ce53 | 330.16 ms | 428.38 ms | 98.22 ms | 
| 3e9fb0ef61113312be4c21d9168d4043eca6c921 | 329.14 ms | 359.16 ms | 30.02 ms | 
| 559d28f4fd4a5379a6776683dbadfec93ffb5635 | 302.35 ms | 339.53 ms | 37.18 ms | 
| eecbbcabbbe00a5dcc7d42cd6334f771a20b547f | 324.37 ms | 352.49 ms | 28.12 ms | 
App size
| Revision | Plain | With Sentry | Diff | 
|---|---|---|---|
| 1c6eb5b33483c440c18525f0e946a9031d09863c | 5.94 MiB | 6.92 MiB | 1001.53 KiB | 
| af2d175c1ac16ff4cfdb9504c013db825fe9b436 | 5.94 MiB | 6.92 MiB | 1001.83 KiB | 
| 9c5aec6059869d06fd3c0c37f68ef530fb707ceb | 5.94 MiB | 6.92 MiB | 1001.61 KiB | 
| 633cf2e1c17c650e952b570d6a63d9d4d2256a14 | 5.94 MiB | 6.92 MiB | 1001.53 KiB | 
| 21845e2c4fd3604443616251b5d44240ea390663 | 5.94 MiB | 6.92 MiB | 1003.77 KiB | 
| 6d317ea0c2dcfba0d8300bc7693d2dc292486d01 | 5.94 MiB | 6.92 MiB | 1001.74 KiB | 
| 04db237c887e97fd4e5843a50e97135e2e03ce53 | 5.94 MiB | 6.95 MiB | 1.01 MiB | 
| 3e9fb0ef61113312be4c21d9168d4043eca6c921 | 5.94 MiB | 6.95 MiB | 1.01 MiB | 
| 559d28f4fd4a5379a6776683dbadfec93ffb5635 | 5.94 MiB | 6.92 MiB | 1001.70 KiB | 
| eecbbcabbbe00a5dcc7d42cd6334f771a20b547f | 5.94 MiB | 6.89 MiB | 975.78 KiB | 
iOS Performance metrics :rocket:
| Plain | With Sentry | Diff | |
|---|---|---|---|
| Startup time | 1280.07 ms | 1309.82 ms | 29.75 ms | 
| Size | 8.15 MiB | 9.13 MiB | 994.20 KiB | 
Baseline results on branch: main
Startup times
| Revision | Plain | With Sentry | Diff | 
|---|---|---|---|
| 6d317ea0c2dcfba0d8300bc7693d2dc292486d01 | 1277.27 ms | 1287.47 ms | 10.20 ms | 
| 613760b51612c5874f586dd29349e387b289c8cd | 1263.10 ms | 1277.27 ms | 14.16 ms | 
| 1c6eb5b33483c440c18525f0e946a9031d09863c | 1277.85 ms | 1285.71 ms | 7.86 ms | 
| 2f8f173887b79d93ccc79d99528b682f218dbe2a | 1280.61 ms | 1292.20 ms | 11.59 ms | 
| eecbbcabbbe00a5dcc7d42cd6334f771a20b547f | 1264.90 ms | 1286.33 ms | 21.43 ms | 
| 559d28f4fd4a5379a6776683dbadfec93ffb5635 | 1265.04 ms | 1288.96 ms | 23.92 ms | 
| 56810ff730b5c918da021c12c84ee1cd88d62aa1 | 1267.59 ms | 1293.48 ms | 25.89 ms | 
| d7758e8c1a1884d46734ccb197dbcde683bc4189 | 1271.69 ms | 1288.08 ms | 16.39 ms | 
| 4efee31c65f1fefbb85fc97598de6b3ae8fd93b4 | 1270.33 ms | 1285.75 ms | 15.42 ms | 
| eb1a7c1075248085a3da029c96da78223902b131 | 1281.25 ms | 1295.40 ms | 14.15 ms | 
App size
| Revision | Plain | With Sentry | Diff | 
|---|---|---|---|
| 6d317ea0c2dcfba0d8300bc7693d2dc292486d01 | 8.15 MiB | 9.12 MiB | 986.26 KiB | 
| 613760b51612c5874f586dd29349e387b289c8cd | 8.15 MiB | 9.13 MiB | 1000.46 KiB | 
| 1c6eb5b33483c440c18525f0e946a9031d09863c | 8.15 MiB | 9.12 MiB | 986.27 KiB | 
| 2f8f173887b79d93ccc79d99528b682f218dbe2a | 8.15 MiB | 9.13 MiB | 1000.39 KiB | 
| eecbbcabbbe00a5dcc7d42cd6334f771a20b547f | 8.15 MiB | 9.10 MiB | 965.26 KiB | 
| 559d28f4fd4a5379a6776683dbadfec93ffb5635 | 8.15 MiB | 9.12 MiB | 987.32 KiB | 
| 56810ff730b5c918da021c12c84ee1cd88d62aa1 | 8.15 MiB | 9.12 MiB | 987.35 KiB | 
| d7758e8c1a1884d46734ccb197dbcde683bc4189 | 8.15 MiB | 9.12 MiB | 989.76 KiB | 
| 4efee31c65f1fefbb85fc97598de6b3ae8fd93b4 | 8.15 MiB | 9.12 MiB | 991.35 KiB | 
| eb1a7c1075248085a3da029c96da78223902b131 | 8.15 MiB | 9.13 MiB | 1000.10 KiB | 
@vaind I meant to raise an issue only, I still have to discuss with folks if this is the way to go. The Android Gradle plugin, for example, was a monorepo, and this only caused problems. So we've to point out the trade-offs before going ahead, let's pause this before we are sure that we want to do it.
@vaind I meant to raise an issue only, I still have to discuss with folks if this is the way to go. The Android Gradle plugin, for example, was a monorepo, and this only caused problems. So we've to point out the trade-offs before going ahead, let's pause this before we are sure that we want to do it.
I know, I've only done this in order to see the impact on the size, as measured by the SDK-metrics CI - it was a quick thing to do because I just moved the code from the other repo.
This way we can actually know what happens rather than trying to guess whether the app size is affected or not (and how much), which may save a lot of talking with the actual data in hand :)
This issue has gone three weeks without activity. In another week, I will close it.
But! If you comment or otherwise update it, I will reset the clock, and if you remove the label Waiting for: Community, I will leave it alone ... forever!
"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀