-
-
Notifications
You must be signed in to change notification settings - Fork 465
feat(distribution): Mark build distribution APIs as experimental #4733
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(distribution): Mark build distribution APIs as experimental #4733
Conversation
Mark all build distribution APIs with @ApiStatus.Experimental to indicate they are subject to change in future versions: - IDistributionApi interface and related classes (UpdateInfo, UpdateStatus) - NoOpDistributionApi implementation - DistributionIntegration Android implementation - SentryOptions.DistributionOptions and related methods Also resolves jetbrains annotations dependency conflict by using implementation instead of compileOnly in sentry-android-distribution to ensure access to @ApiStatus.Experimental annotation. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| c8125f3 | 397.65 ms | 485.14 ms | 87.49 ms |
| 3699cd5 | 423.60 ms | 495.52 ms | 71.92 ms |
| 23d6b12 | 354.10 ms | 408.38 ms | 54.28 ms |
| 674d437 | 355.28 ms | 504.18 ms | 148.90 ms |
| ee747ae | 382.73 ms | 435.41 ms | 52.68 ms |
| 17a0955 | 372.53 ms | 446.70 ms | 74.17 ms |
| ce0a49e | 532.00 ms | 609.96 ms | 77.96 ms |
| ee747ae | 374.71 ms | 455.18 ms | 80.47 ms |
| b750b96 | 408.98 ms | 480.32 ms | 71.34 ms |
| ee747ae | 405.43 ms | 485.70 ms | 80.28 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| c8125f3 | 1.58 MiB | 2.10 MiB | 532.32 KiB |
| 3699cd5 | 1.58 MiB | 2.10 MiB | 533.45 KiB |
| 23d6b12 | 1.58 MiB | 2.10 MiB | 532.31 KiB |
| 674d437 | 1.58 MiB | 2.10 MiB | 530.94 KiB |
| ee747ae | 1.58 MiB | 2.10 MiB | 530.95 KiB |
| 17a0955 | 1.58 MiB | 2.10 MiB | 533.20 KiB |
| ce0a49e | 1.58 MiB | 2.10 MiB | 532.94 KiB |
| ee747ae | 1.58 MiB | 2.10 MiB | 530.95 KiB |
| b750b96 | 1.58 MiB | 2.10 MiB | 533.19 KiB |
| ee747ae | 1.58 MiB | 2.10 MiB | 530.95 KiB |
|
|
||
| dependencies { | ||
| implementation(projects.sentry) | ||
| implementation( |
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.
Other modules force the version (like sentry-android-core) which could cause unexpected behavior in consumers.
I thought using implementation is simpler to understand than a version constraint.
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.
hm I guess this is a bit weird that we leak the annotations to the runtime classpath (given that we only need them for compilation), but if there's no easy way around it, it's fine I guess.
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.
Annotations are quite leanient in the jvm world IIRC. If their dependencies aren’t present at compile time, it will still work so clients of the library can use an older version and it should be fine.
Summary
@ApiStatus.ExperimentalThere was a dependency conflict because the kotlin-stdlib bring in 13.0 of the annotations.
Adjusted
compileOnly(libs.jetbrains.annotations)toimplementation(libs.jetbrains.annotations)in the sentry-android-distribution module.Closes EME-281
#skip-changelog since it isn't released
🤖 Generated with Claude Code