From 1e35081e6fa45929bc5b4e9db1a581a93342ee80 Mon Sep 17 00:00:00 2001 From: lucas Date: Tue, 2 Sep 2025 10:32:51 +0100 Subject: [PATCH 1/5] move to upper level --- CHANGELOG.md | 26 +++++++++++++++++++ .../io/sentry/react/RNSentryModuleImpl.java | 7 ++--- packages/core/src/js/client.ts | 2 +- packages/core/src/js/options.ts | 2 +- samples/react-native/src/App.tsx | 24 ++++++++++++++--- 5 files changed, 50 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9215e70b39..7f63663791 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,32 @@ > make sure you follow our [migration guide](https://docs.sentry.io/platforms/react-native/migration/) first. +## Unreleased + +### Important Changes + +- The `_experiments.enableLogs` and `_experiments.beforeSendLog` options were removed, use the top-level `enableLogs` and `beforeSendLog` options instead. + +```js +// before +Sentry.init({ + _experiments: { + enableLogs: true, + beforeSendLog: log => { + return log; + }, + }, +}); + +// after +Sentry.init({ + enableLogs: true, + beforeSendLog: log => { + return log; + }, +}); +``` + ## 7.0.0-rc.2 ### Important Changes diff --git a/packages/core/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java b/packages/core/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java index c1da1b9f07..8025b79aa9 100644 --- a/packages/core/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java +++ b/packages/core/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java @@ -283,11 +283,8 @@ protected void getSentryAndroidOptions( if (rnOptions.hasKey("enableNdk")) { options.setEnableNdk(rnOptions.getBoolean("enableNdk")); } - if (rnOptions.hasKey("_experiments")) { - ReadableMap experiments = rnOptions.getMap("_experiments"); - if (experiments.hasKey("enableLogs")) { - options.getLogs().setEnabled(experiments.getBoolean("enableLogs")); - } + if (rnOptions.hasKey("enableLogs")) { + options.getLogs().setEnabled(rnOptions.getBoolean("enableLogs")); } if (rnOptions.hasKey("spotlight")) { if (rnOptions.getType("spotlight") == ReadableType.Boolean) { diff --git a/packages/core/src/js/client.ts b/packages/core/src/js/client.ts index 9f0b918d5e..fb8e8eea40 100644 --- a/packages/core/src/js/client.ts +++ b/packages/core/src/js/client.ts @@ -64,7 +64,7 @@ export class ReactNativeClient extends Client { this.on('beforeSendSession', addAutoIpAddressToSession); } - if (options._experiments?.enableLogs) { + if (options.enableLogs) { this.on('flush', () => { _INTERNAL_flushLogsBuffer(this); }); diff --git a/packages/core/src/js/options.ts b/packages/core/src/js/options.ts index 028abba45c..df830dfdd2 100644 --- a/packages/core/src/js/options.ts +++ b/packages/core/src/js/options.ts @@ -10,7 +10,7 @@ type ProfilerProps = React.ComponentProps; type BrowserTransportOptions = Parameters[0]; type BrowserExperiments = NonNullable; -type SharedExperimentsSubset = Pick; +type SharedExperimentsSubset = BrowserExperiments; export interface BaseReactNativeOptions { /** diff --git a/samples/react-native/src/App.tsx b/samples/react-native/src/App.tsx index ec67d79385..0e2c0937d1 100644 --- a/samples/react-native/src/App.tsx +++ b/samples/react-native/src/App.tsx @@ -40,6 +40,22 @@ import { isTurboModuleEnabled } from '@sentry/react-native/dist/js/utils/environ import * as ImagePicker from 'react-native-image-picker'; import SpaceflightNewsScreen from './Screens/SpaceflightNewsScreen'; +type HiddenBoolean = boolean & { readonly __hidden?: unique symbol }; +interface test { + /** @internal dont use for now */ + boom: boolean +} + +let x: test = { + + + + }; + + + +test.boom; + /* false by default to avoid issues in e2e tests waiting for the animation end */ const RUNNING_INDICATOR = false; @@ -82,12 +98,12 @@ Sentry.init({ ); }, _experiments: { - enableLogs: true, - beforeSendLog: (log) => { - return log; - }, enableUnhandledCPPExceptionsV2: true, }, + enableLogs: true, + beforeSendLog: (log) => { + return log; + }, enableUserInteractionTracing: true, integrations(integrations) { integrations.push( From 68b27cf9e26bd65108023a5e26468ef10f3d98fd Mon Sep 17 00:00:00 2001 From: LucasZF Date: Tue, 2 Sep 2025 10:34:31 +0100 Subject: [PATCH 2/5] Update samples/react-native/src/App.tsx --- samples/react-native/src/App.tsx | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/samples/react-native/src/App.tsx b/samples/react-native/src/App.tsx index 0e2c0937d1..25c44a6926 100644 --- a/samples/react-native/src/App.tsx +++ b/samples/react-native/src/App.tsx @@ -40,22 +40,6 @@ import { isTurboModuleEnabled } from '@sentry/react-native/dist/js/utils/environ import * as ImagePicker from 'react-native-image-picker'; import SpaceflightNewsScreen from './Screens/SpaceflightNewsScreen'; -type HiddenBoolean = boolean & { readonly __hidden?: unique symbol }; -interface test { - /** @internal dont use for now */ - boom: boolean -} - -let x: test = { - - - - }; - - - -test.boom; - /* false by default to avoid issues in e2e tests waiting for the animation end */ const RUNNING_INDICATOR = false; From a06b9f723ce25f6f494e70e18f27a3bded66deeb Mon Sep 17 00:00:00 2001 From: lucas Date: Tue, 2 Sep 2025 10:46:33 +0100 Subject: [PATCH 3/5] no references to experiments --- packages/core/src/js/integrations/default.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/js/integrations/default.ts b/packages/core/src/js/integrations/default.ts index 2cc6fafd30..53b7c49e9f 100644 --- a/packages/core/src/js/integrations/default.ts +++ b/packages/core/src/js/integrations/default.ts @@ -85,7 +85,7 @@ export function getDefaultIntegrations(options: ReactNativeClientOptions): Integ if (options.enableNative) { integrations.push(deviceContextIntegration()); integrations.push(modulesLoaderIntegration()); - if (options._experiments?.enableLogs) { + if (options.enableLogs) { integrations.push(logEnricherIntegration()); } if (options.attachScreenshot) { From 85e22927031a7853cc3f886fc53a64855334bebd Mon Sep 17 00:00:00 2001 From: lucas Date: Tue, 2 Sep 2025 10:48:31 +0100 Subject: [PATCH 4/5] changelog update: --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f63663791..976cee497e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ ### Important Changes -- The `_experiments.enableLogs` and `_experiments.beforeSendLog` options were removed, use the top-level `enableLogs` and `beforeSendLog` options instead. +- The `_experiments.enableLogs` and `_experiments.beforeSendLog` options were removed, use the top-level `enableLogs` and `beforeSendLog` options instead. ([#5122](https://github.com/getsentry/sentry-react-native/pull/5122)) ```js // before From f4c42ba71f38b3428c49040d320d95429a5e5aea Mon Sep 17 00:00:00 2001 From: lucas Date: Tue, 2 Sep 2025 10:49:43 +0100 Subject: [PATCH 5/5] whitespace fix --- .../src/main/java/io/sentry/react/RNSentryModuleImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java b/packages/core/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java index 8025b79aa9..8ae3f204b8 100644 --- a/packages/core/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java +++ b/packages/core/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java @@ -284,7 +284,7 @@ protected void getSentryAndroidOptions( options.setEnableNdk(rnOptions.getBoolean("enableNdk")); } if (rnOptions.hasKey("enableLogs")) { - options.getLogs().setEnabled(rnOptions.getBoolean("enableLogs")); + options.getLogs().setEnabled(rnOptions.getBoolean("enableLogs")); } if (rnOptions.hasKey("spotlight")) { if (rnOptions.getType("spotlight") == ReadableType.Boolean) {