Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
01efed6
build: Switch to JDK 21 and upgrade Mockito, Robolectric and Error Prone
markushi Oct 9, 2026
8ff189d
build: Compile tests for JDK 21 and fix buildSrc JVM target
markushi Oct 9, 2026
3dc76c0
build: Compile with a JDK 21 toolchain from a build-logic convention โ€ฆ
markushi Oct 13, 2026
26b8a60
docs(kafka): Explain the explicit double cast at the latency call site
markushi Oct 13, 2026
9788085
build: Compile the samples and their tests with the toolchain JDK
markushi Oct 13, 2026
f6de52d
Format code
getsentry-bot Oct 13, 2026
6e81176
build: Drop the now-unused JvmTarget imports from the samples
markushi Oct 13, 2026
1c7fbf3
build: Clarify the jvm-targets plugin comments and rename its helper
markushi Oct 13, 2026
5c8907d
Merge branch 'build/jdk-21' of github.com:getsentry/sentry-java into โ€ฆ
markushi Oct 13, 2026
7bd342c
build: Require JDK 21 to run Gradle again
markushi Oct 13, 2026
37b01cf
build: Keep the Spring Boot 2 sample apps on their published bytecodeโ€ฆ
markushi Oct 13, 2026
d663f01
ci: Drop the stale Java version from the build job name
markushi Oct 13, 2026
445f5e4
build: Keep Robolectric at 4.15 and leave its test environment untouched
markushi Oct 13, 2026
2de047f
build: Move the Java 8 release pin into the jvm-targets convention plโ€ฆ
markushi Oct 14, 2026
561324b
build: Drop the Error Prone and NullAway code fixes, they move to theโ€ฆ
markushi Oct 15, 2026
2c629ba
Merge remote-tracking branch 'origin/main' into build/jdk-21
markushi Oct 15, 2026
ddae2a9
ci: Drop the stale Java version from the build job name
markushi Oct 15, 2026
aaa1ef0
fix(core): Suppress the new Error Prone and javac 21 findings in the โ€ฆ
markushi Oct 15, 2026
fef4772
fix(core): Resolve the remaining Error Prone and javac 21 findings inโ€ฆ
markushi Oct 15, 2026
61c4352
build: Move the JDK and bytecode level decisions into the io.sentry.cโ€ฆ
markushi Oct 15, 2026
c667f66
Address PR comments
markushi Oct 15, 2026
4d4654d
test(android): Make the flush timeout verifies match the real log call
markushi Oct 15, 2026
982954a
chore(core): Reword the JDK 21 suppression comments
markushi Oct 15, 2026
38288e8
build: Keep only the javac unit test targets inside afterEvaluate
markushi Oct 16, 2026
e387384
Merge remote-tracking branch 'origin/main' into build/jdk-21
markushi Oct 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/agp-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@3f5f9adaf7d9fecd50b5935e54106014257a94e6 # v6.4.0
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ concurrency:

jobs:
build:
# Job name is a required status check in the main branch ruleset; keep it stable.
name: Build Job ubuntu-latest - Java 17
# Job name is a required status check in the main branch ruleset; update it there too.
name: Build Job ubuntu-latest
# Runs on Bitrise-hosted runners (same pattern as sentry-cocoa) instead of
# GitHub-hosted ubuntu-latest, which ran out of memory during `make preMerge`.
runs-on: ["bitrise_pool_name:tahoe"]
Expand All @@ -31,7 +31,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

# Workaround for https://github.com/gradle/actions/issues/21 to use config cache
- name: Cache buildSrc
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@3f5f9adaf7d9fecd50b5935e54106014257a94e6 # v6.4.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/enforce-license-compliance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/format-code.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@3f5f9adaf7d9fecd50b5935e54106014257a94e6 # v6.4.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/generate-javadocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@3f5f9adaf7d9fecd50b5935e54106014257a94e6 # v6.4.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integration-tests-macrobenchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@3f5f9adaf7d9fecd50b5935e54106014257a94e6 # v6.4.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integration-tests-size.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: "temurin"
java-version: "17"
java-version: "21"

# Workaround for https://github.com/gradle/actions/issues/21 to use config cache
- name: Cache buildSrc
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integration-tests-ui-critical.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@3f5f9adaf7d9fecd50b5935e54106014257a94e6 # v6.4.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integration-tests-ui.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@3f5f9adaf7d9fecd50b5935e54106014257a94e6 # v6.4.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@3f5f9adaf7d9fecd50b5935e54106014257a94e6 # v6.4.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/spring-boot-2-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

