Skip to content
Draft

5.x.x #982

Show file tree
Hide file tree
Changes from all commits
Commits
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
37 changes: 37 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,42 @@
# Changelog

## 5.12.2

### Fixes

- Fix compatibility with AGP 9.x when uploading proguard mappings ([#1021](https://github.com/getsentry/sentry-android-gradle-plugin/pull/1021))

## 5.12.1

### Fixes

- Fix `Modifier.sentryTag()` not found warning ([#997](https://github.com/getsentry/sentry-android-gradle-plugin/pull/997))

## 5.12.0

### Dependencies

- Bump Android SDK from v8.21.1 to v8.22.0 ([#989](https://github.com/getsentry/sentry-android-gradle-plugin/pull/989))
- [changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#8220)
- [diff](https://github.com/getsentry/sentry-java/compare/8.21.1...8.22.0)

## 5.11.0

### Features

- Auto install Spring Boot 4 (`sentry-spring-boot-4`) and Spring 7 (`sentry-spring-7`) modules ([#980](https://github.com/getsentry/sentry-android-gradle-plugin/pull/980))
- Include version in dependency auto install messages ([#979](https://github.com/getsentry/sentry-android-gradle-plugin/pull/979))

### Fixes

- Sentry dependencies intended for Spring Boot 3 / Spring 6 will no longer be installed for Spring Boot 4 / Spring 7 ([#980](https://github.com/getsentry/sentry-android-gradle-plugin/pull/980))

### Dependencies

- Bump Android SDK from v8.20.0 to v8.21.1 ([#981](https://github.com/getsentry/sentry-android-gradle-plugin/pull/981))
- [changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#8211)
- [diff](https://github.com/getsentry/sentry-java/compare/8.20.0...8.21.1)

## 5.10.0

### Dependencies
Expand Down
6 changes: 6 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
buildscript {
dependencies {
classpath("com.android.tools:r8:8.11.18")
}
}

plugins {
alias(libs.plugins.kotlin) apply false
alias(libs.plugins.kotlinAndroid) apply false
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/java/Dependencies.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ object BuildPluginsVersion {
}

object LibsVersion {
const val SDK_VERSION = 33
const val SDK_VERSION = 34
const val MIN_SDK_VERSION = 21
}

Expand Down
1 change: 1 addition & 0 deletions examples/android-instrumentation-sample/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ plugins {
alias(libs.plugins.kotlinAndroid)
alias(libs.plugins.kapt)
id("io.sentry.android.gradle")
id("io.sentry.kotlin.compiler.gradle")
}

// useful for local debugging of the androidx.sqlite lib
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,72 +11,77 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.BasicText
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import androidx.navigation.NavController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import io.sentry.samples.instrumentation.ui.ComposeActivity.Destination

class ComposeActivity : ComponentActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val navController = rememberNavController()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val navController = rememberNavController()

NavHost(
navController = navController,
startDestination = Destination.Home.route
) {
val pillShape = RoundedCornerShape(50)
NavHost(navController = navController, startDestination = Destination.Home.route) {
val pillShape = RoundedCornerShape(50)

composable(Destination.Home.route) {
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
BasicText(
modifier = Modifier
.border(2.dp, Color.Gray, pillShape)
.clip(pillShape)
.clickable {
navController.navigate(Destination.Details.route)
}
.padding(24.dp),
text = "Home. Tap to go to Details."
)
}
}
composable(Destination.Details.route) {
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
BasicText(
modifier = Modifier
.border(2.dp, Color.Gray, pillShape)
.clip(pillShape)
.clickable {
navController.popBackStack()
}
.padding(24.dp),
text = "Details. Tap or press back to return."
)
}
}
}
composable(Destination.Home.route) {
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center,
) {
HomeText(navController, pillShape)
}
}
composable(Destination.Details.route) {
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center,
) {
DetailsText(navController, pillShape)
}
}
}
}
}

sealed class Destination(
val route: String
) {
object Home : Destination("home")
object Details : Destination("details")
}
sealed class Destination(val route: String) {
object Home : Destination("home")

object Details : Destination("details")
}
}

@Composable
fun HomeText(navController: NavController, pillShape: RoundedCornerShape) {
BasicText(
modifier =
Modifier.border(2.dp, Color.Gray, pillShape)
.clip(pillShape)
.clickable { navController.navigate(Destination.Details.route) }
.padding(24.dp),
text = "Home. Tap to go to Details.",
)
}

@Composable
fun DetailsText(navController: NavController, pillShape: RoundedCornerShape) {
BasicText(
modifier =
Modifier.border(2.dp, Color.Gray, pillShape)
.clip(pillShape)
.clickable { navController.popBackStack() }
.padding(24.dp),
text = "Details. Tap or press back to return.",
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,53 +12,53 @@ import io.sentry.SpanStatus
import io.sentry.TransactionOptions
import io.sentry.samples.instrumentation.R
import io.sentry.samples.instrumentation.SampleApp
import io.sentry.samples.instrumentation.network.TrackService
import io.sentry.samples.instrumentation.ui.list.TrackAdapter
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.withContext

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

val list = findViewById<RecyclerView>(R.id.list)
list.layoutManager = LinearLayoutManager(this)
list.adapter = TrackAdapter()
val list = findViewById<RecyclerView>(R.id.list)
list.layoutManager = LinearLayoutManager(this)
list.adapter = TrackAdapter()

lifecycleScope.launchWhenStarted {
Sentry.getSpan()?.finish()
val transaction = Sentry.startTransaction(
"Track Interaction",
"ui.action.load",
TransactionOptions().apply { isBindToScope = true }
)
SampleApp.database.tracksDao()
.all()
.map {
val remote = withContext(Dispatchers.IO) {
TrackService.instance.tracks("6188aa82-3102-436a-9a68-513e6ad9efcb")
}
remote + it
}
.collect {
(list.adapter as TrackAdapter).populate(it)
transaction.finish(SpanStatus.OK)
}
lifecycleScope.launchWhenStarted {
Sentry.getSpan()?.finish()
val transaction =
Sentry.startTransaction(
"Track Interaction",
"ui.action.load",
TransactionOptions().apply { isBindToScope = true },
)
SampleApp.database
.tracksDao()
.all()
// TODO: this service doesn't work anymore, need to find a replacement
// .map {
// val remote =
// withContext(Dispatchers.IO) {
// TrackService.instance.tracks("6188aa82-3102-436a-9a68-513e6ad9efcb")
// }
// remote + it
// }
.collect {
(list.adapter as TrackAdapter).populate(it)
transaction.finish(SpanStatus.OK)
}
}

findViewById<Toolbar>(R.id.toolbar).setOnMenuItemClickListener {
if (it.itemId == R.id.action_add) {
startActivity(Intent(this, EditActivity::class.java))
return@setOnMenuItemClickListener true
}
if (it.itemId == R.id.action_compose) {
startActivity(Intent(this, ComposeActivity::class.java))
return@setOnMenuItemClickListener true
}
return@setOnMenuItemClickListener false
}
findViewById<Toolbar>(R.id.toolbar).setOnMenuItemClickListener {
if (it.itemId == R.id.action_add) {
startActivity(Intent(this, EditActivity::class.java))
return@setOnMenuItemClickListener true
}
if (it.itemId == R.id.action_compose) {
startActivity(Intent(this, ComposeActivity::class.java))
return@setOnMenuItemClickListener true
}
return@setOnMenuItemClickListener false
}
}
}
6 changes: 3 additions & 3 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,11 @@ sample-androidx-recyclerView = "androidx.recyclerview:recyclerview:1.2.0"
sample-androidx-lifecycle = "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0"
sample-androidx-appcompat = "androidx.appcompat:appcompat:1.2.0"

sample-androidx-composeRuntime = "androidx.compose.runtime:runtime:1.1.1"
sample-androidx-composeRuntime = "androidx.compose.runtime:runtime:1.5.4"
sample-androidx-composeNavigation = "androidx.navigation:navigation-compose:2.5.2"
sample-androidx-composeActivity = "androidx.activity:activity-compose:1.4.0"
sample-androidx-composeFoundation = "androidx.compose.foundation:foundation:1.2.1"
sample-androidx-composeFoundationLayout = "androidx.compose.foundation:foundation-layout:1.2.1"
sample-androidx-composeFoundation = "androidx.compose.foundation:foundation:1.5.4"
sample-androidx-composeFoundationLayout = "androidx.compose.foundation:foundation-layout:1.5.4"

sample-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "sampleCoroutines" }
sample-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "sampleCoroutines" }
Expand Down
4 changes: 2 additions & 2 deletions plugin-build/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ org.gradle.parallel=true

name = sentry-android-gradle-plugin
group = io.sentry
version = 5.10.0
sdk_version = 8.20.0
version = 5.12.2
sdk_version = 8.22.0

# publication pom properties
POM_NAME=Sentry Android Gradle Plugin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import com.android.build.api.instrumentation.AsmClassVisitorFactory
import com.android.build.api.instrumentation.FramesComputationMode
import com.android.build.api.instrumentation.InstrumentationParameters
import com.android.build.api.instrumentation.InstrumentationScope
import com.android.build.api.variant.AndroidComponentsExtension
import com.android.build.api.variant.ApplicationAndroidComponentsExtension
import com.android.build.api.variant.Variant
import com.android.build.gradle.api.ApplicationVariant
import io.sentry.gradle.common.SentryVariant
Expand Down Expand Up @@ -63,8 +63,8 @@ fun <T : InstrumentationParameters> configureInstrumentationFor70(
}

fun onVariants70(
androidComponentsExt: AndroidComponentsExtension<*, *, *>,
callback: (Variant) -> Unit,
androidComponentsExt: ApplicationAndroidComponentsExtension,
callback: (com.android.build.api.variant.ApplicationVariant) -> Unit,
) {
androidComponentsExt.onVariants(callback = callback)
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ import com.android.build.api.instrumentation.AsmClassVisitorFactory
import com.android.build.api.instrumentation.FramesComputationMode
import com.android.build.api.instrumentation.InstrumentationParameters
import com.android.build.api.instrumentation.InstrumentationScope
import com.android.build.api.variant.AndroidComponentsExtension
import com.android.build.api.variant.ApplicationAndroidComponentsExtension
import com.android.build.api.variant.ApplicationVariant
import com.android.build.api.variant.CanMinifyCode
import com.android.build.api.variant.Variant
import com.android.build.api.variant.impl.ApplicationVariantImpl
Expand Down Expand Up @@ -111,8 +112,8 @@ fun <T : InstrumentationParameters> configureInstrumentationFor74(
}

fun onVariants74(
androidComponentsExt: AndroidComponentsExtension<*, *, *>,
callback: (Variant) -> Unit,
androidComponentsExt: ApplicationAndroidComponentsExtension,
callback: (ApplicationVariant) -> Unit,
) {
androidComponentsExt.onVariants(callback = callback)
}
Loading
Loading