|
10 | 10 |
|
11 | 11 | - "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott
|
12 | 12 |
|
| 13 | +## 8.41.0 |
| 14 | + |
| 15 | +### Important Changes |
| 16 | + |
| 17 | +- **meta(nuxt): Require minimum Nuxt v3.7.0 ([#14473](https://github.com/getsentry/sentry-javascript/pull/14473))** |
| 18 | + |
| 19 | + We formalized that the Nuxt SDK is at minimum compatible with Nuxt version 3.7.0 and above. |
| 20 | + Additionally, the SDK requires the implicit `nitropack` dependency to satisfy version `^2.6.1` and `ofetch` to satisfy `^1.3.3`. |
| 21 | + It is recommended to check your lock-files and manually upgrade these dependencies if they don't match the version ranges. |
| 22 | + |
| 23 | +### Deprecations |
| 24 | + |
| 25 | +We are deprecating a few APIs which will be removed in the next major. |
| 26 | + |
| 27 | +The following deprecations will _potentially_ affect you: |
| 28 | + |
| 29 | +- **feat(core): Update & deprecate `undefined` option handling ([#14450](https://github.com/getsentry/sentry-javascript/pull/14450))** |
| 30 | + |
| 31 | + In the next major version we will change how passing `undefined` to `tracesSampleRate` / `tracesSampler` / `enableTracing` will behave. |
| 32 | + |
| 33 | + Currently, doing the following: |
| 34 | + |
| 35 | + ```ts |
| 36 | + Sentry.init({ |
| 37 | + tracesSampleRate: undefined, |
| 38 | + }); |
| 39 | + ``` |
| 40 | + |
| 41 | + Will result in tracing being _enabled_ (although no spans will be generated) because the `tracesSampleRate` key is present in the options object. |
| 42 | + In the next major version, this behavior will be changed so that passing `undefined` (or rather having a `tracesSampleRate` key) will result in tracing being disabled, the same as not passing the option at all. |
| 43 | + If you are currently relying on `undefined` being passed, and and thus have tracing enabled, it is recommended to update your config to set e.g. `tracesSampleRate: 0` instead, which will also enable tracing in v9. |
| 44 | + |
| 45 | + The same applies to `tracesSampler` and `enableTracing`. |
| 46 | + |
| 47 | +- **feat(core): Log warnings when returning `null` in `beforeSendSpan` ([#14433](https://github.com/getsentry/sentry-javascript/pull/14433))** |
| 48 | + |
| 49 | + Currently, the `beforeSendSpan` option in `Sentry.init()` allows you to drop individual spans from a trace by returning `null` from the hook. |
| 50 | + Since this API lends itself to creating "gaps" inside traces, we decided to change how this API will work in the next major version. |
| 51 | + |
| 52 | + With the next major version the `beforeSendSpan` API can only be used to mutate spans, but no longer to drop them. |
| 53 | + With this release the SDK will warn you if you are using this API to drop spans. |
| 54 | + Instead, it is recommended to configure instrumentation (i.e. integrations) directly to control what spans are created. |
| 55 | + |
| 56 | + Additionally, with the next major version, root spans will also be passed to `beforeSendSpan`. |
| 57 | + |
| 58 | +- **feat(utils): Deprecate `@sentry/utils` ([#14431](https://github.com/getsentry/sentry-javascript/pull/14431))** |
| 59 | + |
| 60 | + With the next major version the `@sentry/utils` package will be merged into the `@sentry/core` package. |
| 61 | + It is therefore no longer recommended to use the `@sentry/utils` package. |
| 62 | + |
| 63 | +- **feat(vue): Deprecate configuring Vue tracing options anywhere else other than through the `vueIntegration`'s `tracingOptions` option ([#14385](https://github.com/getsentry/sentry-javascript/pull/14385))** |
| 64 | + |
| 65 | + Currently it is possible to configure tracing options in various places in the Sentry Vue SDK: |
| 66 | + |
| 67 | + - In `Sentry.init()` |
| 68 | + - Inside `tracingOptions` in `Sentry.init()` |
| 69 | + - In the `vueIntegration()` options |
| 70 | + - Inside `tracingOptions` in the `vueIntegration()` options |
| 71 | + |
| 72 | + Because this is a bit messy and confusing to document, the only recommended way to configure tracing options going forward is through the `tracingOptions` in the `vueIntegration()`. |
| 73 | + The other means of configuration will be removed in the next major version of the SDK. |
| 74 | + |
| 75 | +- **feat: Deprecate `registerEsmLoaderHooks.include` and `registerEsmLoaderHooks.exclude` ([#14486](https://github.com/getsentry/sentry-javascript/pull/14486))** |
| 76 | + |
| 77 | + Currently it is possible to define `registerEsmLoaderHooks.include` and `registerEsmLoaderHooks.exclude` options in `Sentry.init()` to only apply ESM loader hooks to a subset of modules. |
| 78 | + This API served as an escape hatch in case certain modules are incompatible with ESM loader hooks. |
| 79 | + |
| 80 | + Since this API was introduced, a way was found to only wrap modules that there exists instrumentation for (meaning a vetted list). |
| 81 | + To only wrap modules that have instrumentation, it is recommended to instead set `registerEsmLoaderHooks.onlyIncludeInstrumentedModules` to `true`. |
| 82 | + |
| 83 | + Note that `onlyIncludeInstrumentedModules: true` will become the default behavior in the next major version and the `registerEsmLoaderHooks` will no longer accept fine-grained options. |
| 84 | + |
| 85 | +The following deprecations will _most likely_ not affect you unless you are building an SDK yourself: |
| 86 | + |
| 87 | +- feat(core): Deprecate `arrayify` ([#14405](https://github.com/getsentry/sentry-javascript/pull/14405)) |
| 88 | +- feat(core): Deprecate `flatten` ([#14454](https://github.com/getsentry/sentry-javascript/pull/14454)) |
| 89 | +- feat(core): Deprecate `urlEncode` ([#14406](https://github.com/getsentry/sentry-javascript/pull/14406)) |
| 90 | +- feat(core): Deprecate `validSeverityLevels` ([#14407](https://github.com/getsentry/sentry-javascript/pull/14407)) |
| 91 | +- feat(core/utils): Deprecate `getNumberOfUrlSegments` ([#14458](https://github.com/getsentry/sentry-javascript/pull/14458)) |
| 92 | +- feat(utils): Deprecate `memoBuilder`, `BAGGAGE_HEADER_NAME`, and `makeFifoCache` ([#14434](https://github.com/getsentry/sentry-javascript/pull/14434)) |
| 93 | +- feat(utils/core): Deprecate `addRequestDataToEvent` and `extractRequestData` ([#14430](https://github.com/getsentry/sentry-javascript/pull/14430)) |
| 94 | + |
| 95 | +### Other Changes |
| 96 | + |
| 97 | +- feat: Streamline `sentry-trace`, `baggage` and DSC handling ([#14364](https://github.com/getsentry/sentry-javascript/pull/14364)) |
| 98 | +- feat(core): Further optimize debug ID parsing ([#14365](https://github.com/getsentry/sentry-javascript/pull/14365)) |
| 99 | +- feat(node): Add `openTelemetryInstrumentations` option ([#14484](https://github.com/getsentry/sentry-javascript/pull/14484)) |
| 100 | +- feat(nuxt): Add filter for not found source maps (devtools) ([#14437](https://github.com/getsentry/sentry-javascript/pull/14437)) |
| 101 | +- feat(nuxt): Only delete public source maps ([#14438](https://github.com/getsentry/sentry-javascript/pull/14438)) |
| 102 | +- fix(nextjs): Don't report `NEXT_REDIRECT` from browser ([#14440](https://github.com/getsentry/sentry-javascript/pull/14440)) |
| 103 | +- perf(opentelemetry): Bucket spans for cleanup ([#14154](https://github.com/getsentry/sentry-javascript/pull/14154)) |
| 104 | + |
| 105 | +Work in this release was contributed by @NEKOYASAN and @fmorett. Thank you for your contributions! |
| 106 | + |
13 | 107 | ## 8.40.0
|
14 | 108 |
|
15 | 109 | ### Important Changes
|
|
0 commit comments