Skip to content

Commit 7bc01eb

Browse files
committed
Merge branch 'main' into feat/user-feedback-widget
# Conflicts: # CHANGELOG.md
2 parents 202759f + 096c5c0 commit 7bc01eb

File tree

75 files changed

+957
-453
lines changed

Some content is hidden

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

75 files changed

+957
-453
lines changed

.github/workflows/generate-javadocs.yml

Lines changed: 0 additions & 34 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 55 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@
44

55
### Features
66

7-
- Add debug mode for Session Replay masking ([#4357](https://github.com/getsentry/sentry-java/pull/4357))
8-
- Use `Sentry.replay().enableDebugMaskingOverlay()` to overlay the screen with the Session Replay masks.
9-
- The masks will be invalidated at most once per `frameRate` (default 1 fps).
107
- Add New User Feedback form ([#4384](https://github.com/getsentry/sentry-java/pull/4384))
118
- We now introduce SentryUserFeedbackDialog, which extends AlertDialog, inheriting the show() and cancel() methods, among others.
129
To use it, just instantiate it and call show() on the instance (Sentry must be previously initialized).
@@ -22,6 +19,61 @@
2219
SentryUserFeedbackDialog(context).show()
2320
```
2421

22+
### Fixes
23+
24+
- Send UI Profiling app start chunk when it finishes ([#4423](https://github.com/getsentry/sentry-java/pull/4423))
25+
26+
## 8.13.2
27+
28+
### Fixes
29+
30+
- Don't apply Spring Boot plugin in `sentry-spring-boot-jakarta` ([#4456](https://github.com/getsentry/sentry-java/pull/4456))
31+
- The jar for `io.sentry:sentry-spring-boot-jakarta` is now correctly being built and published to Maven Central.
32+
33+
## 8.13.1
34+
35+
### Fixes
36+
37+
- Fix `SentryAndroid.init` crash if SDK is initialized from a background thread while an `Activity` is in resumed state ([#4449](https://github.com/getsentry/sentry-java/pull/4449))
38+
39+
### Dependencies
40+
41+
- Bump Gradle from v8.14 to v8.14.1 ([#4437](https://github.com/getsentry/sentry-java/pull/4437))
42+
- [changelog](https://github.com/gradle/gradle/blob/master/CHANGELOG.md#v8141)
43+
- [diff](https://github.com/gradle/gradle/compare/v8.14...v8.14.1)
44+
45+
## 8.13.0
46+
47+
### Features
48+
49+
- Add debug mode for Session Replay masking ([#4357](https://github.com/getsentry/sentry-java/pull/4357))
50+
- Use `Sentry.replay().enableDebugMaskingOverlay()` to overlay the screen with the Session Replay masks.
51+
- The masks will be invalidated at most once per `frameRate` (default 1 fps).
52+
- Extend Logs API to allow passing in `attributes` ([#4402](https://github.com/getsentry/sentry-java/pull/4402))
53+
- `Sentry.logger.log` now takes a `SentryLogParameters`
54+
- Use `SentryLogParameters.create(SentryAttributes.of(...))` to pass attributes
55+
- Attribute values may be of type `string`, `boolean`, `integer` or `double`.
56+
- Other types will be converted to `string`. Currently we simply call `toString()` but we might offer more in the future.
57+
- You may manually flatten complex types into multiple separate attributes of simple types.
58+
- e.g. intead of `SentryAttribute.named("point", Point(10, 20))` you may store it as `SentryAttribute.integerAttribute("point.x", point.x)` and `SentryAttribute.integerAttribute("point.y", point.y)`
59+
- `SentryAttribute.named()` will automatically infer the type or fall back to `string`.
60+
- `SentryAttribute.booleanAttribute()` takes a `Boolean` value
61+
- `SentryAttribute.integerAttribute()` takes a `Integer` value
62+
- `SentryAttribute.doubleAttribute()` takes a `Double` value
63+
- `SentryAttribute.stringAttribute()` takes a `String` value
64+
- We opted for handling parameters via `SentryLogParameters` to avoid creating tons of overloads that are ambiguous.
65+
66+
### Fixes
67+
68+
- Isolation scope is now forked in `OtelSentrySpanProcessor` instead of `OtelSentryPropagator` ([#4434](https://github.com/getsentry/sentry-java/pull/4434))
69+
- Since propagator may never be invoked we moved the location where isolation scope is forked.
70+
- Not invoking `OtelSentryPropagator.extract` or having a `sentry-trace` header that failed to parse would cause isolation scope not to be forked.
71+
- This in turn caused data to bleed between scopes, e.g. from one request into another
72+
73+
### Dependencies
74+
75+
- Bump Spring Boot to `3.5.0` ([#4111](https://github.com/getsentry/sentry-java/pull/4111))
76+
2577
## 8.12.0
2678

2779
### Features

Makefile

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
.PHONY: all clean compile javadocs dryRelease update stop checkFormat format api assembleBenchmarkTestRelease assembleUiTestRelease assembleUiTestCriticalRelease createCoverageReports runUiTestCritical check preMerge publish
1+
.PHONY: all clean compile dryRelease update stop checkFormat format api assembleBenchmarkTestRelease assembleUiTestRelease assembleUiTestCriticalRelease createCoverageReports runUiTestCritical check preMerge publish
22

3-
all: stop clean javadocs compile createCoverageReports
3+
all: stop clean compile createCoverageReports
44
assembleBenchmarks: assembleBenchmarkTestRelease
55
assembleUiTests: assembleUiTestRelease
66
preMerge: check createCoverageReports
@@ -15,12 +15,9 @@ clean:
1515
compile:
1616
./gradlew build
1717

18-
javadocs:
19-
./gradlew aggregateJavadocs
20-
2118
# do a dry release (like a local deploy)
2219
dryRelease:
23-
./gradlew aggregateJavadocs distZip --no-build-cache --no-configuration-cache
20+
./gradlew distZip --no-build-cache --no-configuration-cache
2421

2522
# check for dependencies update
2623
update:

build.gradle.kts

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -246,31 +246,6 @@ spotless {
246246
}
247247
}
248248

249-
tasks.register("aggregateJavadocs", Javadoc::class.java) {
250-
setDestinationDir(project.layout.buildDirectory.file("docs/javadoc").get().asFile)
251-
title = "${project.name} $version API"
252-
val opts = options as StandardJavadocDocletOptions
253-
opts.quiet()
254-
opts.encoding = "UTF-8"
255-
opts.memberLevel = JavadocMemberLevel.PROTECTED
256-
opts.stylesheetFile(file("$projectDir/docs/stylesheet.css"))
257-
opts.links = listOf(
258-
"https://docs.oracle.com/javase/8/docs/api/",
259-
"https://docs.spring.io/spring-framework/docs/current/javadoc-api/",
260-
"https://docs.spring.io/spring-boot/docs/current/api/"
261-
)
262-
subprojects
263-
.filter { !it.name.contains("sample") && !it.name.contains("integration-tests") }
264-
.forEach { proj ->
265-
proj.tasks.withType<Javadoc>().forEach { javadocTask ->
266-
source += javadocTask.source
267-
classpath += javadocTask.classpath
268-
excludes += javadocTask.excludes
269-
includes += javadocTask.includes
270-
}
271-
}
272-
}
273-
274249
tasks.register("buildForCodeQL") {
275250
subprojects
276251
.filter {

buildSrc/src/main/java/Config.kt

Lines changed: 2 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ object Config {
66
val kotlinStdLib = "stdlib-jdk8"
77

88
val springBootVersion = "2.7.18"
9-
val springBoot3Version = "3.4.2"
9+
val springBoot3Version = "3.5.0"
1010
val kotlinCompatibleLanguageVersion = "1.6"
1111

1212
val androidComposeCompilerVersion = "1.5.14"
@@ -53,31 +53,6 @@ object Config {
5353
val jacksonDatabind = "com.fasterxml.jackson.core:jackson-databind:2.18.3"
5454
val jacksonKotlin = "com.fasterxml.jackson.module:jackson-module-kotlin:2.18.3"
5555

56-
val springBootStarter = "org.springframework.boot:spring-boot-starter:$springBootVersion"
57-
val springBootStarterGraphql = "org.springframework.boot:spring-boot-starter-graphql:$springBootVersion"
58-
val springBootStarterQuartz = "org.springframework.boot:spring-boot-starter-quartz:$springBootVersion"
59-
val springBootStarterTest = "org.springframework.boot:spring-boot-starter-test:$springBootVersion"
60-
val springBootStarterWeb = "org.springframework.boot:spring-boot-starter-web:$springBootVersion"
61-
val springBootStarterWebsocket = "org.springframework.boot:spring-boot-starter-websocket:$springBootVersion"
62-
val springBootStarterWebflux = "org.springframework.boot:spring-boot-starter-webflux:$springBootVersion"
63-
val springBootStarterAop = "org.springframework.boot:spring-boot-starter-aop:$springBootVersion"
64-
val springBootStarterSecurity = "org.springframework.boot:spring-boot-starter-security:$springBootVersion"
65-
val springBootStarterJdbc = "org.springframework.boot:spring-boot-starter-jdbc:$springBootVersion"
66-
val springBootStarterActuator = "org.springframework.boot:spring-boot-starter-actuator:$springBootVersion"
67-
68-
val springBoot3Starter = "org.springframework.boot:spring-boot-starter:$springBoot3Version"
69-
val springBoot3StarterGraphql = "org.springframework.boot:spring-boot-starter-graphql:$springBoot3Version"
70-
val springBoot3StarterQuartz = "org.springframework.boot:spring-boot-starter-quartz:$springBoot3Version"
71-
val springBoot3StarterTest = "org.springframework.boot:spring-boot-starter-test:$springBoot3Version"
72-
val springBoot3StarterWeb = "org.springframework.boot:spring-boot-starter-web:$springBoot3Version"
73-
val springBoot3StarterWebsocket = "org.springframework.boot:spring-boot-starter-websocket:$springBoot3Version"
74-
val springBoot3StarterWebflux = "org.springframework.boot:spring-boot-starter-webflux:$springBoot3Version"
75-
val springBoot3StarterAop = "org.springframework.boot:spring-boot-starter-aop:$springBoot3Version"
76-
val springBoot3StarterSecurity = "org.springframework.boot:spring-boot-starter-security:$springBoot3Version"
77-
val springBoot3StarterJdbc = "org.springframework.boot:spring-boot-starter-jdbc:$springBoot3Version"
78-
val springBoot3StarterActuator = "org.springframework.boot:spring-boot-starter-actuator:$springBoot3Version"
79-
val springBoot3StarterOpenTelemetry = "io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter:${OpenTelemetry.otelInstrumentationVersion}"
80-
8156
val springWeb = "org.springframework:spring-webmvc"
8257
val springWebflux = "org.springframework:spring-webflux"
8358
val springSecurityWeb = "org.springframework.security:spring-security-web"
@@ -115,6 +90,7 @@ object Config {
11590

11691
val graphQlJava = "com.graphql-java:graphql-java:17.3"
11792
val graphQlJava22 = "com.graphql-java:graphql-java:22.1"
93+
val graphQlJavaNew = "com.graphql-java:graphql-java:24.0"
11894

11995
val quartz = "org.quartz-scheduler:quartz:2.3.0"
12096

@@ -125,43 +101,13 @@ object Config {
125101
val apolloKotlin4 = "com.apollographql.apollo:apollo-runtime:4.1.1"
126102

127103
val sentryNativeNdk = "io.sentry:sentry-native-ndk:0.8.4"
128-
129-
object OpenTelemetry {
130-
val otelVersion = "1.44.1"
131-
val otelAlphaVersion = "$otelVersion-alpha"
132-
val otelInstrumentationVersion = "2.10.0"
133-
val otelInstrumentationAlphaVersion = "$otelInstrumentationVersion-alpha"
134-
val otelSemanticConvetionsVersion = "1.28.0-alpha" // check https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/dependencyManagement/build.gradle.kts#L49 for release version above to find a compatible version
135-
136-
val otelSdk = "io.opentelemetry:opentelemetry-sdk:$otelVersion"
137-
val otelSemconv = "io.opentelemetry.semconv:opentelemetry-semconv:$otelSemanticConvetionsVersion"
138-
val otelSemconvIncubating = "io.opentelemetry.semconv:opentelemetry-semconv-incubating:$otelSemanticConvetionsVersion"
139-
val otelJavaAgent = "io.opentelemetry.javaagent:opentelemetry-javaagent:$otelInstrumentationVersion"
140-
val otelJavaAgentExtensionApi = "io.opentelemetry.javaagent:opentelemetry-javaagent-extension-api:$otelInstrumentationAlphaVersion"
141-
val otelJavaAgentTooling = "io.opentelemetry.javaagent:opentelemetry-javaagent-tooling:$otelInstrumentationAlphaVersion"
142-
val otelExtensionAutoconfigureSpi = "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:$otelVersion"
143-
val otelExtensionAutoconfigure = "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:$otelVersion"
144-
val otelInstrumentationBom = "io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:$otelInstrumentationVersion"
145-
}
146104
}
147105

148106
object AnnotationProcessors {
149107
val springBootAutoConfigure = "org.springframework.boot:spring-boot-autoconfigure-processor"
150108
val springBootConfiguration = "org.springframework.boot:spring-boot-configuration-processor"
151109
}
152110

153-
object TestLibs {
154-
val androidJUnitRunner = "androidx.test.runner.AndroidJUnitRunner"
155-
val awaitility = "org.awaitility:awaitility-kotlin:4.1.1"
156-
val awaitility3 = "org.awaitility:awaitility-kotlin:3.1.6" // need this due to a conflict of awaitility4+ and espresso on hamcrest
157-
val hsqldb = "org.hsqldb:hsqldb:2.6.1"
158-
val javaFaker = "com.github.javafaker:javafaker:1.0.2"
159-
val msgpack = "org.msgpack:msgpack-core:0.9.8"
160-
val leakCanaryInstrumentation = "com.squareup.leakcanary:leakcanary-android-instrumentation:2.14"
161-
val composeUiTestJunit4 = "androidx.compose.ui:ui-test-junit4:1.6.8"
162-
val okio = "com.squareup.okio:okio:1.13.0"
163-
}
164-
165111
object QualityPlugins {
166112
object Jacoco {
167113
// TODO [POTEL] add tests and restore

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ org.gradle.workers.max=2
1414
android.useAndroidX=true
1515

1616
# Release information
17-
versionName=8.12.0
17+
versionName=8.13.2
1818

1919
# Override the SDK name on native crashes on Android
2020
sentryAndroidSdkName=sentry.native.android

0 commit comments

Comments
 (0)