Skip to content

Commit eff41e3

Browse files
[pr-shepherd] Merge origin/main into feat/android-binder-tracing
Keep both Unreleased changelog entries after #6301 merged.
2 parents 5ad37a3 + e2a270b commit eff41e3

159 files changed

Lines changed: 9761 additions & 2974 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/release.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
fetch-depth: 0
3535
submodules: 'recursive'
3636
- name: Prepare release
37-
uses: getsentry/craft@7a7857552e2cdc08b502de96e6076849c01fba32 # v2.35.0
37+
uses: getsentry/craft@0ff75896d43285ca376c7254e8143bac23acd429 # v2.35.1
3838
env:
3939
GITHUB_TOKEN: ${{ steps.token.outputs.token }}
4040
with:

‎.github/workflows/spring-boot-2-matrix.yml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ jobs:
8787
:sentry-samples:sentry-samples-spring:testClasses \
8888
:sentry-opentelemetry:sentry-opentelemetry-agent:assemble
8989
90+
- name: Test sentry-spring-boot integration suite
91+
run: ./gradlew :sentry-spring-boot:integrationTest
92+
9093
- name: Test sentry-samples-spring-boot
9194
run: |
9295
python3 test/system-test-runner.py test \

‎.github/workflows/spring-boot-3-matrix.yml‎

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,6 @@ jobs:
7171
- name: Build sample artifacts
7272
run: |
7373
./gradlew \
74-
:sentry-samples:sentry-samples-spring-boot-jakarta:bootJar \
75-
:sentry-samples:sentry-samples-spring-boot-jakarta:testClasses \
7674
:sentry-samples:sentry-samples-spring-boot-webflux-jakarta:bootJar \
7775
:sentry-samples:sentry-samples-spring-boot-webflux-jakarta:testClasses \
7876
:sentry-samples:sentry-samples-spring-boot-jakarta-opentelemetry:bootJar \
@@ -83,12 +81,11 @@ jobs:
8381
:sentry-samples:sentry-samples-spring-jakarta:testClasses \
8482
:sentry-opentelemetry:sentry-opentelemetry-agent:assemble
8583
86-
- name: Test sentry-samples-spring-boot-jakarta
84+
- name: Test sentry-spring-boot-jakarta integration suites
8785
run: |
88-
python3 test/system-test-runner.py test \
89-
--module "sentry-samples-spring-boot-jakarta" \
90-
--agent false \
91-
--auto-init "true"
86+
./gradlew \
87+
:sentry-spring-boot-jakarta:integrationTest \
88+
:sentry-spring-boot-jakarta:integrationTestOtelAgent
9289
9390
- name: Test sentry-samples-spring-boot-webflux-jakarta
9491
run: |

‎.github/workflows/spring-boot-4-matrix.yml‎

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,6 @@ jobs:
7171
- name: Build sample artifacts
7272
run: |
7373
./gradlew \
74-
:sentry-samples:sentry-samples-spring-boot-4:bootJar \
75-
:sentry-samples:sentry-samples-spring-boot-4:testClasses \
7674
:sentry-samples:sentry-samples-spring-boot-4-webflux:bootJar \
7775
:sentry-samples:sentry-samples-spring-boot-4-webflux:testClasses \
7876
:sentry-samples:sentry-samples-spring-boot-4-opentelemetry:bootJar \
@@ -83,12 +81,8 @@ jobs:
8381
:sentry-samples:sentry-samples-spring-7:testClasses \
8482
:sentry-opentelemetry:sentry-opentelemetry-agent:assemble
8583
86-
- name: Run sentry-samples-spring-boot-4
87-
run: |
88-
python3 test/system-test-runner.py test \
89-
--module "sentry-samples-spring-boot-4" \
90-
--agent false \
91-
--auto-init "true"
84+
- name: Test sentry-spring-boot-4 integration suite
85+
run: ./gradlew :sentry-spring-boot-4:integrationTest
9286

9387
- name: Run sentry-samples-spring-boot-4-webflux
9488
run: |

‎.github/workflows/system-tests-backend.yml‎

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,10 @@ jobs:
2424
strategy:
2525
fail-fast: false
2626
matrix:
27-
sample: [ "sentry-samples-spring-boot-jakarta" ]
27+
sample: [ "sentry-samples-spring-boot" ]
2828
agent: [ "false" ]
2929
agent-auto-init: [ "true" ]
3030
include:
31-
- sample: "sentry-samples-spring-boot"
32-
agent: "false"
33-
agent-auto-init: "true"
3431
- sample: "sentry-samples-spring-boot-opentelemetry-noagent"
3532
agent: "false"
3633
agent-auto-init: "true"
@@ -64,18 +61,12 @@ jobs:
6461
- sample: "sentry-samples-console-otlp"
6562
agent: "false"
6663
agent-auto-init: "true"
67-
- sample: "sentry-samples-logback"
68-
agent: "false"
69-
agent-auto-init: "true"
7064
- sample: "sentry-samples-log4j2"
7165
agent: "false"
7266
agent-auto-init: "true"
7367
- sample: "sentry-samples-jul"
7468
agent: "false"
7569
agent-auto-init: "true"
76-
- sample: "sentry-samples-spring-boot-4"
77-
agent: "false"
78-
agent-auto-init: "true"
7970
- sample: "sentry-samples-spring-boot-4-log4j2"
8071
agent: "false"
8172
agent-auto-init: "true"

‎CHANGELOG.md‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
## Unreleased
44

5+
### Improvements
6+
7+
- Support Navigation 3 integration for multi-Activity and multi-Fragment applications, where each Activity or Fragment has its own `SentryNavEffect` ([#6305](https://github.com/getsentry/sentry-java/pull/6305))
8+
- See the [Navigation for Android docs](https://docs.sentry.io/platforms/android/integrations/navigation/#supported-setups) for a detailed list of supported vs unsupported app setups.
9+
510
### Features
611

712
- Add opt-in binder (IPC) tracing and logging instrumentation for Android ([#5515](https://github.com/getsentry/sentry-java/pull/5515))
@@ -10,12 +15,22 @@
1015

1116
### Fixes
1217

18+
- Always remove the first-draw listener after the first frame, even if no layout pass follows it ([#6152](https://github.com/getsentry/sentry-java/pull/6152))
19+
20+
## 8.61.1
21+
22+
### Fixes
23+
24+
- Session Replay: Fix a native crash (`SIGABRT` on the RenderThread) when stopping a replay that uses the canvas screenshot strategy ([#6342](https://github.com/getsentry/sentry-java/pull/6342))
25+
- Session Replay: Keep the segment videos of a replay that stopped before the startup cleanup of previous replays ran ([#6343](https://github.com/getsentry/sentry-java/pull/6343))
1326
- Report the number of dropped spans in client reports when a batched span envelope item is discarded, instead of a quantity of 1 (e.g. for Flutter span streaming) ([#6265](https://github.com/getsentry/sentry-java/pull/6265))
27+
- Session Replay: Keep the flushed video and do not reuse its segment id when `stop()` is called right after `flush()` in buffer mode ([#6340](https://github.com/getsentry/sentry-java/pull/6340))
1428
- Keep sending events from Android 7.1.0 and older devices after Sentry changes its TLS certificate authority ([#6227](https://github.com/getsentry/sentry-java/pull/6227))
1529
- In February 2027, Sentry moves its TLS certificates from DigiCert to Let's Encrypt and Google Trust Services ([announcement](https://sentry.io/changelog/were-changing-our-tls-certificate-authority-in-february-2027)).
1630
- Android 7.1.0 (API 25) and older don't trust the Let's Encrypt root certificate (ISRG Root X1), so without this fix, the SDK on those devices can no longer send events to Sentry after the switch.
1731
- The SDK now bundles ISRG Root X1 and trusts it in addition to the device's root certificates on API 25 and lower. This only applies to the SDK's own uploads to Sentry SaaS (DSNs on `sentry.io`), not to self-hosted Sentry, not to any other connection your app makes, and not if you set your own `SentryOptions.setSslSocketFactory`.
1832
- Apps need to update to an SDK version with this fix to keep sending events from these devices.
33+
- Session Replay: Use a software canvas for video encoding on the Android Emulator to avoid a native crash in `eglDestroySurface` ([#6282](https://github.com/getsentry/sentry-java/pull/6282))
1934

2035
### Internal
2136

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package io.sentry.gradle
2+
3+
import org.gradle.api.file.ConfigurableFileCollection
4+
import org.gradle.api.tasks.Classpath
5+
import org.gradle.api.tasks.InputFiles
6+
import org.gradle.api.tasks.PathSensitive
7+
import org.gradle.api.tasks.PathSensitivity
8+
import org.gradle.process.CommandLineArgumentProvider
9+
10+
/**
11+
* Tells a test task's JVM where to find the built OpenTelemetry agent and the app to run with it.
12+
*
13+
* The test launches the app in a child JVM, so neither file is on the test classpath. Declaring
14+
* them here makes them task inputs: the test reruns when either changes and depends on the tasks
15+
* that build them.
16+
*/
17+
abstract class ChildJvmTestArguments : CommandLineArgumentProvider {
18+
@get:InputFiles
19+
@get:PathSensitive(PathSensitivity.NONE)
20+
abstract val agentJar: ConfigurableFileCollection
21+
22+
@get:Classpath abstract val appClasspath: ConfigurableFileCollection
23+
24+
override fun asArguments(): List<String> = buildList {
25+
add("-Dsentry.test.agentJar=${agentJar.singleFile.absolutePath}")
26+
if (!appClasspath.isEmpty) {
27+
add("-Dsentry.test.appClasspath=${appClasspath.asPath}")
28+
}
29+
}
30+
}

‎devenv/config.ini‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
minimum_version = 1.22.1
33

44
[uv]
5-
darwin_arm64 = https://github.com/astral-sh/uv/releases/download/0.8.2/uv-aarch64-apple-darwin.tar.gz
6-
darwin_arm64_sha256 = 954d24634d5f37fa26c7af75eb79893d11623fc81b4de4b82d60d1ade4bfca22
7-
darwin_x86_64 = https://github.com/astral-sh/uv/releases/download/0.8.2/uv-x86_64-apple-darwin.tar.gz
8-
darwin_x86_64_sha256 = ae755df53c8c2c1f3dfbee6e3d2e00be0dfbc9c9b4bdffdb040b96f43678b7ce
9-
linux_arm64 = https://github.com/astral-sh/uv/releases/download/0.8.2/uv-aarch64-unknown-linux-gnu.tar.gz
10-
linux_arm64_sha256 = 27da35ef54e9131c2e305de67dd59a07c19257882c6b1f3cf4d8d5fbb8eaf4ca
11-
linux_x86_64 = https://github.com/astral-sh/uv/releases/download/0.8.2/uv-x86_64-unknown-linux-gnu.tar.gz
12-
linux_x86_64_sha256 = 6dcb28a541868a455aefb2e8d4a1283dd6bf888605a2db710f0530cec888b0ad
5+
darwin_arm64 = https://github.com/astral-sh/uv/releases/download/0.13.4/uv-aarch64-apple-darwin.tar.gz
6+
darwin_arm64_sha256 = e0b1d4743ce64c55d9f0f4a444afa6b81125680070ee04e853fcd0f6c1ebf8f1
7+
darwin_x86_64 = https://github.com/astral-sh/uv/releases/download/0.13.4/uv-x86_64-apple-darwin.tar.gz
8+
darwin_x86_64_sha256 = 7be2dcd316122f4b3e5a0a7889f6248266c14425374e105ff7dc9779184603a6
9+
linux_arm64 = https://github.com/astral-sh/uv/releases/download/0.13.4/uv-aarch64-unknown-linux-gnu.tar.gz
10+
linux_arm64_sha256 = 1ae72b4718729e2ccc4f1ae2c6d1e531ca8467800e0546e9130b3886023a60ab
11+
linux_x86_64 = https://github.com/astral-sh/uv/releases/download/0.13.4/uv-x86_64-unknown-linux-gnu.tar.gz
12+
linux_x86_64_sha256 = 2b428396f12572d4429cf210ca234dd599a33b3af0958a4d5ed569d63e3f344f
1313
# used for autoupdate
1414
# NOTE: if using uv-build as a build backend, you'll have to make sure the versions match
15-
version = 0.8.2
15+
version = 0.13.4
1616

‎gradle.properties‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ android.newDsl=false
1616
android.experimental.lint.version=9.4.0
1717

1818
# Release information
19-
versionName=8.61.0
19+
versionName=8.61.1
2020

2121
# Override the SDK name on native crashes on Android
2222
sentryAndroidSdkName=sentry.native.android

‎gradle/libs.versions.toml‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ spotless = "8.8.0"
4848
springboot2 = "2.7.18"
4949
springboot3 = "3.5.0"
5050
springboot4 = "4.1.0"
51+
springKafka3 = "3.3.5"
5152
sqldelight = "2.3.2"
5253

5354
# Android
@@ -110,11 +111,13 @@ androidx-core-ktx = { module = "androidx.core:core-ktx", version = "1.7.0" }
110111
androidx-fragment-ktx = { module = "androidx.fragment:fragment-ktx", version = "1.3.5" }
111112
androidx-lifecycle-common-java8 = { module = "androidx.lifecycle:lifecycle-common-java8", version.ref = "androidxLifecycle" }
112113
androidx-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version.ref = "androidxLifecycle" }
114+
androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version = "2.8.3" }
113115
androidx-navigation-runtime = { module = "androidx.navigation:navigation-runtime", version.ref = "androidxNavigation" }
114116
androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "androidxNavigation" }
115117
androidx-navigation-fragment = { module = "androidx.navigation:navigation-fragment-ktx", version.ref = "androidxNavigation" }
116118
androidx-navigation3-runtime = { module = "androidx.navigation3:navigation3-runtime", version.ref = "androidxNavigation3" }
117119
androidx-navigation3-ui = { module = "androidx.navigation3:navigation3-ui", version.ref = "androidxNavigation3" }
120+
androidx-viewpager2 = { module = "androidx.viewpager2:viewpager2", version = "1.1.0" }
118121
androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "room2" }
119122
androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "room2" }
120123
androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "room2" }
@@ -219,8 +222,10 @@ springboot3-starter-jdbc = { module = "org.springframework.boot:spring-boot-star
219222
springboot3-starter-actuator = { module = "org.springframework.boot:spring-boot-starter-actuator", version.ref = "springboot3" }
220223
springboot3-starter-cache = { module = "org.springframework.boot:spring-boot-starter-cache", version.ref = "springboot3" }
221224
spring-kafka2 = { module = "org.springframework.kafka:spring-kafka", version = "2.8.11" }
222-
spring-kafka3 = { module = "org.springframework.kafka:spring-kafka", version = "3.3.5" }
225+
spring-kafka3 = { module = "org.springframework.kafka:spring-kafka", version.ref = "springKafka3" }
226+
spring-kafka3-test = { module = "org.springframework.kafka:spring-kafka-test", version.ref = "springKafka3" }
223227
spring-kafka4 = { module = "org.springframework.kafka:spring-kafka" }
228+
spring-kafka4-test = { module = "org.springframework.kafka:spring-kafka-test" }
224229
kafka-clients = { module = "org.apache.kafka:kafka-clients", version = "3.8.1" }
225230
springboot4-otel = { module = "io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter", version.ref = "otelInstrumentation" }
226231
springboot4-resttestclient = { module = "org.springframework.boot:spring-boot-resttestclient", version.ref = "springboot4" }

0 commit comments

Comments
 (0)