Skip to content

Commit

Permalink
feat: allow agentless dependencies to determine SDK version to install (
Browse files Browse the repository at this point in the history
#841)

* feat: allow `sentry-opentelemetry-agentless` and `sentry-opentelemetry-agentless-spring` to determine SDK version to install

* changelog

* improve

* remove unused import

* ./gradlew ktlintFormat
  • Loading branch information
lcian authored Feb 25, 2025
1 parent de7849e commit 869a1d4
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 4 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## Unreleased

### Features

- Allow `sentry-opentelemetry-agentless` and `sentry-opentelemetry-agentless-spring` to determine the SDK version to install ([#841](https://github.com/getsentry/sentry-android-gradle-plugin/pull/841))

### Fixes

- Ensure `InjectSentryDebugMetaPropertiesTask` deletes the output folder before writing into it ([#838](https://github.com/getsentry/sentry-android-gradle-plugin/pull/838))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,9 @@ private fun DependencySet.findSentryVersion(isAndroid: Boolean): String? =
it.name == SentryModules.SENTRY.name ||
it.name == SentryModules.SENTRY_SPRING_BOOT2.name ||
it.name == SentryModules.SENTRY_SPRING_BOOT3.name ||
it.name == SentryModules.SENTRY_BOM.name
it.name == SentryModules.SENTRY_BOM.name ||
it.name == SentryModules.SENTRY_OPENTELEMETRY_AGENTLESS.name ||
it.name == SentryModules.SENTRY_OPENTELEMETRY_AGENTLESS_SPRING.name
) && it.version != null
}?.version
}
Original file line number Diff line number Diff line change
Expand Up @@ -122,4 +122,12 @@ internal object SentryModules {
"io.sentry",
"sentry-bom"
)
internal val SENTRY_OPENTELEMETRY_AGENTLESS = DefaultModuleIdentifier.newId(
"io.sentry",
"sentry-opentelemetry-agentless"
)
internal val SENTRY_OPENTELEMETRY_AGENTLESS_SPRING = DefaultModuleIdentifier.newId(
"io.sentry",
"sentry-opentelemetry-agentless-spring"
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -347,9 +347,60 @@ class SentryPluginAutoInstallTest :
assertFalse { "io.sentry:sentry-android:6.32.0 -> 7.0.0" in result.output }
}

private fun runListDependenciesTask() = runner
@Test
fun `considers sentry-opentelemetry-agentless as a core version`() {
appBuildFile.writeText(
// language=Groovy
"""
plugins {
id "java"
id "io.sentry.jvm.gradle"
}
dependencies {
implementation 'io.sentry:sentry-opentelemetry-agentless:8.0.0'
}
sentry.autoInstallation.enabled = true
sentry.autoInstallation.sentryVersion = "8.1.0"
""".trimIndent()
)

val result = runListDependenciesTask(
extraArguments = listOf("--configuration", "runtimeClasspath")
)
assertTrue { "io.sentry:sentry:8.0.0" in result.output }
}

@Test
fun `considers sentry-opentelemetry-agentless-spring as a core version`() {
appBuildFile.writeText(
// language=Groovy
"""
plugins {
id "java"
id "io.sentry.jvm.gradle"
}
dependencies {
implementation 'io.sentry:sentry-opentelemetry-agentless-spring:8.0.0'
}
sentry.autoInstallation.enabled = true
sentry.autoInstallation.sentryVersion = "8.1.0"
""".trimIndent()
)

val result = runListDependenciesTask(
extraArguments = listOf("--configuration", "runtimeClasspath")
)
assertTrue { "io.sentry:sentry:8.0.0" in result.output }
}

private fun runListDependenciesTask(
extraArguments: List<String> = listOf("--configuration", "debugRuntimeClasspath")
) = runner
.appendArguments("app:dependencies")
.appendArguments("--configuration")
.appendArguments("debugRuntimeClasspath")
.appendArguments(*extraArguments.toTypedArray())
.build()
}

0 comments on commit 869a1d4

Please sign in to comment.