Skip to content

Commit 1df7eb6

Browse files
runningcodeclaude
andauthored
feat(distribution): Mark build distribution APIs as experimental (#4733)
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 <[email protected]>
1 parent 323a9e9 commit 1df7eb6

File tree

7 files changed

+18
-0
lines changed

7 files changed

+18
-0
lines changed

sentry-android-distribution/build.gradle.kts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,8 @@ androidComponents.beforeVariants {
2525

2626
dependencies {
2727
implementation(projects.sentry)
28+
implementation(
29+
libs.jetbrains.annotations
30+
) // Use implementation instead of compileOnly to override kotlin stdlib's version
2831
implementation(kotlin(Config.kotlinStdLib, Config.kotlinStdLibVersionAndroid))
2932
}

sentry-android-distribution/src/main/java/io/sentry/android/distribution/DistributionIntegration.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@ import io.sentry.Integration
99
import io.sentry.SentryOptions
1010
import io.sentry.UpdateInfo
1111
import io.sentry.UpdateStatus
12+
import org.jetbrains.annotations.ApiStatus
1213

1314
/**
1415
* The public Android SDK for Sentry Build Distribution.
1516
*
1617
* Provides functionality to check for app updates and download new versions from Sentry's preprod
1718
* artifacts system.
1819
*/
20+
@ApiStatus.Experimental
1921
public class DistributionIntegration(context: Context) : Integration, IDistributionApi {
2022

2123
private lateinit var scopes: IScopes

sentry/src/main/java/io/sentry/IDistributionApi.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.sentry;
22

3+
import org.jetbrains.annotations.ApiStatus;
34
import org.jetbrains.annotations.NotNull;
45

56
/**
@@ -8,6 +9,7 @@
89
* <p>Provides methods to check for app updates and download new versions from Sentry's preprod
910
* artifacts system.
1011
*/
12+
@ApiStatus.Experimental
1113
public interface IDistributionApi {
1214

1315
/**

sentry/src/main/java/io/sentry/NoOpDistributionApi.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package io.sentry;
22

3+
import org.jetbrains.annotations.ApiStatus;
34
import org.jetbrains.annotations.NotNull;
45

56
/** No-op implementation of IDistributionApi. Used when distribution module is not available. */
7+
@ApiStatus.Experimental
68
public final class NoOpDistributionApi implements IDistributionApi {
79

810
private static final NoOpDistributionApi instance = new NoOpDistributionApi();

sentry/src/main/java/io/sentry/SentryOptions.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,7 @@ public class SentryOptions {
602602
* SentryAndroidOptions, but there's a circular dependency issue between sentry-android-core and
603603
* sentry-android-distribution modules.
604604
*/
605+
@ApiStatus.Experimental
605606
public static final class DistributionOptions {
606607
/** Organization authentication token for API access */
607608
public String orgAuthToken = "";
@@ -2848,10 +2849,12 @@ public void setReplayController(final @Nullable ReplayController replayControlle
28482849
replayController != null ? replayController : NoOpReplayController.getInstance();
28492850
}
28502851

2852+
@ApiStatus.Experimental
28512853
public @NotNull IDistributionApi getDistributionController() {
28522854
return distributionController;
28532855
}
28542856

2857+
@ApiStatus.Experimental
28552858
public void setDistributionController(final @Nullable IDistributionApi distributionController) {
28562859
this.distributionController =
28572860
distributionController != null ? distributionController : NoOpDistributionApi.getInstance();
@@ -3567,10 +3570,12 @@ public interface BeforeSendLogCallback {
35673570
}
35683571
}
35693572

3573+
@ApiStatus.Experimental
35703574
public @NotNull DistributionOptions getDistribution() {
35713575
return distribution;
35723576
}
35733577

3578+
@ApiStatus.Experimental
35743579
public void setDistribution(final @NotNull DistributionOptions distribution) {
35753580
this.distribution = distribution != null ? distribution : new DistributionOptions();
35763581
}

sentry/src/main/java/io/sentry/UpdateInfo.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package io.sentry;
22

3+
import org.jetbrains.annotations.ApiStatus;
34
import org.jetbrains.annotations.NotNull;
45

56
/** Information about an available app update. */
7+
@ApiStatus.Experimental
68
public final class UpdateInfo {
79
private final @NotNull String id;
810
private final @NotNull String buildVersion;

sentry/src/main/java/io/sentry/UpdateStatus.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package io.sentry;
22

3+
import org.jetbrains.annotations.ApiStatus;
34
import org.jetbrains.annotations.NotNull;
45

56
/** Represents the result of checking for app updates. */
7+
@ApiStatus.Experimental
68
public abstract class UpdateStatus {
79

810
/** Current app version is up to date, no update available. */

0 commit comments

Comments
 (0)