# Workaround for https://github.com/gradle/actions/issues/21 to use config cache
- name: Cache buildSrc
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/spring-boot-3-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

# Workaround for https://github.com/gradle/actions/issues/21 to use config cache
- name: Cache buildSrc
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/spring-boot-4-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

# Workaround for https://github.com/gradle/actions/issues/21 to use config cache
- name: Cache buildSrc
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/system-tests-backend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@3f5f9adaf7d9fecd50b5935e54106014257a94e6 # v6.4.0
Expand Down
4 changes: 3 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ We suggest opening an issue to discuss bigger changes before investing on a big

# Requirements

The project requires you to run JDK 17.
The project requires you to run JDK 21 or newer. Compilation and tests always happen on JDK 21
through a [toolchain](https://docs.gradle.org/current/userguide/toolchains.html), so a newer JDK
runs the build but never changes its output.

## Android

Expand Down
6 changes: 6 additions & 0 deletions build-logic/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,16 @@ plugins {
dependencies {
implementation(libs.animalsniffer.gradle.plugin)
implementation(libs.spotlessLib)
compileOnly(libs.kotlin.gradle.plugin)
compileOnly(libs.android.gradle.plugin)
}

gradlePlugin {
plugins {
register("sentryCompilation") {
id = "io.sentry.compilation"
implementationClass = "io.sentry.gradle.SentryCompilationPlugin"
}
register("sentryAnimalSniffer") {
id = "io.sentry.animalsniffer"
implementationClass = "io.sentry.gradle.SentryAnimalSnifferPlugin"
Expand Down
2 changes: 2 additions & 0 deletions build-logic/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ dependencyResolutionManagement {
repositories {
mavenCentral()
gradlePluginPortal()
// AGP is only published to Google's repository.
google()
}
versionCatalogs {
create("libs") {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
package io.sentry.gradle

import com.android.build.gradle.BaseExtension
import org.gradle.api.JavaVersion
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.api.plugins.JavaBasePlugin
import org.gradle.api.plugins.JavaPluginExtension
import org.gradle.api.tasks.compile.JavaCompile
import org.gradle.jvm.toolchain.JavaLanguageVersion
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile

/** The JDK every module compiles and tests with, whatever JDK runs Gradle. */
private val BUILD_JDK = JavaLanguageVersion.of(21)

/** The level the SDK publishes, so that Java 8 consumers can still use it. */
private val PUBLISHED_JAVA_VERSION = JavaVersion.VERSION_1_8

/**
* Holds every toolchain, bytecode level decision and compilation option of a module. It does the
* following
* - sample apps target the build JDK (21)
* - unit test code will target the build JDK (21) (required for Mockito 5)
* - published JVM modules main code pins the Java 1.8 release
* - published Android modules main code targets Java 1.8
* - minSdk is set for Android libraries
*/
class SentryCompilationPlugin : Plugin<Project> {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think this is about "java compatibility" so i think a name like JdkTargetConvention or something like that would make more sense.

override fun apply(project: Project) {
project.plugins.withType(JavaBasePlugin::class.java) {
project.extensions.getByType(JavaPluginExtension::class.java).toolchain {
languageVersion.set(BUILD_JDK)
}
}

// Only works for non-android modules
// See https://issuetracker.google.com/issues/278800528
project.plugins.withId("com.vanniktech.maven.publish") {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i was going to ask why this line exists but then i saw your other comment.

i think this is fragile since it relies on precise task namings. i don't think this would match compileReleaseJava for example meaning that these tasks are not set properly: https://scans.gradle.com/s/mom72s36qrefi/timeline?name=compileReleaseJava

project.plugins.withId("java-library") {
project.tasks.named("compileJava", JavaCompile::class.java) {
options.release.set(PUBLISHED_JAVA_VERSION.majorVersion.toInt())
}
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kotlin lacks JDK API release pin

Medium Severity

The new JDK 21 toolchain pins published Java with --release, but Kotlin main compilation only sets jvmTarget. Compiling Kotlin against JDK 21 can resolve APIs such as List.getFirst() and emit them into Java 8 or 17 bytecode with no compile error, which then fails at runtime on Java 8 and older Android.

Additional Locations (1)
Fix in Cursorย Fix in Web

Triggered by project rule: PR Review Guidelines for Cursor Bugbot

Reviewed by Cursor Bugbot for commit e387384. Configure here.


project.plugins.withId("com.android.library") {
val android = project.extensions.getByType(BaseExtension::class.java)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we have some production kotlin code. do you know if this sets the JDK compatibility on that?

I looked at how ANdroidx does this might be worth copying. They notably don't set the toolchain anywhere in code. https://github.com/androidx/androidx/blob/95347b245f1527ec6856a3daa580a1c0abbddc11/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt#L492

android.compileOptions {
sourceCompatibility = PUBLISHED_JAVA_VERSION
targetCompatibility = PUBLISHED_JAVA_VERSION
}
android.defaultConfig { aarMetadata { minCompileSdk = project.minSdk() } }
}

listOf("com.android.library", "com.android.application").forEach { pluginId ->
project.plugins.withId(pluginId) { project.targetBuildJdkForUnitTests() }
}
}

private fun Project.minSdk(): Int =

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh! fancy!

extensions
.getByType(VersionCatalogsExtension::class.java)
.named("libs")
.findVersion("minSdk")
.orElseThrow { IllegalStateException("libs.versions.minSdk is missing") }
.requiredVersion
.toInt()

private fun Project.targetBuildJdkForUnitTests() {
val unitTestTask = { task: Task -> task.name.contains("UnitTest") }
// jvmTarget is a Property, so this set wins over the AGP convention whenever it runs.
tasks.withType(KotlinJvmCompile::class.java).matching(unitTestTask).configureEach {
compilerOptions.jvmTarget.set(JvmTarget.fromTarget(BUILD_JDK.toString()))
}
// source/targetCompatibility are plain fields, so the last write wins, and AGP writes its
// compileOptions while it creates the compile tasks. Registering earlier - at apply time or
// in onVariants - is silently overwritten, so right now there's no way around afterEvaluate.
afterEvaluate {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here, we don't have any strict requirements on sourcecompatibilty or targetcompatibility since this is test code. i think we should just set the toolchain here (and hopefully also remove the afterEvaluate in the process since I'm pretty sure AGP doesn't set the toolchain)

tasks.withType(JavaCompile::class.java).matching(unitTestTask).configureEach {
sourceCompatibility = BUILD_JDK.toString()
targetCompatibility = BUILD_JDK.toString()
}
}
}
}
27 changes: 5 additions & 22 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@
alias(libs.plugins.sentry) apply false
Comment thread
sentry-warden[bot] marked this conversation as resolved.
}

check(JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_21)) {
"This build requires JDK 21 or newer, but runs on JDK ${JavaVersion.current()}."
}

buildscript {
repositories {
google()
Expand Down Expand Up @@ -111,6 +115,7 @@

subprojects {
apply { plugin("io.sentry.spotless") }
apply { plugin("io.sentry.compilation") }

plugins.withId(Config.QualityPlugins.detektPlugin) {
configure<DetektExtension> {
Expand Down Expand Up @@ -159,31 +164,9 @@
// and do it ourselves
configure(JavaLibrary(JavadocJar.None(), sourcesJar = true))
}

Check warning on line 167 in build.gradle.kts

View check run for this annotation

@sentry/warden / warden: check-code-attribution

โš ๏ธ Missing THIRD_PARTY_NOTICES.md entry

**build.gradle.kts** โ€” `assignAarTypes` is adapted from AndroidX `MavenUploadHelper.kt` (Apache 2.0) with a complete file header, but THIRD_PARTY_NOTICES.md has no matching entry. Add an entry covering Source URL, License name, Copyright, Scope (`build.gradle.kts` / `assignAarTypes`), and full license text.
configure<JavaPluginExtension> {
withJavadocJar()

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}

// AGP 9 defaults Android modules to Java 11. Pin the published library modules back
// to Java 8 so their bytecode stays consumable by Java 8 projects, mirroring the
// java-library pin above.
plugins.withId("com.android.library") {
configure<com.android.build.gradle.BaseExtension> {
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

// AGP 9 defaults the AAR metadata minCompileSdk to the library's compileSdk,
// which would force every consumer onto that compile SDK. Pin it to our minSdk
// so consumers remain free to compile against any SDK we support, as before.
defaultConfig {
aarMetadata { minCompileSdk = libs.versions.minSdk.get().toInt() }
}
}
}

Expand Down
6 changes: 0 additions & 6 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
`kotlin-dsl`
}

tasks.withType<KotlinCompile>().configureEach {
Comment thread
markushi marked this conversation as resolved.
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
16 changes: 10 additions & 6 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ retrofit = "2.9.0"
room2 = "2.8.4"
room3 = "3.0.0-rc01"
sagp = "6.13.0"
# Compile-time only, for the AGP types the build-logic convention plugins use. The AGP that
# actually runs the build comes from the root buildscript (Config.AGP, overridable via VERSION_AGP).
agp = "9.4.0"
sqlite = "2.6.2"
sqliteRc = "2.7.0-rc01" # Required by Room3 3.0.0-rc*
slf4j = "1.7.30"
Expand All @@ -64,7 +67,7 @@ buildconfig = { id = "com.github.gmazzo.buildconfig", version = "5.6.5" }
dokka = { id = "org.jetbrains.dokka", version = "2.0.0" }
dokka-javadoc = { id = "org.jetbrains.dokka-javadoc", version = "2.0.0" }
binary-compatibility-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version = "0.13.0" }
errorprone = { id = "net.ltgt.errorprone", version = "3.0.1" }
errorprone = { id = "net.ltgt.errorprone", version = "5.1.1" }
Comment thread
markushi marked this conversation as resolved.
gradle-versions = { id = "com.github.ben-manes.versions", version = "0.42.0" }
spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
detekt = { id = "io.gitlab.arturbosch.detekt", version = "1.23.8" }
Expand Down Expand Up @@ -129,7 +132,7 @@ caffeine-jcache = { module = "com.github.ben-manes.caffeine:jcache", version = "
coil-compose = { module = "io.coil-kt:coil-compose", version = "2.6.0" }
commons-compress = {module = "org.apache.commons:commons-compress", version = "1.28.0"}
context-propagation = { module = "io.micrometer:context-propagation", version = "1.1.0" }
errorprone-core = { module = "com.google.errorprone:error_prone_core", version = "2.11.0" }
errorprone-core = { module = "com.google.errorprone:error_prone_core", version = "2.50.0" }
feign-core = { module = "io.github.openfeign:feign-core", version.ref = "feign" }
feign-gson = { module = "io.github.openfeign:feign-gson", version.ref = "feign" }
graphql-java17 = { module = "com.graphql-java:graphql-java", version = "17.3" }
Expand All @@ -152,9 +155,11 @@ log4j-core = { module = "org.apache.logging.log4j:log4j-core", version.ref = "lo
leakcanary = { module = "com.squareup.leakcanary:leakcanary-android", version = "2.14" }
lottie-compose = { module = "com.airbnb.android:lottie-compose", version = "6.7.1" }
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
android-gradle-plugin = { module = "com.android.tools.build:gradle", version.ref = "agp" }
nopen-annotations = { module = "com.jakewharton.nopen:nopen-annotations", version.ref = "nopen" }
nopen-checker = { module = "com.jakewharton.nopen:nopen-checker", version.ref = "nopen" }
nullaway = { module = "com.uber.nullaway:nullaway", version = "0.9.5" }
nullaway = { module = "com.uber.nullaway:nullaway", version = "0.14.2" }
Comment thread
markushi marked this conversation as resolved.
okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
okhttp-bom = { module = "com.squareup.okhttp3:okhttp-bom", version.ref = "okhttp" }
openfeature = { module = "dev.openfeature:sdk", version.ref = "openfeature" }
Expand Down Expand Up @@ -273,9 +278,8 @@ hsqldb = { module = "org.hsqldb:hsqldb", version = "2.6.1" }
javafaker = { module = "com.github.javafaker:javafaker", version = "1.0.2" }
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" }
leakcanary-instrumentation = { module = "com.squareup.leakcanary:leakcanary-android-instrumentation", version = "2.14" }
mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version = "4.1.0" }
mockito-kotlin-spring7 = { module = "org.mockito.kotlin:mockito-kotlin", version = "6.0.0" }
mockito-inline = { module = "org.mockito:mockito-inline", version = "4.8.0" }
mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version = "6.4.0" }
mockito-core = { module = "org.mockito:mockito-core", version = "5.24.0" }
msgpack = { module = "org.msgpack:msgpack-core", version = "0.9.8" }
okhttp-mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "okhttp" }
# apollo-runtime 5.x pulls in okhttp 5.x; mockwebserver 4.x is incompatible with that classpath
Expand Down
2 changes: 1 addition & 1 deletion sentry-android-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ dependencies {
testImplementation(libs.awaitility.kotlin)
testImplementation(libs.google.truth)
testImplementation(libs.mockito.kotlin)
testImplementation(libs.mockito.inline)
testImplementation(libs.mockito.core)
testImplementation(projects.sentryTestSupport)
testImplementation(projects.sentrySpotlight)
testImplementation(projects.sentryAndroidFragment)
Expand Down
Loading
Loading