diff --git a/CHANGELOG.md b/CHANGELOG.md index 22d4e87dab..d3149156e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,11 @@ - [changelog](https://github.com/getsentry/sentry-cocoa/blob/main/CHANGELOG.md#8301) - [diff](https://github.com/getsentry/sentry-cocoa/compare/8.30.0...8.30.1) +### Deprecated + +- Deprecate `setExtra` and `removeExtra` ([#2159](https://github.com/getsentry/sentry-dart/pull/2159)) + - Use the `Contexts` structure via `setContexts` instead + ## 8.4.0-beta.1 ### Features diff --git a/dart/example_web/web/main.dart b/dart/example_web/web/main.dart index b39a05e0dc..3c0305b49e 100644 --- a/dart/example_web/web/main.dart +++ b/dart/example_web/web/main.dart @@ -44,6 +44,7 @@ Future runApp() async { ..transaction = '/example/app' ..level = SentryLevel.warning; await scope.setTag('build', '579'); + // ignore: deprecated_member_use await scope.setExtra('company-name', 'Dart Inc'); await scope.setUser( diff --git a/dart/example_web_legacy/web/main.dart b/dart/example_web_legacy/web/main.dart index 3034effe9b..506bedf159 100644 --- a/dart/example_web_legacy/web/main.dart +++ b/dart/example_web_legacy/web/main.dart @@ -44,6 +44,7 @@ Future runApp() async { ..transaction = '/example/app' ..level = SentryLevel.warning; await scope.setTag('build', '579'); + // ignore: deprecated_member_use await scope.setExtra('company-name', 'Dart Inc'); await scope.setUser( diff --git a/dart/lib/src/scope.dart b/dart/lib/src/scope.dart index 3fef9a92a2..15ce065752 100644 --- a/dart/lib/src/scope.dart +++ b/dart/lib/src/scope.dart @@ -268,6 +268,8 @@ class Scope { } /// Sets an extra to the Scope + @Deprecated( + 'Use Contexts instead. Additional data is deprecated in favor of structured Contexts and should be avoided when possible') Future setExtra(String key, dynamic value) async { _setExtraSync(key, value); await _callScopeObservers( @@ -275,6 +277,8 @@ class Scope { } /// Removes an extra from the Scope + @Deprecated( + 'Use Contexts instead. Additional data is deprecated in favor of structured Contexts and should be avoided when possible') Future removeExtra(String key) async { _extra.remove(key); await _callScopeObservers( diff --git a/dart/test/scope_test.dart b/dart/test/scope_test.dart index 66cc543b6b..8a535541c1 100644 --- a/dart/test/scope_test.dart +++ b/dart/test/scope_test.dart @@ -1,3 +1,5 @@ +// ignore_for_file: deprecated_member_use_from_same_package + import 'package:collection/collection.dart'; import 'package:sentry/sentry.dart'; import 'package:sentry/src/sentry_tracer.dart'; @@ -417,7 +419,6 @@ void main() { test('apply context to event', () async { final event = SentryEvent( tags: const {'etag': '987'}, - // ignore: deprecated_member_use_from_same_package extra: const {'e-infos': 'abc'}, ); final scope = Scope(SentryOptions(dsn: fakeDsn)) @@ -442,9 +443,7 @@ void main() { expect(updatedEvent?.tags, {'etag': '987', 'build': '579', 'page-locale': 'en-us'}); expect( - // ignore: deprecated_member_use_from_same_package - updatedEvent?.extra, - {'e-infos': 'abc', 'company-name': 'Dart Inc'}); + updatedEvent?.extra, {'e-infos': 'abc', 'company-name': 'Dart Inc'}); expect(updatedEvent?.contexts['theme'], {'value': 'material'}); }); diff --git a/dart/test/sentry_client_test.dart b/dart/test/sentry_client_test.dart index 92b6792fdf..d481a13fb0 100644 --- a/dart/test/sentry_client_test.dart +++ b/dart/test/sentry_client_test.dart @@ -812,6 +812,7 @@ void main() { ..fingerprint = fingerprint ..addBreadcrumb(crumb) ..setTag(scopeTagKey, scopeTagValue) + // ignore: deprecated_member_use_from_same_package ..setExtra(scopeExtraKey, scopeExtraValue); scope.setUser(user); diff --git a/flutter/example/integration_test/integration_test.dart b/flutter/example/integration_test/integration_test.dart index 570b8c1fe2..7a961083b5 100644 --- a/flutter/example/integration_test/integration_test.dart +++ b/flutter/example/integration_test/integration_test.dart @@ -6,10 +6,10 @@ import 'dart:convert'; import 'package:flutter/widgets.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; -import 'package:sentry_flutter_example/main.dart'; import 'package:http/http.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:sentry_flutter/src/integrations/native_app_start_integration.dart'; +import 'package:sentry_flutter_example/main.dart'; void main() { // const org = 'sentry-sdks'; @@ -121,7 +121,9 @@ void main() { await scope.addBreadcrumb(breadcrumb); await scope.clearBreadcrumbs(); + // ignore: deprecated_member_use await scope.setExtra('extra-key', 'extra-value'); + // ignore: deprecated_member_use await scope.removeExtra('extra-key'); await scope.setTag('tag-key', 'tag-value'); diff --git a/flutter/example/lib/main.dart b/flutter/example/lib/main.dart index 86da143e31..784a6b30df 100644 --- a/flutter/example/lib/main.dart +++ b/flutter/example/lib/main.dart @@ -4,31 +4,31 @@ import 'dart:async'; import 'dart:convert'; import 'dart:math'; +import 'package:dio/dio.dart'; +import 'package:feedback/feedback.dart' as feedback; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:logging/logging.dart'; import 'package:path_provider/path_provider.dart'; +import 'package:provider/provider.dart'; +import 'package:sentry_dio/sentry_dio.dart'; import 'package:sentry_drift/sentry_drift.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; +import 'package:sentry_hive/sentry_hive.dart'; import 'package:sentry_isar/sentry_isar.dart'; +import 'package:sentry_logging/sentry_logging.dart'; import 'package:sentry_sqflite/sentry_sqflite.dart'; import 'package:sqflite/sqflite.dart'; - // import 'package:sqflite_common_ffi/sqflite_ffi.dart'; // import 'package:sqflite_common_ffi_web/sqflite_ffi_web.dart'; import 'package:universal_platform/universal_platform.dart'; -import 'package:feedback/feedback.dart' as feedback; -import 'package:provider/provider.dart'; + import 'auto_close_screen.dart'; -import 'drift/database.dart'; import 'drift/connection/connection.dart'; +import 'drift/database.dart'; import 'isar/user.dart'; import 'user_feedback_dialog.dart'; -import 'package:dio/dio.dart'; -import 'package:sentry_dio/sentry_dio.dart'; -import 'package:sentry_logging/sentry_logging.dart'; -import 'package:sentry_hive/sentry_hive.dart'; // ATTENTION: Change the DSN below with your own to see the events in Sentry. Get one at sentry.io const String exampleDsn = @@ -474,6 +474,7 @@ class MainScaffold extends StatelessWidget { final entries = feedback.extra?.entries; if (entries != null) { for (final extra in entries) { + // ignore: deprecated_member_use scope.setExtra(extra.key, extra.value); } }