Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update Android SDK to v7.18.0 #191

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

github-actions[bot]
Copy link

Bumps flutter/scripts/update-android.sh from 6.15.0 to 7.18.0.

Auto-generated by a dependency updater.

Changelog

7.18.0

Features

Fixes

  • Avoid collecting normal frames (#3782)
  • Ensure android initialization process continues even if options configuration block throws an exception (#3887)
  • Do not report parsing ANR error when there are no threads (#3888)
    • This should significantly reduce the number of events with message "Sentry Android SDK failed to parse system thread dump..." reported
  • Session Replay: Disable replay in session mode when rate limit is active (#3854)

Dependencies

7.17.0

Features

  • Add meta option to set the maximum amount of breadcrumbs to be logged. (#3836)
  • Use a separate Random instance per thread to improve SDK performance (#3835)

Fixes

  • Using MaxBreadcrumb with value 0 no longer crashes. (#3836)
  • Accept manifest integer values when requiring floating values (#3823)
  • Fix standalone tomcat jndi issue (#3873)
    • Using Sentry Spring Boot on a standalone tomcat caused the following error:
      • Failed to bind properties under 'sentry.parsed-dsn' to io.sentry.Dsn

7.16.0

Features

  • Add meta option to attach ANR thread dumps (#3791)

Fixes

  • Cache parsed Dsn (#3796)
  • fix invalid profiles when the transaction name is empty (#3747)
  • Deprecate enableTracing option (#3777)
  • Vendor java.util.Random and replace java.security.SecureRandom usages (#3783)
  • Fix potential ANRs due to NDK scope sync (#3754)
  • Fix potential ANRs due to NDK System.loadLibrary calls (#3670)
  • Fix slow Log calls on app startup (#3793)
  • Fix slow Integration name parsing (#3794)
  • Session Replay: Reduce startup and capture overhead (#3799)
  • Load lazy fields on init in the background (#3803)
  • Replace setOf with HashSet.add (#3801)

Breaking changes

  • The method addIntegrationToSdkVersion(Ljava/lang/Class;)V has been removed from the core (io.sentry:sentry) package. Please make sure all of the packages (e.g. io.sentry:sentry-android-core, io.sentry:sentry-android-fragment, io.sentry:sentry-okhttp and others) are all aligned and using the same version to prevent the NoSuchMethodError exception.

7.16.0-alpha.1

Features

  • Add meta option to attach ANR thread dumps (#3791)

Fixes

  • Cache parsed Dsn (#3796)
  • fix invalid profiles when the transaction name is empty (#3747)
  • Deprecate enableTracing option (#3777)
  • Vendor java.util.Random and replace java.security.SecureRandom usages (#3783)
  • Fix potential ANRs due to NDK scope sync (#3754)
  • Fix potential ANRs due to NDK System.loadLibrary calls (#3670)
  • Fix slow Log calls on app startup (#3793)
  • Fix slow Integration name parsing (#3794)
  • Session Replay: Reduce startup and capture overhead (#3799)

7.15.0

Features

  • Add support for feedback envelope header item type (#3687)
  • Add breadcrumb.origin field (#3727)
  • Session Replay: Add options to selectively mask/unmask views captured in replay. The following options are available: (#3689)
    • android:tag="sentry-mask|sentry-unmask" in XML or view.setTag("sentry-mask|sentry-unmask") in code tags
      • if you already have a tag set for a view, you can set a tag by id: <tag android:id="id/sentry_privacy" android:value="mask|unmask"/> in XML or view.setTag(io.sentry.android.replay.R.id.sentry_privacy, "mask|unmask") in code
    • view.sentryReplayMask() or view.sentryReplayUnmask() extension functions
    • mask/unmask Views of a certain type by adding fully-qualified classname to one of the lists options.experimental.sessionReplay.addMaskViewClass() or options.experimental.sessionReplay.addUnmaskViewClass(). Note, that all of the view subclasses/subtypes will be masked/unmasked as well
      • For example, (this is already a default behavior) to mask all TextViews and their subclasses (RadioButton, EditText, etc.): options.experimental.sessionReplay.addMaskViewClass("android.widget.TextView")
      • If you're using code obfuscation, adjust your proguard-rules accordingly, so your custom view class name is not minified
  • Session Replay: Support Jetpack Compose masking (#3739)
    • To selectively mask/unmask Composables, use Modifier.sentryReplayMask() and Modifier.sentryReplayUnmask() modifiers
  • Session Replay: Mask WebView, VideoView and androidx.media3.ui.PlayerView by default (#3775)

Fixes

  • Avoid stopping appStartProfiler after application creation (#3630)
  • Session Replay: Correctly detect dominant color for TextViews with Spans (#3682)
  • Fix ensure Application Context is used even when SDK is initialized via Activity Context (#3669)
  • Fix potential ANRs due to Calendar.getInstance usage in Breadcrumbs constructor (#3736)
  • Fix potential ANRs due to default integrations (#3778)
  • Lazily initialize heavy SentryOptions members to avoid ANRs on app start (#3749)

Breaking changes:

  • options.experimental.sessionReplay.errorSampleRate was renamed to options.experimental.sessionReplay.onErrorSampleRate (#3637)
  • Manifest option io.sentry.session-replay.error-sample-rate was renamed to io.sentry.session-replay.on-error-sample-rate (#3637)
  • Change redactAllText and redactAllImages to maskAllText and maskAllImages (#3741)

7.14.0

Features

  • Session Replay: Gesture/touch support for Flutter (#3623)

Fixes

  • Fix app start spans missing from Pixel devices (#3634)
  • Avoid ArrayIndexOutOfBoundsException on Android cpu data collection (#3598)
  • Fix lazy select queries instrumentation (#3604)
  • Session Replay: buffer mode improvements (#3622)
    • Align next segment timestamp with the end of the buffered segment when converting from buffer mode to session mode
    • Persist buffer replay type for the entire replay when converting from buffer mode to session mode
    • Properly store screen names for buffer mode
  • Session Replay: fix various crashes and issues (#3628)
    • Fix video not being encoded on Pixel devices
    • Fix SIGABRT native crashes on Xiaomi devices when encoding a video
    • Fix RejectedExecutionException when redacting a screenshot
    • Fix FileNotFoundException when persisting segment values

Chores

  • Introduce ReplayShadowMediaCodec and refactor tests using custom encoder (#3612)

7.13.0

Features

  • Session Replay: (#3565) (#3609)
    • Capture remaining replay segment for ANRs on next app launch
    • Capture remaining replay segment for unhandled crashes on next app launch

Fixes

  • Session Replay: (#3565) (#3609)
    • Fix stopping replay in session mode at 1 hour deadline
    • Never encode full frames for a video segment, only do partial updates. This further reduces size of the replay segment
    • Use propagation context when no active transaction for ANRs

Dependencies

  • Bump Spring Boot to 3.3.2 (#3541)

7.12.1

Fixes

  • Check app start spans time and ignore background app starts (#3550)
    • This should eliminate long-lasting App Start transactions

7.12.0

Features

  • Session Replay Public Beta (#3339)

    To enable Replay use the sessionReplay.sessionSampleRate or sessionReplay.errorSampleRate experimental options.

    import io.sentry.SentryReplayOptions
    import io.sentry.android.core.SentryAndroid
    
    SentryAndroid.init(context) { options ->
     
      // Currently under experimental options:
      options.experimental.sessionReplay.sessionSampleRate = 1.0
      options.experimental.sessionReplay.errorSampleRate = 1.0
    
      // To change default redaction behavior (defaults to true)
      options.experimental.sessionReplay.redactAllImages = true
      options.experimental.sessionReplay.redactAllText = true
    
      // To change quality of the recording (defaults to MEDIUM)
      options.experimental.sessionReplay.quality = SentryReplayOptions.SentryReplayQuality.MEDIUM // (LOW|MEDIUM|HIGH)
    }

    To learn more visit Sentry's Mobile Session Replay documentation page.

7.11.0

Features

  • Report dropped spans (#3528)

Fixes

  • Fix duplicate session start for React Native (#3504)
  • Move onFinishCallback before span or transaction is finished (#3459)
  • Add timestamp when a profile starts (#3442)
  • Move fragment auto span finish to onFragmentStarted (#3424)
  • Remove profiling timeout logic and disable profiling on API 21 (#3478)
  • Properly reset metric flush flag on metric emission (#3493)
  • Use SecureRandom in favor of Random for Metrics (#3495)
  • Fix UncaughtExceptionHandlerIntegration Memory Leak (#3398)
  • Deprecated User.segment. Use a custom tag or context instead. (#3511)
  • Fix duplicated http spans (#3526)
  • When capturing unhandled hybrid exception session should be ended and new start if need (#3480)

Dependencies

7.10.0

Features

  • Publish Gradle module metadata (#3422)

Fixes

  • Fix faulty span.frame_delay calculation for early app start spans (#3427)
  • Fix crash when installing ShutdownHookIntegration and the VM is shutting down (#3456)

7.9.0

Features

  • Add start_type to app context (#3379)
  • Add ttid/ttfd contribution flags (#3386)

Fixes

  • (Internal) Metrics code cleanup (#3403)
  • Fix Frame measurements in app start transactions (#3382)
  • Fix timing metric value different from span duration (#3368)
  • Do not always write startup crash marker (#3409)
    • This may have been causing the SDK init logic to block the main thread

7.8.0

Features

  • Add description to OkHttp spans (#3320)
  • Enable backpressure management by default (#3284)

Fixes

  • Add rate limit to Metrics (#3334)
  • Fix java.lang.ClassNotFoundException: org.springframework.web.servlet.HandlerMapping in Spring Boot Servlet mode without WebMVC (#3336)
  • Fix normalization of metrics keys, tags and values (#3332)

7.7.0

Features

  • Add support for Spring Rest Client (#3199)
  • Extend Proxy options with proxy type (#3326)

Fixes

  • Fixed default deadline timeout to 30s instead of 300s (#3322)
  • Fixed Fix java.lang.ClassNotFoundException: org.springframework.web.servlet.HandlerExceptionResolver in Spring Boot Servlet mode without WebMVC (#3333)

7.6.0

Features

  • Experimental: Add support for Sentry Developer Metrics (#3205, #3238, #3248, #3250)
    Use the Metrics API to track processing time, download sizes, user signups, and conversion rates and correlate them back to tracing data in order to get deeper insights and solve issues faster. Our API supports counters, distributions, sets, gauges and timers, and it's easy to get started:
    Sentry.metrics()
      .increment(
          "button_login_click", // key
          1.0,                  // value
          null,                 // unit
          mapOf(                // tags
              "provider" to "e-mail"
          )
      )
    To learn more about Sentry Developer Metrics, head over to our Java and Android docs page.

7.5.0

Features

  • Add support for measurements at span level (#3219)
  • Add enableScopePersistence option to disable PersistingScopeObserver used for ANR reporting which may increase performance overhead. Defaults to true (#3218)
    • When disabled, the SDK will not enrich ANRv2 events with scope data (e.g. breadcrumbs, user, tags, etc.)
  • Configurable defaults for Cron - MonitorConfig (#3195)
  • We now display a warning on startup if an incompatible version of Spring Boot is detected (#3233)
    • This should help notice a mismatching Sentry dependency, especially when upgrading a Spring Boot application
  • Experimental: Add Metrics API (#3205)

Fixes

  • Ensure performance measurement collection is not taken too frequently (#3221)
  • Fix old profiles deletion on SDK init (#3216)
  • Fix hub restore point in wrappers: SentryWrapper, SentryTaskDecorator and SentryScheduleHook (#3225)
    • We now reset the hub to its previous value on the thread where the Runnable/Callable/Supplier is executed instead of setting it to the hub that was used on the thread where the Runnable/Callable/Supplier was created.
  • Fix add missing thread name/id to app start spans (#3226)

7.4.0

Features

  • Add new threshold parameters to monitor config (#3181)
  • Report process init time as a span for app start performance (#3159)
  • (perf-v2): Calculate frame delay on a span level (#3197)
  • Resolve spring properties in SentryCheckIn annotation (#3194)
  • Experimental: Add Spotlight integration (#3166)
    • For more details about Spotlight head over to https://spotlightjs.com/
    • Set options.isEnableSpotlight = true to enable Spotlight

Fixes

  • Don't wait on main thread when SDK restarts (#3200)
  • Fix Jetpack Compose widgets are not being correctly identified for user interaction tracing (#3209)
  • Fix issue title on Android when a wrapping RuntimeException is thrown by the system (#3212)
    • This will change grouping of the issues that were previously titled RuntimeInit$MethodAndArgsCaller to have them split up properly by the original root cause exception

7.3.0

Features

  • Added App Start profiling
    • This depends on the new option io.sentry.profiling.enable-app-start, other than the already existing io.sentry.traces.profiling.sample-rate.
    • Sampler functions can check the new isForNextAppStart flag, to adjust startup profiling sampling programmatically.
      Relevant PRs:
    • Decouple Profiler from Transaction (#3101)
    • Add options and sampling logic (#3121)
    • Add ContentProvider and start profile (#3128)
  • Extend internal performance collector APIs (#3102)
  • Collect slow and frozen frames for spans using OnFrameMetricsAvailableListener (#3111)
  • Interpolate total frame count to match span duration (#3158)

Fixes

  • Avoid multiple breadcrumbs from OkHttpEventListener (#3175)
  • Apply OkHttp listener auto finish timestamp to all running spans (#3167)
  • Fix not eligible for auto proxying warnings (#3154)
  • Set default fingerprint for ANRv2 events to correctly group background and foreground ANRs (#3164)
    • This will improve grouping of ANRs that have similar stacktraces but differ in background vs foreground state. Only affects newly-ingested ANR events with mechanism:AppExitInfo
  • Fix UserFeedback disk cache name conflicts with linked events (#3116)

Breaking changes

  • Remove HostnameVerifier option as it's flagged by security tools of some app stores (#3150)
    • If you were using this option, you have 3 possible paths going forward:
      • Provide a custom ITransportFactory through SentryOptions.setTransportFactory(), where you can copy over most of the parts like HttpConnection and AsyncHttpTransport from the SDK with necessary modifications
      • Get a certificate for your server through e.g. Let's Encrypt
      • Fork the SDK and add the hostname verifier back

Dependencies

7.2.0

Features

  • Handle monitor/check_in in client reports and rate limiter (#3096)
  • Add support for graphql-java version 21 (#3090)

Fixes

  • Avoid concurrency in AndroidProfiler performance data collection (#3130)
  • Improve thresholds for network changes breadcrumbs (#3083)
  • SchedulerFactoryBeanCustomizer now runs first so user customization is not overridden (#3095)
    • If you are setting global job listeners please also add SentryJobListener
  • Ensure serialVersionUID of Exception classes are unique (#3115)
  • Get rid of "is not eligible for getting processed by all BeanPostProcessors" warnings in Spring Boot (#3108)
  • Fix missing release and other fields for ANRs reported with mechanism:AppExitInfo (#3074)

Dependencies

  • Bump opentelemetry-sdk to 1.33.0 and opentelemetry-javaagent to 1.32.0 (#3112)

7.1.0

Features

  • Support multiple debug-metadata.properties (#3024)
  • Automatically downsample transactions when the system is under load (#3072)
    • You can opt into this behaviour by setting enable-backpressure-handling=true.
    • We're happy to receive feedback, e.g. in this GitHub issue
    • When the system is under load we start reducing the tracesSampleRate automatically.
    • Once the system goes back to healthy, we reset the tracesSampleRate to its original value.
  • (Android) Experimental: Provide more detailed cold app start information (#3057)
    • Attaches spans for Application, ContentProvider, and Activities to app-start timings
    • Application and ContentProvider timings are added using bytecode instrumentation, which requires sentry-android-gradle-plugin version 4.1.0 or newer
    • Uses Process.startUptimeMillis to calculate app-start timings
    • To enable this feature set options.isEnablePerformanceV2 = true
  • Move slow+frozen frame calculation, as well as frame delay inside SentryFrameMetricsCollector (#3100)
  • Extract Activity Breadcrumbs generation into own Integration (#3064)

Fixes

  • Send breadcrumbs and client error in SentryOkHttpEventListener even without transactions (#3087)
  • Keep io.sentry.exception.SentryHttpClientException from obfuscation to display proper issue title on Sentry (#3093)
  • (Android) Fix wrong activity transaction duration in case SDK init is deferred (#3092)

Dependencies

7.0.0

Version 7 of the Sentry Android/Java SDK brings a variety of features and fixes. The most notable changes are:

  • Bumping minSdk level to 19 (Android 4.4)
  • The SDK will now listen to connectivity changes and try to re-upload cached events when internet connection is re-established additionally to uploading events on app restart
  • Sentry.getSpan now returns the root transaction, which should improve the span hierarchy and make it leaner
  • Multiple improvements to reduce probability of the SDK causing ANRs
  • New sentry-okhttp artifact is unbundled from Android and can be used in pure JVM-only apps

Sentry Self-hosted Compatibility

This SDK version is compatible with a self-hosted version of Sentry 22.12.0 or higher. If you are using an older version of self-hosted Sentry (aka onpremise), you will need to upgrade. If you're using sentry.io no action is required.

Sentry Integrations Version Compatibility (Android)

Make sure to align all Sentry dependencies to the same version when bumping the SDK to 7.+, otherwise it will crash at runtime due to binary incompatibility. (E.g. if you're using -timber, -okhttp or other packages)

For example, if you're using the Sentry Android Gradle plugin with the autoInstallation feature (enabled by default), make sure to use version 4.+ of the gradle plugin together with version 7.+ of the SDK. If you can't do that for some reason, you can specify sentry version via the plugin config block:

sentry {
  autoInstallation {
    sentryVersion.set("7.0.0")
  }
}

Similarly, if you have a Sentry SDK (e.g. sentry-android-core) dependency on one of your Gradle modules and you're updating it to 7.+, make sure the Gradle plugin is at 4.+ or specify the SDK version as shown in the snippet above.

Breaking Changes

  • Bump min API to 19 (#2883)
  • If you're using sentry-kotlin-extensions, it requires kotlinx-coroutines-core version 1.6.1 or higher now (#2838)
  • Move enableNdk from SentryOptions to SentryAndroidOptions (#2793)
  • Apollo v2 BeforeSpanCallback now allows returning null (#2890)
  • SentryOkHttpUtils was removed from public API as it's been exposed by mistake (#3005)
  • Scope now implements the IScope interface, therefore some methods like ScopeCallback.run accept IScope now (#3066)
  • Cleanup startTransaction overloads (#2964)
    • We have reduced the number of overloads by allowing to pass in a TransactionOptions object instead of having separate parameters for certain options
    • TransactionOptions has defaults set and can be customized, for example:
// old
val transaction = Sentry.startTransaction("name", "op", bindToScope = true)
// new
val transaction = Sentry.startTransaction("name", "op", TransactionOptions().apply { isBindToScope = true })

Behavioural Changes

  • Android only: Sentry.getSpan() returns the root span/transaction instead of the latest span (#2855)
  • Capture failed HTTP and GraphQL (Apollo) requests by default (#2794)
    • This can increase your event consumption and may affect your quota, because we will report failed network requests as Sentry events by default, if you're using the sentry-android-okhttp or sentry-apollo-3 integrations. You can customize what errors you want/don't want to have reported for OkHttp and Apollo3 respectively.
  • Measure AppStart time till First Draw instead of onResume (#2851)
  • Automatic user interaction tracking: every click now starts a new automatic transaction (#2891)
    • Previously performing a click on the same UI widget twice would keep the existing transaction running, the new behavior now better aligns with other SDKs
  • Add deadline timeout for automatic transactions (#2865)
    • This affects all automatically generated transactions on Android (UI, clicks), the default timeout is 30s, meaning the automatic transaction will be force-finished with status deadline_exceeded when reaching the deadline
  • Set ip_address to {{auto}} by default, even if sendDefaultPII is disabled (#2860)
    • Instead use the "Prevent Storing of IP Addresses" option in the "Security & Privacy" project settings on sentry.io
  • Raw logback message and parameters are now guarded by sendDefaultPii if an encoder has been configured (#2976)
  • The maxSpans setting (defaults to 1000) is enforced for nested child spans which means a single transaction can have maxSpans number of children (nested or not) at most (#3065)
  • The ScopeCallback in withScope is now always executed (#3066)

Deprecations

  • sentry-android-okhttp was deprecated in favour of the new sentry-okhttp module. Make sure to replace io.sentry.android.okhttp package name with io.sentry.okhttp before the next major, where the classes will be removed (#3005)

Other Changes

Features

  • Observe network state to upload any unsent envelopes (#2910)
  • Add sentry-okhttp module to support instrumenting OkHttp in non-Android projects (#3005)
  • Do not filter out Sentry SDK frames in case of uncaught exceptions (#3021)
  • Do not try to send and drop cached envelopes when rate-limiting is active (#2937)

Fixes

  • Use getMyMemoryState() instead of getRunningAppProcesses() to retrieve process importance (#3004)
    • This should prevent some app stores from flagging apps as violating their privacy
  • Reduce flush timeout to 4s on Android to avoid ANRs (#2858)
  • Reduce timeout of AsyncHttpTransport to avoid ANR (#2879)
  • Do not overwrite UI transaction status if set by the user (#2852)
  • Capture unfinished transaction on Scope with status aborted in case a crash happens (#2938)
    • This will fix the link between transactions and corresponding crashes, you'll be able to see them in a single trace
  • Fix Coroutine Context Propagation using CopyableThreadContextElement (#2838)
  • Fix don't overwrite the span status of unfinished spans (#2859)
  • Migrate from default interface methods to proper implementations in each interface implementor (#2847)
    • This prevents issues when using the SDK on older AGP versions (< 4.x.x)
  • Reduce main thread work on init (#3036)
  • Move Integrations registration to background on init (#3043)
  • Fix SentryOkHttpInterceptor.BeforeSpanCallback was not finishing span when it was dropped (#2958)

6.34.0

Features

  • Add current activity name to app context (#2999)
  • Add MonitorConfig param to CheckInUtils.withCheckIn (#3038)
    • This makes it easier to automatically create or update (upsert) monitors.
  • (Internal) Extract Android Profiler and Measurements for Hybrid SDKs (#3016)
  • (Internal) Remove SentryOptions dependency from AndroidProfiler (#3051)
  • (Internal) Add readBytesFromFile for use in Hybrid SDKs (#3052)
  • (Internal) Add getProguardUuid for use in Hybrid SDKs (#3054)

Fixes

  • Fix SIGSEV, SIGABRT and SIGBUS crashes happening after/around the August Google Play System update, see #2955 for more details (fix provided by Native SDK bump)
  • Ensure DSN uses http/https protocol (#3044)

Dependencies

6.33.2-beta.1

Fixes

  • Fix SIGSEV, SIGABRT and SIGBUS crashes happening after/around the August Google Play System update, see #2955 for more details (fix provided by Native SDK bump)

Dependencies

6.33.1

Fixes

  • Do not register sentrySpringFilter in ServletContext for Spring Boot (#3027)

6.33.0

Features

  • Add thread information to spans (#2998)
  • Use PixelCopy API for capturing screenshots on API level 24+ (#3008)

Fixes

  • Fix crash when HTTP connection error message contains formatting symbols (#3002)
  • Cap max number of stack frames to 100 to not exceed payload size limit (#3009)
    • This will ensure we report errors with a big number of frames such as StackOverflowError
  • Fix user interaction tracking not working for Jetpack Compose 1.5+ (#3010)
  • Make sure to close all Closeable resources (#3000)

6.32.0

Features

  • Make DebugImagesLoader public (#2993)

Fixes

  • Make SystemEventsBroadcastReceiver exported on API 33+ (#2990)
    • This will fix the SystemEventsBreadcrumbsIntegration crashes that you might have encountered on Play Console

6.31.0

Features

  • Improve default debouncing mechanism (#2945)
  • Add CheckInUtils.withCheckIn which abstracts away some of the manual check-ins complexity (#2959)
  • Add SentryCaptureExceptionParameter annotation which captures exceptions passed into an annotated method (#2764)
    • This can be used to replace Sentry.captureException calls in ExceptionHandler of a ControllerAdvice
  • Add ServerWebExchange to Hint for WebFlux as WEBFLUX_EXCEPTION_HANDLER_EXCHANGE (#2977)
  • Allow filtering GraphQL errors (#2967)
    • This list can be set directly when calling the constructor of SentryInstrumentation
    • For Spring Boot it can also be set in application.properties as sentry.graphql.ignored-error-types=SOME_ERROR,ANOTHER_ERROR

Fixes

  • Add OkHttp span auto-close when response body is not read (#2923)
  • Fix json parsing of nullable/empty fields for Hybrid SDKs (#2968)
    • (Internal) Rename nextList to nextListOrNull to actually match what the method does
    • (Hybrid) Check if there's any object in a collection before trying to parse it (which prevents the "Failed to deserilize object in list" log message)
    • (Hybrid) If a date can't be parsed as an ISO timestamp, attempts to parse it as millis silently, without printing a log message
    • (Hybrid) If op is not defined as part of SpanContext, fallback to an empty string, because the filed is optional in the spec
  • Always attach OkHttp errors and Http Client Errors only to call root span (#2961)
  • Fixed crash accessing Choreographer instance (#2970)

Dependencies

6.30.0

Features

  • Add sendModules option for disable sending modules (#2926)
  • Send db.system and db.name in span data for androidx.sqlite spans (#2928)
  • Check-ins (CRONS) support (#2952)
    • Add API for sending check-ins (CRONS) manually (#2935)
    • Support check-ins (CRONS) for Quartz (#2940)
    • SentryCheckIn annotation and advice config for Spring (#2946)
    • Add option for ignoring certain monitor slugs (#2943)

Fixes

  • Always send memory stats for transactions (#2936)
    • This makes it possible to query transactions by the device.class tag on Sentry
  • Add sentry.enable-aot-compatibility property to SpringBoot Jakarta SentryAutoConfiguration to enable building for GraalVM (#2915)

Dependencies

6.29.0

Features

  • Send db.system and db.name in span data (#2894)
  • Send http.request.method in span data (#2896)
  • Add enablePrettySerializationOutput option for opting out of pretty print (#2871)

6.28.0

Features

  • Add HTTP response code to Spring WebFlux transactions (#2870)
  • Add sampled to Dynamic Sampling Context (#2869)
  • Improve server side GraphQL support for spring-graphql and Nextflix DGS (#2856)
    • If you have already been using SentryDataFetcherExceptionHandler that still works but has been deprecated. Please use SentryGenericDataFetcherExceptionHandler combined with SentryInstrumentation instead for better error reporting.
    • More exceptions and errors caught and reported to Sentry by also looking at the ExecutionResult (more specifically its errors)
    • More details for Sentry events: query, variables and response (where possible)
    • Breadcrumbs for operation (query, mutation, subscription), data fetchers and data loaders (Spring only)
    • Better hub propagation by using GraphQLContext
  • Add autoconfigure modules for Spring Boot called sentry-spring-boot and sentry-spring-boot-jakarta (#2880)
    • The autoconfigure modules sentry-spring-boot and sentry-spring-boot-jakarta have a compileOnly dependency on spring-boot-starter which is needed for our auto installation in sentry-android-gradle-plugin
    • The starter modules sentry-spring-boot-starter and sentry-spring-boot-starter-jakarta now bring spring-boot-starter as a dependency
  • You can now disable Sentry by setting the enabled option to false (#2840)

Fixes

  • Propagate OkHttp status to parent spans (#2872)

6.27.0

Features

  • Add TraceOrigin to Transactions and Spans (#2803)

Fixes

  • Deduplicate events happening in multiple threads simultaneously (e.g. OutOfMemoryError) (#2845)
    • This will improve Crash-Free Session Rate as we no longer will send multiple Session updates with Crashed status, but only the one that is relevant
  • Ensure no Java 8 method reference sugar is used for Android (#2857)
  • Do not send session updates for terminated sessions (#2849)

6.26.0

Features

  • (Internal) Extend APIs for hybrid SDKs (#2814, #2846)

Fixes

  • Fix ANRv2 thread dump parsing for native-only threads (#2839)
  • Derive TracingContext values from event for ANRv2 events (#2839)

6.25.2

Fixes

  • Change Spring Boot, Apollo, Apollo 3, JUL, Logback, Log4j2, OpenFeign, GraphQL and Kotlin coroutines core dependencies to compileOnly (#2837)

6.25.1

Fixes

  • Allow removing integrations in SentryAndroid.init (#2826)
  • Fix concurrent access to frameMetrics listener (#2823)

Dependencies

6.25.0

Features

  • Add manifest AutoInit to integrations list (#2795)
  • Tracing headers (sentry-trace and baggage) are now attached and passed through even if performance is disabled (#2788)

Fixes

  • Set environment from SentryOptions if none persisted in ANRv2 (#2809)
  • Remove code that set tracesSampleRate to 0.0 for Spring Boot if not set (#2800)
    • This used to enable performance but not send any transactions by default.
    • Performance is now disabled by default.
  • Fix slow/frozen frames were not reported with transactions (#2811)

Dependencies

6.24.0

Features

  • Add debouncing mechanism and before-capture callbacks for screenshots and view hierarchies (#2773)
  • Improve ANRv2 implementation (#2792)
    • Add a proguard rule to keep ApplicationNotResponding class from obfuscation
    • Add a new option setReportHistoricalAnrs; when enabled, it will report all of the ANRs from the getHistoricalExitReasons list.
      By default, the SDK only reports and enriches the latest ANR and only this one counts towards ANR rate.
      Worth noting that this option is mainly useful when updating the SDK to the version where ANRv2 has been introduced, to report all ANRs happened prior to the SDK update. After that, the SDK will always pick up the latest ANR from the historical exit reasons list on next app restart, so there should be no historical ANRs to report.
      These ANRs are reported with the HistoricalAppExitInfo mechanism.
    • Add a new option setAttachAnrThreadDump to send ANR thread dump from the system as an attachment.
      This is only useful as additional information, because the SDK attempts to parse the thread dump into proper threads with stacktraces by default.
    • If ApplicationExitInfo#getTraceInputStream returns null, the SDK no longer reports an ANR event, as these events are not very useful without it.
    • Enhance regex patterns for native stackframes

6.23.0

Features

  • Add profile rate limiting (#2782)
  • Support for automatically capturing Failed GraphQL (Apollo 3) Client errors (#2781)
import com.apollographql.apollo3.ApolloClient
import io.sentry.apollo3.sentryTracing

val apolloClient = ApolloClient.Builder()
    .serverUrl("https://example.com/graphql")
    .sentryTracing(captureFailedRequests = true)    
    .build()

Dependencies

Fixes

6.22.0

Features

  • Add lock attribute to the SentryStackFrame protocol to better highlight offending frames in the UI (#2761)
  • Enrich database spans with blocked main thread info (#2760)
  • Add api_target to Request and data to Response Protocols (#2775)

Fixes

  • No longer use String.join in Baggage as it requires API level 26 (#2778)

6.21.0

Features

  • Introduce new sentry-android-sqlite integration (#2722)
    • This integration replaces the old androidx.sqlite database instrumentation in the Sentry Android Gradle plugin
    • A new capability to manually instrument your androidx.sqlite databases.
      • You can wrap your custom SupportSQLiteOpenHelper instance into SentrySupportSQLiteOpenHelper(myHelper) if you're not using the Sentry Android Gradle plugin and still benefit from performance auto-instrumentation.
  • Add SentryWrapper for Callable and Supplier Interface (#2720)
  • Load sentry-debug-meta.properties (#2734)
    • This enables source context for Java
    • For more information on how to enable source context, please refer to #633

Fixes

  • Finish WebFlux transaction before popping scope (#2724)
  • Use daemon threads for SentryExecutorService (#2747)
    • We started using SentryExecutorService in 6.19.0 which caused the application to hang on shutdown unless Sentry.close() was called. By using daemon threads we no longer block shutdown.
  • Use Base64.NO_WRAP to avoid unexpected char errors in Apollo (#2745)

⚠️ Changelog content truncated by 14308 characters because it was over the limit (60000) and wouldn't fit into PR description.

@github-actions github-actions bot force-pushed the deps/flutter/scripts/update-android.sh/7.18.0 branch from 4ac1d1e to ddf2c6c Compare November 19, 2024 03:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant