Skip to content

Releases: getsentry/sentry-dotnet

4.0.0-beta.5

12 Dec 20:47
Compare
Choose a tag to compare
4.0.0-beta.5 Pre-release
Pre-release

Features

  • iOS profiling support (alpha). (#2930)

Fixes

  • Stop Sentry for MacCatalyst from creating default.profraw in the app bundle using xcodebuild archive to build sentry-cocoa (#2960)

Dependencies

4.0.0-beta.4

05 Dec 02:17
Compare
Choose a tag to compare
4.0.0-beta.4 Pre-release
Pre-release

Fixes

  • Workaround a .NET 8 NativeAOT crash on transaction finish. (#2943)

API breaking Changes

Changed APIs

  • Rename iOS and MacCatalyst platform specific options from Cocoa to Native (#2940)
  • Rename iOS platform specific options EnableCocoaSdkTracing to EnableTracing (#2940)
  • Rename Android platform specific options from Android to Native (#2940)
  • Rename Android platform specific options EnableAndroidSdkTracing and EnableAndroidSdkBeforeSend to EnableTracing and EnableBeforeSend respectively (#2940)

Dependencies

4.0.0-beta.3

02 Dec 02:15
Compare
Choose a tag to compare
4.0.0-beta.3 Pre-release
Pre-release

Fixes

  • Reworked automatic breadcrumb creation for MAUI. (#2900)
    • The SDK no longer uses on reflection to bind to all public element events. This also fixes issues where the SDK would consume third-party events.
    • Added CreateElementEventsBreadcrumbs to the SentryMauiOptions to allow users to opt-in automatic breadcrumb creation for BindingContextChanged, ChildAdded, ChildRemoved and ParentChanged on Element.
    • Reduced amount of automatic breadcrumbs by limiting the amount of bindings created in VisualElement, Window, Shell, Page and Button.
  • Fixed Sentry SDK has not been initialised when using ASP.NET Core, Serilog and OpenTelemetry (#2911)

Features

  • Native crash reporting on NativeAOT published apps (Windows, Linux, macOS). (#2887)
  • Android: By default attaches LogCat logs to unhandled exceptions. Configurable via SentryOptions.Android.LogCatIntegration and SentryOptions.Android.LogCatMaxLines. Available when targeting net7.0-android or later, on API level 23 or later. (#2926)

API breaking Changes

Removed APIs

  • SentrySinkExtensions.ConfigureSentrySerilogOptions is now internal. If you were using this method, please use one of the SentrySinkExtensions.Sentry extension methods instead. (#2902)

Changed APIs

  • AssemblyExtensions have been made public again. (#2917)
  • Rename iOS and MacCatalyst platform specific options from iOS to Cocoa (#2929)

Dependencies

3.41.3

29 Nov 10:18
Compare
Choose a tag to compare

Fixes

  • Fixed Sentry SDK has not been initialised when using ASP.NET Core, Serilog and OpenTelemetry (#2918)

4.0.0-beta.2

23 Nov 01:54
Compare
Choose a tag to compare
4.0.0-beta.2 Pre-release
Pre-release

Various fixes & improvements

Fixes

  • Android native symbol upload (#2876)
  • Sentry.Serilog no longer throws if a disabled DSN is provided when initializing Sentry via the Serilog integration (#2883)

.NET target frameworks changes

Dropped netstandard2.0 support for Sentry.AspNetCore (#2807)

API breaking Changes

Changed APIs

  • ISpanTracer has been renamed back again to ISpan, to make it easier to upgrade from v3.x to v4.x (#2870)

  • release: 3.41.1 (b40818b) by @getsentry-bot

  • chore(deps): update Cocoa SDK to v8.16.0 (#2882) by @github-actions

  • Add SentryOptions.AutoRegisterTracing (#2871) by @jamescrosswell

  • chore: update scripts/update-java.ps1 to 6.34.0 (#2874) by @github-actions

3.41.2

23 Nov 22:39
Compare
Choose a tag to compare

Fixes

  • The SDK no longer fails to finish sessions while capturing an event. This fixes broken crash-free rates (#2895)
  • Ignore UnobservedTaskException for QUIC exceptions. See: dotnet/runtime#80111 (#2894)

Dependencies

3.41.1

22 Nov 23:16
Compare
Choose a tag to compare

Fixes

  • CaptureFailedRequests and FailedRequestStatusCodes are now getting respected by the Cocoa SDK. This is relevant for MAUI apps where requests are getting handled natively. (#2826)
  • Added SentryOptions.AutoRegisterTracing for users who need to control registration of Sentry's tracing middleware (#2871)

Dependencies

4.0.0-beta.1

19 Nov 21:29
Compare
Choose a tag to compare
4.0.0-beta.1 Pre-release
Pre-release

Features

  • Sentry.Profiling is now packaged to be uploaded to nuget.org (#2800)

4.0.0-beta.0

17 Nov 14:34
Compare
Choose a tag to compare
4.0.0-beta.0 Pre-release
Pre-release

Fixes

  • Don't add WinUI exception integration on mobile platforms (#2821)
  • Transactions are now getting enriched by the client instead of the hub (#2838)

API breaking Changes

Removed APIs

  • A number of [Obsolete] options have been removed (#2841)
    • BeforeSend - use SetBeforeSend instead.
    • BeforeSendTransaction - use SetBeforeSendTransaction instead.
    • BeforeBreadcrumb - use SetBeforeBreadcrumb instead.
    • CreateHttpClientHandler - use CreateHttpMessageHandler instead.
    • ReportAssemblies - use ReportAssembliesMode instead.
    • KeepAggregateException - this property is no longer used and has no replacement.
    • DisableTaskUnobservedTaskExceptionCapture method has been renamed to DisableUnobservedTaskExceptionCapture.
    • DebugDiagnosticLogger - use TraceDiagnosticLogger instead.
  • A number of iOS/Android-specific [Obsolete] options have been removed (#2856)
    • Distribution - use SentryOptions.Distribution instead.
    • EnableAutoPerformanceTracking - use SetBeforeSendTransaction instead.
    • EnableCoreDataTracking - use EnableCoreDataTracing instead.
    • EnableFileIOTracking - use EnableFileIOTracing instead.
    • EnableOutOfMemoryTracking - use EnableWatchdogTerminationTracking instead.
    • EnableUIViewControllerTracking - use EnableUIViewControllerTracing instead.
    • StitchAsyncCode - no longer available.
    • ProfilingTracesInterval - no longer available.
    • ProfilingEnabled - use ProfilesSampleRate instead.
  • Obsolete SystemClock constructor removed, use SystemClock.Clock instead. (#2856)
  • Obsolete Runtime.Clone() removed, this shouldn't have been public in the past and has no replacement. (#2856)
  • Obsolete SentryException.Data removed, use SentryException.Mechanism.Data instead. (#2856)
  • Obsolete AssemblyExtensions removed, this shouldn't have been public in the past and has no replacement. (#2856)
  • Obsolete SentryDatabaseLogging.UseBreadcrumbs() removed, it is called automatically and has no replacement. (#2856)
  • Obsolete Scope.GetSpan() removed, use Span property instead. (#2856)
  • Obsolete IUserFactory removed, use ISentryUserFactory instead. (#2856, #2840)

Changed APIs

  • DebugImage and DebugMeta moved to Sentry.Protocol namespace. (#2815)
  • SentryClient.Dispose is no longer obsolete (#2842)

4.0.0-alpha.0

09 Nov 17:45
Compare
Choose a tag to compare
4.0.0-alpha.0 Pre-release
Pre-release

Breaking changes

The minimum version supported for different frameworks changed.
For more details on reasoning, please check this GitHub Discussion.

.NET Framework 4.6.1

.NET Framework 4.6.1 was announced in Nov 30, 2015. And went out of support over a year ago, on Apr 26, 2022.

  • Drop support for .NET Framework 4.6.1 in favor of 4.6.2 (#2786)

.NET 6 on mobile (e.g: net6.0-android)

.NET 6 on mobile is out of support since May 2023. With .NET 8 coming,
it won't be possible to build .NET 6 Mobile specific targets.
For that reason, we're moving the mobile specific TFMs from net6.0-platform to net7.0-platform.
Mobile apps still on .NET 6 will pull the Sentry .NET 6, which offers the .NET-only features,
without native/platform specific bindings and SDKs. See this ticket for more details.

  • Drop .NET 6 Mobile in favor of .NET 7 (#2624)

Tizen support dropped

  • Drop support for Tizen (#2734)

Dropping .NET Core 3.1 and .NET 5

  • Drop .NET Core 3.1 and .NET 5 support (#2787)

API Changes:

  • IHasMeasurements was removed. Use ISpanData instead. (#2659)

  • If null has been supplied as DSN when initializing Sentry, and ArgumentNullException is now thrown. (#2655)

  • IHasBreadcrumbs was removed. Use IEventLike instead. (#2670)

  • ISpanContext was removed. Use ITraceContext instead. (#2668)

  • Removed IHasTransactionNameSource. Use ITransactionContext instead. (#2654)

  • Adding Distribution to IEventLike. (#2660)

  • Upgraded to NLog version 5. (#2697)

  • Removed unused StackFrame.InstructionOffset. (#2691)

  • Change StackFrame's ImageAddress, InstructionAddress and FunctionId to long?. (#2691)

  • Change DebugImage.ImageAddress to long?. (#2725)

  • Enable CaptureFailedRequests by default (#2688)

  • Additional constructors removed from TransactionTracer. (#2694)

  • Removed the Scope.Platform property as it was never applied. (#2695)

  • Reordered parameters for ther TransactionContext and SpanContext constructors. If you're constructing instances of these classes, you will need to adjust the order in which you pass parameters to these. (#2696)

  • The DiagnosticLogger signature for LogError and LogFatal changed to take the exception as the first parameter. That way it does no longer get mixed up with the TArgs. The DiagnosticLogger now also received an overload for LogError and LogFatal that accepts a message only. (#2715)

  • Integrate sentry-native as a static library in Native AOT builds to enable symbolication. (#2704)

  • Contexts now inherits from IDictionary rather than ConcurrentDictionary. The specific dictionary being used is an implementation detail. (#2729)

  • ISentryClient.CaptureEvent overloads have been replaced by a single method accepting optional Hint and Scope parameters. You will need to pass hint as a named parameter from code that calls CaptureEvent without passing a scope argument. (#2749)

  • The methods WithScope and WithScopeAsync have been removed. We discovered that these methods didn't work correctly in certain desktop contexts, especially when using a global scope. (#2717)
    Replace your usage of WithScope with the overloads of the Capture methods:

    • SentrySdk.CaptureEvent(SentryEvent @event, Action<Scope> scopeCallback)
    • SentrySdk.CaptureMessage(string message, Action<Scope> scopeCallback)
    • SentrySdk.CaptureException(Exception exception, Action<Scope> scopeCallback)
    Before
    SentrySdk.WithScope(scope =>
    {
      // Configure your scope here
      scope.SetTag("key", "value");
      SentrySdk.CaptureEvent(new SentryEvent()); // Capture the event with the configured scope
    });
    
    After
    SentrySdk.CaptureEvent(new SentryEvent(), scope =>
    {
      // Configure your scope here
      scope.SetTag("key", "value");
    });
    
  • ISpan and ITransaction have been renamed to ISpanTracer and ITransactionTracer. You will need to update any references to these interfaces in your code to use the new interface names (#2731)

  • Removed obsolete setter from Sentry.PlatformAbstractions.Runtime.Identifier (2764)

  • Sentry.Values<T> is now internal as it is never exposed in the public API (#2771)

  • AOT compilation support for .NET 7+ has been added to Sentry, Sentry.Serilog, Sentry.Profiling, Sentry.OpenTelemetry and Sentry.NLog. There are some functional differences when compiling AOT:

    • Enhanced Stack Traces are not available when compiling AOT, as the mechanism to generate these ehanced stack traces currently relies heavily on reflection and isn't compatible with trimming.
    • Reflection cannot be leveraged for JSON Serialization and you may need to supply a JsonSerializationContext for types that you'd like to send to Sentry (e.g. in the Span.Context). You can use SentryOptions.AddJsonSerializerContext to supply your own context when initializing Sentry.
    • When compiling AOT, Sentry isn't able to automatically register an unhandled exception handler in WinUI applications, since that also relies on reflection. If you're using Sentry with a WinUI application and you want to use AOT compilation, you'll need to take care of registering the unhandled event handler yourself. TODO *** Fill in the gaps here when #2778 has been completed ***
    • (#2732), (#2793)
  • The TracePropagationTarget class has been removed. Use the SubstringOrRegexPattern class instead. (#2763)

  • Transaction names for ASP.NET Core are now consistently named HTTP-VERB /path (e.g. GET /home). Previously the leading forward slash might not have been present for some endpoints (#2808)

Sentry.Google.Cloud.Functions

  • Min version of Google.Cloud.Functions.Hosting supported 1.1.0 to 2.0.0 (#2787)