Skip to content

Latest commit

 

History

History
653 lines (444 loc) · 24.3 KB

CHANGELOG.md

File metadata and controls

653 lines (444 loc) · 24.3 KB

Changelog

Unreleased

Fixes

  • Maps with Key Object, Object would fail during serialization if not String, Object (#935)

Features

6.6.3

Fixes

  • Context Escape with ScopeCallback (#925)

6.6.2

Features

Fixes

  • Send DidBecomeActiveNotification when OOM enabled (#905)
  • dio.addSentry hangs if dsn is empty and SDK NoOp (#920)
  • addBreadcrumb throws on Android API < 24 because of NewApi usage (#923)
  • sentry_dio is promoted to GA and not experimental anymore (#914)

6.6.1

Fixes

  • Filter out app starts with more than 60s (#895)

6.6.0

Fixes

  • Bump: Sentry-Cocoa to 7.18.0 and Sentry-Android to 6.1.2 (#892)
  • Fix: Add missing iOS contexts (#761)
  • Fix serialization of threads (#844)
  • Fix: SentryAssetBundle on Flutter >= 3.1 (#877)

Features

  • Feat: Client Reports (#829)
  • Feat: Allow manual init of the Native SDK (#765)
  • Feat: Attach Isolate name to thread context (#847)
  • Feat: Add Android thread to platform stacktraces (#853)
  • Feat: Sync Scope to Native (#858)

Sentry Self-hosted Compatibility

  • Starting with version 6.6.0 of sentry, Sentry's version >= v21.9.0 is required or you have to manually disable sending client reports via the sendClientReports option. This only applies to self-hosted Sentry. If you are using sentry.io, no action is needed.

6.6.0-beta.4

  • Bump: Sentry-Cocoa to 7.17.0 and Sentry-Android to 6.1.1 (#891)

6.6.0-beta.3

  • Bump: Sentry-Cocoa to 7.16.1 (#886)

6.6.0-beta.2

  • Fix: Add user setter back in the scope (#883)
  • Fix: clear method sets all properties synchronously (#882)

6.6.0-beta.1

  • Feat: Sync Scope to Native (#858)

6.6.0-alpha.3

  • Feat: Attach Isolate name to thread context (#847)
  • Fix: SentryAssetBundle on Flutter >= 3.1 (#877)
  • Feat: Add Android thread to platform stacktraces (#853)
  • Fix: Rename auto initialize property (#857)
  • Bump: Sentry-Android to 6.0.0 (#879)

6.6.0-alpha.2

  • Fix serialization of threads (#844)
  • Feat: Allow manual init of the Native SDK (#765)

6.6.0-alpha.1

  • Feat: Client Reports (#829)
  • Fix: Add missing iOS contexts (#761)

Sentry Self-hosted Compatibility

  • Starting with version 6.6.0 of sentry, Sentry's version >= v21.9.0 is required or you have to manually disable sending client reports via the sendClientReports option. This only applies to self-hosted Sentry. If you are using sentry.io, no action is needed.

6.5.1

  • Update event contexts (#838)

6.5.0

  • No documented changes.

6.5.0-beta.2

  • Fix: Do not set the transaction to scope if no op (#828)

6.5.0-beta.1

  • No documented changes.

6.5.0-alpha.3

  • Feat: Support for platform stacktraces on Android (#788)

6.5.0-alpha.2

  • Bump: Sentry-Android to 5.7.0 and Sentry-Cocoa to 7.11.0 (#796)
  • Fix: Dio event processor safelly bails if no DioError in the exception list (#795)

6.5.0-alpha.1

  • Feat: Mobile Vitals - Native App Start (#749)
  • Feat: Mobile Vitals - Native Frames (#772)

6.4.0

Various fixes & improvements

  • Fix: Missing userId on iOS when userId is not set (#782) by @marandaneto
  • Allow to set startTimestamp & endTimestamp manually to SentrySpan (#676) by @fatihergin

6.4.0-beta.3

  • Feat: Allow to set startTimestamp & endTimestamp manually to SentrySpan (#676)
  • Bump: Sentry-Cocoa to 7.10.0 (#777)
  • Feat: Additional Dart/Flutter context information (#778)
  • Bump: Kotlin plugin to 1.5.31 (#763)
  • Fix: Missing userId on iOS when userId is not set (#782)

6.4.0-beta.2

  • No documented changes.

6.4.0-beta.1

  • Fix: Disable log by default in debug mode (#753)
  • [Dio] Ref: Replace FailedRequestAdapter with FailedRequestInterceptor (#728)
  • Fix: Add missing return values - dart analyzer (#742)
  • Feat: Add DioEventProcessor which improves DioError crash reports (#718)
  • Fix: Do not report duplicated packages and integrations (#760)
  • Feat: Allow manual init of the Native SDK or no Native SDK at all (#765)

6.3.0

  • Feat: Support maxSpan for performance API and expose SentryOptions through Hub (#716)
  • Fix: await ZonedGuard integration to run (#732)
  • Fix: sentry_logging incorrectly setting SDK name (#725)
  • Bump: Sentry-Android to 5.6.1 and Sentry-Cocoa to 7.9.0 (#736)
  • Feat: Support Attachment.addToTransactions (#709)
  • Fix: captureTransaction should return emptyId when transaction is discarded (#713)
  • Add SentryAssetBundle for automatic spans for asset loading (#685)
  • Fix: maxRequestBodySize should be never by default when using the FailedRequestClientAdapter directly (#701)
  • Feat: Add support for Dio (#688)
  • Fix: Use correct data/extras type in tracer (#693)
  • Fix: Do not throw when Throwable type is not supported for associating errors to a transaction (#692)
  • Feat: Automatically create transactions when navigating between screens (#643)

6.3.0-beta.4

  • Feat: Support Attachment.addToTransactions (#709)
  • Fix: captureTransaction should return emptyId when transaction is discarded (#713)

6.3.0-beta.3

  • Feat: Auto transactions duration trimming (#702)
  • Add SentryAssetBundle for automatic spans for asset loading (#685)
  • Feat: Configure idle transaction duration (#705)
  • Fix: maxRequestBodySize should be never by default when using the FailedRequestClientAdapter directly (#701)

6.3.0-beta.2

  • Feat: Improve configuration options of SentryNavigatorObserver (#684)
  • Feat: Add support for Dio (#688)
  • Bump: Sentry-Android to 5.5.2 and Sentry-Cocoa to 7.8.0 (#696)

6.3.0-beta.1

  • Enha: Replace flutter default root name '/' with 'root' (#678)
  • Fix: Use 'navigation' instead of 'ui.load' for auto transaction operation (#675)
  • Fix: Use correct data/extras type in tracer (#693)
  • Fix: Do not throw when Throwable type is not supported for associating errors to a transaction (#692)

6.3.0-alpha.1

  • Feat: Automatically create transactions when navigating between screens (#643)

6.2.2

  • Fix: ConcurrentModificationError in when finishing span (#664)
  • Feat: Add enableNdkScopeSync Android support (#665)

6.2.1

  • Fix: sentry_logging works now on web (#660)
  • Fix: sentry_logging timestamps are in UTC (#660)
  • Fix: sentry_logging Level.Off is never recorded (#660)
  • Fix: Rate limiting fallback to retryAfterHeader (#658)

6.2.0

  • Feat: Integration for logging (#631)
  • Feat: Add logger name to SentryLogger and send errors in integrations to the registered logger (#641)

6.1.2

  • Fix: Remove is Enum check to support older Dart versions (#635)

6.1.1

  • Fix: Transaction serialization if not encodable (#633)

6.1.0

  • Bump: Sentry-Android to 5.3.0 and Sentry-Cocoa to 7.5.1 (#629)
  • Fix: event.origin tag for macOS and other Apple platforms (#622)
  • Feat: Add current route as transaction (#615)
  • Feat: Add Breadcrumbs for Flutters debugPrint (#618)
  • Feat: Enrich Dart context with isolate name (#600)
  • Feat: Sentry Performance for HTTP client (#603)
  • Performance API for Dart/Flutter (#530)

Breaking Changes:

  • SentryEvent inherits from the SentryEventLike mixin
  • Scope#transaction sets and reads from the Scope#span object if bound to the Scope

6.1.0-beta.1

  • Feat: Add current route as transaction (#615)
  • Feat: Add Breadcrumbs for Flutters debugPrint (#618)

6.1.0-alpha.2

  • Bump Sentry Android SDK to 5.2.0 (#594)
  • Feat: Enrich Dart context with isolate name (#600)
  • Feat: Sentry Performance for HTTP client (#603)

6.1.0-alpha.1

  • Performance API for Dart/Flutter (#530)

Breaking Changes:

  • SentryEvent inherits from the SentryEventLike mixin
  • Scope#transaction sets and reads from the Scope#span object if bound to the Scope

6.0.1

  • Fix: Set custom SentryHttpClientError when HTTP error is captured without an exception (#580)
  • Bump: Android AGP 4.1 (#586)
  • Bump: Sentry Cocoa to 7.3.0 (#589)

6.0.0

  • Fix: Update SentryUser according to docs (#561)
  • Feat: Enable or disable reporting of packages (#563)
  • Bump: Sentry-Cocoa to 7.2.7 (#578)
  • Bump: Sentry-Android to 5.1.2 (#578)
  • Fix: Read Sentry config from environment variables as fallback (#567)

6.0.0-beta.4

Breaking Changes:

  • Feat: Lists of exceptions and threads (#524)
  • Feat: Collect more information for exceptions collected via FlutterError.onError (#538)
  • Feat: Add maxAttachmentSize option (#553)
  • Feat: HTTP breadcrumbs have the request & response size if available (#552)

6.0.0-beta.3

  • Fix: Re-initialization of Flutter SDK (#526)
  • Enhancement: Call toString() on all non-serializable fields (#528)
  • Fix: Always call Flutter.onError in order to not swallow messages (#533)
  • Bump: Android SDK to 5.1.0-beta.6 (#535)

6.0.0-beta.2

  • Fix: Serialization of Flutter Context (#520)
  • Feat: Add support for attachments (#505)
  • Feat: Add support for User Feedback (#506)

6.0.0-beta.1

  • Feat: Browser detection (#502)
  • Feat: Enrich events with more context (#452)
  • Feat: Add Culture Context (#491)
  • Feat: Add DeduplicationEventProcessor (#498)
  • Feat: Capture failed requests as event (#473)
  • Feat: beforeSend callback accepts async code (#494)

Breaking Changes:

  • Ref: EventProcessor changed to an interface (#489)
  • Feat: Support envelope based transport for events (#391)
    • The method signature of Transport changed from Future<SentryId> send(SentryEvent event) to Future<SentryId> send(SentryEnvelope envelope)
  • Remove Sentry.currentHub (#490)
  • Ref: Rename cacheDirSize to maxCacheItems and add maxCacheItems for iOS (#495)
  • Ref: Add error and stacktrace parameter to logger (#503)
  • Feat: Change timespans to Durations in SentryOptions (#504)
  • Feat: beforeSend callback accepts async code (#494)

Sentry Self Hosted Compatibility

  • Since version 6.0.0 of the sentry, Sentry's version >= v20.6.0 is required. This only applies to on-premise Sentry, if you are using sentry.io no action is needed.

5.1.0

  • Fix: Merge user from event and scope (#467)
  • Feature: Allow setting of default values for in-app-frames via SentryOptions.considerInAppFramesByDefault (#482)
  • Bump: sentry-android to v5.0.1 (#486)
  • Bump: Sentry-Cocoa to 7.1.3 for iOS and macOS (#488)

5.1.0-beta.1

  • Fix: Sentry.close() closes native SDK integrations (#388)
  • Feat: Support for macOS (#389)
  • Feat: Support for Linux (#402)
  • Feat: Support for Windows (#407)
  • Fix: Mark Sentry.currentHub as deprecated (#406)
  • Fix: Set console logger as default logger in debug mode (#413)
  • Fix: Use name from pubspec.yaml for release if package id is not available (#411)
  • Feat: SentryHttpClient tracks the duration which a request takes and logs failed requests (#414)
  • Bump: sentry-cocoa to v7.0.0 (#424)
  • Feat: Support for Out-of-Memory-Tracking on macOS/iOS (#424)
  • Fix: Trim \u0000 from Windows package info (#420)
  • Feature: Log calls to print() as Breadcrumbs (#439)
  • Fix: dist was read from SENTRY_DSN, now it's read from SENTRY_DIST (#442)
  • Bump: sentry-cocoa to v7.0.3 (#445)
  • Fix: Fix adding integrations on web (#450)
  • Fix: Use log() instead of print() for SDK logging (#453)
  • Bump: sentry-android to v5.0.0-beta.2 (#457)
  • Feature: Add withScope callback to capture methods (#463)
  • Fix: Add missing properties language, screenHeightPixels and screenWidthPixels to SentryDevice (#465)

Sentry Self Hosted Compatibility

  • This version of the sentry Dart package requires Sentry server >= v20.6.0. This only applies to on-premise Sentry, if you are using sentry.io no action is needed.

5.0.0

  • Sound null safety
  • Fix: event.origin and event.environment tags have wrong value for iOS (#365) and (#369)
  • Fix: Fix deprecated registrar.messenger call in SentryFlutterWeb (#364)
  • Fix: Enable breadcrumb recording mechanism based on platform (#366)
  • Feat: Send default PII options (#360)
  • Bump: sentry-cocoa to v6.2.1 (#360)
  • Feat: Migration from package_info to package_info_plus plugin (#370)
  • Fix: Set SentryOptions.debug in sentry (#376)
  • Fix: Read all environment variables in sentry (#375)

Breaking Changes:

  • Return type of Sentry.close() changed from void to Future<void> and Integration.close() changed from void to FutureOr<void> (#395)
  • Remove deprecated member enableLifecycleBreadcrumbs. Use enableAppLifecycleBreadcrumbs instead. (#366)

4.1.0-nullsafety.1

  • Bump: sentry-android to v4.3.0 (#343)
  • Fix: Multiple FlutterError.onError calls in FlutterErrorIntegration (#345)
  • Fix: Pass hint to EventProcessors (#356)
  • Fix: EventProcessors were not dropping events when returning null (#353)

Breaking Changes:

  • Fix: Plugin Registrant class moved to barrel file (#358)
    • This changed the import from import 'package:sentry_flutter/src/sentry_flutter_web.dart'; to import 'package:sentry_flutter/sentry_flutter_web.dart';
    • This could lead to breaking changes. Typically it shouldn't because the referencing file is auto-generated.
  • Fix: Prefix classes with Sentry (#357)
    • A couple of classes were often conflicting with user's code. Thus this change renames the following classes:
      • App -> SentryApp
      • Browser -> SentryBrowser
      • Device -> SentryDevice
      • Gpu -> SentryGpu
      • Integration -> SentryIntegration
      • Message -> SentryMessage
      • OperatingSystem -> SentryOperatingSystem
      • Request -> SentryRequest
      • User -> SentryUser
      • Orientation -> SentryOrientation

4.1.0-nullsafety.0

  • Fix: Do not append stack trace to the exception if there are no frames
  • Fix: Empty DSN disables the SDK and runs the App
  • Feat: sentry and sentry_flutter null-safety thanks to @ueman and @fzyzcjy

4.0.6

  • Fix: captureMessage defaults SentryLevel to info
  • Fix: SentryEvent.throwable returns the unwrapped throwable instead of the throwableMechanism
  • Feat: Support enableNativeCrashHandling on iOS

4.0.5

  • Bump: sentry-android to v4.0.0
  • Fix: Pana Flutter upper bound deprecation
  • Fix: sentry_flutter static analysis (pana) using stable version

4.0.4

  • Fix: Call WidgetsFlutterBinding.ensureInitialized() within runZoneGuarded

4.0.3

  • Fix: Auto session tracking start on iOS #274
  • Bump: Sentry-cocoa to 6.1.4

4.0.2

  • Fix: Mark session as errored in iOS #270
  • Fix: Pass auto session tracking interval to iOS
  • Fix: Deprecated binaryMessenger (MethodChannel member) for Flutter Web
  • Ref: Make WidgetsFlutterBinding.ensureInitialized(); the first thing the Sentry SDK calls.
  • Bump: Sentry-cocoa to 6.0.12
  • Feat: Respect FlutterError silent flag #248
  • Bump: Android SDK to v3.2.1 #273

4.0.1

  • Ref: Changed category of Flutter lifecycle tracking #240
  • Fix: Envelope length should be based on the UTF8 array instead of String length

4.0.0

Release of Sentry's new SDK for Dart/Flutter.

New features not offered by <= v4.0.0:

Dart SDK

Flutter SDK

  • The Flutter SDK is built on top of the Dart SDK, so it includes all the available features, plus
  • Flutter SDK docs.
  • Automatic NavigatorObserver Breadcrumbs
  • Automatic Device's Breadcrumbs through the Android and iOS SDKs or via Sentry's WidgetsBindingObserver wrapper
  • No boilerplate for FlutterError.onError
  • All events are enriched with Contexts's data, this includes Device's, OS, App info, etc...
  • Offline caching
  • Release health
  • Captures not only Dart and Flutter errors, but also errors caused on the native platforms, Like Kotlin, Java, C and C++ for Android and Swift, ObjC, C, C++ for iOS
  • Supports Fatal crashes, Event is going to be sent on App's restart
  • Supports split-debug-info for Android only
  • Flutter Android, iOS and limited support for Flutter Web

Improvements:

  • Feat: Added a copyWith method to all the protocol classes

Packages were released on sentry pubdev and sentry_flutter pubdev

Sentry Self Hosted Compatibility

  • Since version 4.0.0 of the sentry_flutter, Sentry's version >= v20.6.0 is required. This only applies to on-premise Sentry, if you are using sentry.io no action is needed.

4.0.0-beta.2

  • Ref: Remove duplicated attachStackTrace field
  • Fix: Flutter Configurations should be able to mutate the SentryFlutterOptions
  • Enhancement: Add SentryWidgetsBindingObserver, an Integration that captures certain window and device events.
  • Enhancement: Set options.environment on SDK init based on the flags (kReleaseMode, kDebugMode, kProfileMode or SENTRY_ENVIRONMENT).
  • Feature: SentryHttpClient to capture HTTP requests as breadcrumbs
  • Ref: Only assign non-null option values in Android native integration in order preserve default values
  • Enhancement: Add 'attachThreads' in options. When enabled, threads are attached to all logged events for Android
  • Ref: Rename typedef Logger to SentryLogger to prevent name clashes with logging packages
  • Fix: Scope Event processors should be awaited
  • Fix: Package usage as git dependency

Breaking changes

  • Logger typedef is renamed to SentryLogger
  • attachStackTrace is renamed to attachStacktrace

4.0.0-beta.1

  • Fix: StackTrace frames with 'package' uri.scheme are inApp by default #185
  • Fix: Missing App's StackTrace frames for Flutter errors
  • Enhancement: Add isolateErrorIntegration and runZonedGuardedIntegration to default integrations in sentry-dart
  • Fix: Breadcrumb list is a plain list instead of a values list #201
  • Ref: Remove deprecated classes (Flutter Plugin for Android) and cleaning up #186
  • Fix: Handle immutable event lists and maps
  • Fix: NDK integration was being disabled by a typo
  • Fix: Missing toList for debug meta #192
  • Enhancement: NavigationObserver to record Breadcrumbs for navigation events #197
  • Fix: Integrations should be closeable
  • Feat: Support split-debug-info for Android #191
  • Fix: the event payload must never serialize null or empty fields
  • Ref: Make hints optional

Breaking changes

  • Sentry.init and SentryFlutter.init have an optional callback argument which runs the host App after Sentry initialization.
  • Integration is an Interface instead of a pure Function
  • Hints are optional arguments
  • Sentry Dart SDK adds an IsolateError handler by default

4.0.0-alpha.2

  • Enhancement: Contexts were added to the Scope #154
  • Fix: App. would hang if debug mode was enabled and refactoring ##157
  • Enhancement: Sentry Protocol v7
  • Enhancement: Added missing Protocol fields, Request, SentryStackTrace...) #155
  • Feat: Added attachStackTrace options to attach stack traces on captureMessage calls
  • Feat: Flutter SDK has the Native SDKs embedded (Android and Apple) #158

Breaking changes

  • Sentry.init returns a Future.
  • Dart min. SDK is 2.8.0
  • Flutter min. SDK is 1.17.0
  • Timestamp has millis precision.
  • For better groupping, add your own package to the addInAppInclude list, e.g. options.addInAppInclude('sentry_flutter_example');
  • A few classes of the Protocol were renamed.

Sentry Self Hosted Compatibility

  • Since version 4.0.0 of the sentry_flutter, Sentry version >= v20.6.0 is required. This only applies to on-premise Sentry, if you are using sentry.io no action is needed.

4.0.0-alpha.1

First Release of Sentry's new SDK for Dart/Flutter.

New features not offered by <= v4.0.0:

  • Sentry's Unified API.
  • Complete Sentry Protocol available.
  • Docs and Migration is under review on this PR
  • For all the breaking changes follow this PR, they'll be soon available on the Migration page.

Packages were released on pubdev

We'd love to get feedback and we'll work in getting the GA 4.0.0 out soon. Until then, the stable SDK offered by Sentry is at version 3.0.1

3.0.1

  • Add support for Contexts in Sentry events

3.0.0+1

  • pubspec.yaml and example code clean-up.

3.0.0

  • Support Web
    • SentryClient from package:sentry/sentry.dart with conditional import
    • SentryBrowserClient for web from package:sentry/browser_client.dart
    • SentryIOClient for VM and Flutter from package:sentry/io_client.dart

2.3.1

  • Support non-standard port numbers and paths in DSN URL.

2.3.0

2.2.0

  • Add a stackFrameFilter argument to SentryClient's capture method (96be842).
  • Clean-up code using pre-Dart 2 API (91c7706, b01ebf8).

2.1.1

2.1.0

  • Support DNS format without secret key.
  • Remove dependency on package:quiver.
  • The clock argument to SentryClient constructor should now be ClockProvider (but still accepts Clock for backwards compatibility).

2.0.2

  • Add support for user context in Sentry events.

2.0.1

  • Invert stack frames to be compatible with Sentry's default culprit detection.

2.0.0

  • Fixed deprecation warnings for Dart 2
  • Refactored tests to work with Dart 2

1.0.0

  • first and last Dart 1-compatible release (we may fix bugs on a separate branch if there's demand)
  • fix code for Dart 2

0.0.6

  • use UTC in the timestamp field

0.0.5

  • remove sub-seconds from the timestamp

0.0.4

  • parse and report async gaps in stack traces

0.0.3

  • environment attributes
  • auto-generate event_id and timestamp for events

0.0.2

  • parse and report stack traces
  • use x-sentry-error HTTP response header
  • gzip outgoing payloads by default

0.0.1

  • basic ability to send exception reports to Sentry.io