Skip to content

Conversation

@runningcode
Copy link
Contributor

@runningcode runningcode commented Sep 17, 2025

Summary

  • Mark all build distribution APIs with @ApiStatus.Experimental

There was a dependency conflict because the kotlin-stdlib bring in 13.0 of the annotations.
Adjusted compileOnly(libs.jetbrains.annotations) to implementation(libs.jetbrains.annotations) in the sentry-android-distribution module.

Closes EME-281

#skip-changelog since it isn't released

🤖 Generated with Claude Code

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>
@linear
Copy link

linear bot commented Sep 17, 2025

@github-actions
Copy link
Contributor

github-actions bot commented Sep 17, 2025

Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against e6ea6e0

@github-actions
Copy link
Contributor

Performance metrics 🚀

  Plain With Sentry Diff
Startup time 407.92 ms 467.52 ms 59.60 ms
Size 1.58 MiB 2.10 MiB 532.96 KiB

Baseline results on branch: main

Startup times

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(
Copy link
Contributor Author

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.

Copy link
Member

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.

Copy link
Contributor Author

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.

@runningcode runningcode merged commit 1df7eb6 into main Sep 17, 2025
47 of 48 checks passed
@runningcode runningcode deleted the no/eme-281-mark-new-sentry-java-build-distribution-apis-as-experimental branch September 17, 2025 13:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants