Skip to content

Commit 7c303fc

Browse files
mydeaLms24
andcommitted
meta(changelog): Update changelog for v8.0.0-alpha.1
Co-authored-by: Lukas Stracke <[email protected]>
1 parent 652b621 commit 7c303fc

File tree

1 file changed

+310
-0
lines changed

1 file changed

+310
-0
lines changed

CHANGELOG.md

Lines changed: 310 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,316 @@
44

55
- "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott
66

7+
## 8.0.0-alpha.1
8+
9+
This is the first Alpha release of the v8 cycle, which includes a variety of breaking changes.
10+
11+
Read the [in-depth migration guide](./MIGRATION.md) to find out how to address any breaking changes in your code.
12+
13+
### Important Changes
14+
15+
**- feat(node): Make `@sentry/node` powered by OpenTelemetry (#10762)**
16+
17+
The biggest change is the switch to use OpenTelemetry under the hood in `@sentry/node`. This brings with it a variety of
18+
changes:
19+
20+
- There is now automated performance instrumentation for Express, Fastify, Nest.js and Koa. You can remove any
21+
performance and request isolation code you previously wrote manually for these frameworks.
22+
- All performance instrumention is enabled by default, and will only take effect if the instrumented package is used.
23+
You don't need to use `autoDiscoverNodePerformanceMonitoringIntegrations()` anymore.
24+
- You need to ensure to call `Sentry.init()` _before_ you import any other packages. Otherwise, the packages cannot be
25+
instrumented:
26+
27+
```js
28+
const Sentry = require('@sentry/node');
29+
Sentry.init({
30+
dsn: '...',
31+
// ... other config here
32+
});
33+
// now require other things below this!
34+
const http = require('http');
35+
const express = require('express');
36+
// ....
37+
```
38+
39+
- Currently, we only support CJS-based Node application out of the box. There is experimental ESM support, see
40+
[the instructions](./packages/node-experimental/README.md#esm-support).
41+
- `startTransaction` and `span.startChild()` are no longer supported. This is due to the underlying change to
42+
OpenTelemetry powered performance instrumentation. See
43+
[docs on the new performance APIs](./docs/v8-new-performance-apis.md) for details.
44+
45+
Related changes:
46+
47+
- feat(node-experimental): Add missing re-exports (#10679)
48+
- feat(node-experimental): Move `defaultStackParser` & `getSentryRelease` (#10722)
49+
- feat(node-experimental): Move `errorHandler` (#10728)
50+
- feat(node-experimental): Move cron code over (#10742)
51+
- feat(node-experimental): Move integrations from node (#10743)
52+
- feat(node-experimental): Properly set request & session on http requests (#10676)
53+
- feat(opentelemetry): Support `forceTransaction` in OTEL (#10807)
54+
- feat(opentelemetry): Align span options with core span options (#10761)
55+
- feat(opentelemetry): Do not capture span events as breadcrumbs (#10612)
56+
- feat(opentelemetry): Ensure DSC & attributes are correctly set (#10806)
57+
- feat(opentelemetry): Fix & align isolation scope usage in node-experimental (#10570)
58+
- feat(opentelemetry): Merge node-experimental changes into opentelemetry (#10689)
59+
- ref(node-experimental): Cleanup re-exports (#10741)
60+
- ref(node-experimental): Cleanup tracing intergations (#10730)
61+
- ref(node-experimental): Copy transport & client to node-experimental (#10720)
62+
- ref(node-experimental): Remove custom `isInitialized` (#10607)
63+
- ref(node-experimental): Remove custom hub & scope (#10616)
64+
- ref(node-experimental): Remove deprecated class integrations (#10675)
65+
- ref(node-experimental): Rename `errorHandler` to `expressErrorHandler` (#10746)
66+
- ref(node-integration-tests): Migrate to new Http integration (#10765)
67+
- ref(node): Align semantic attribute handling (#10827)
68+
69+
**- feat: Remove `@sentry/integrations` package (#10799)**
70+
71+
This package is no longer published. You can instead import these pluggable integrations directly from your SDK package
72+
(e.g. `@sentry/browser` or `@sentry/react`).
73+
74+
**- feat: Remove `@sentry/hub` package (#10783)**
75+
76+
This package is no longer published. You can instead import directly from your SDK package (e.g. `@sentry/react` or
77+
`@sentry/node`).
78+
79+
**- feat(v8): Remove @sentry/tracing (#10625)**
80+
81+
This package is no longer published. You can instead import directly from your SDK package (e.g. `@sentry/react` or
82+
`@sentry/node`).
83+
84+
**- feat: Set required node version to >=14.8.0 for all packages (#10834)**
85+
86+
The minimum required node version is now 14.8+. If you need support for older node versions, you can stay on the v7
87+
branch.
88+
89+
**- Removed class-based integrations**
90+
91+
We have removed most of the deprecated class-based integrations. Instead, you can use the functional styles:
92+
93+
```js
94+
import * as Sentry from '@sentry/browser';
95+
// v7
96+
Sentry.init({
97+
integrations: [new Sentry.BrowserTracing()],
98+
});
99+
// v8
100+
Sentry.init({
101+
integrations: [new Sentry.browserTracingIntegration()],
102+
});
103+
```
104+
105+
- ref: Remove `BrowserTracing` (#10653)
106+
- feat(v8/node): Remove LocalVariables class integration (#10558)
107+
- feat(v8/react): Delete react router exports (#10532)
108+
- feat(v8/vue): Remove all deprecated exports from vue (#10533)
109+
- feat(v8/wasm): Remove deprecated exports (#10552)
110+
111+
**- feat(v8/browser): Remove XHR transport (#10703)**
112+
113+
We have removed the XHR transport, and are instead using the fetch-based transport now by default. This means that if
114+
you are using Sentry in a browser environment without fetch, you'll need to either provide a fetch polyfill, or provide
115+
a custom transport to Sentry.
116+
117+
**- feat(sveltekit): Update `@sentry/vite-plugin` to 2.x and adjust options API (#10813)**
118+
119+
We have updated `@sentry/sveltekit` to use the latest version of `@sentry/vite-plugin`, which lead to changes in
120+
configuration options.
121+
122+
### Other Changes
123+
124+
- feat: Ensure `withActiveSpan` is exported everywhere (#10878)
125+
- feat: Allow passing `null` to `withActiveSpan` (#10717)
126+
- feat: Implement new Async Context Strategy (#10647)
127+
- feat: Remove `hub` from global, `hub.run` & hub utilities (#10718)
128+
- feat: Update default trace propagation targets logic in the browser (#10621)
129+
- feat: Ignore ResizeObserver and undefined error (#10845)
130+
- feat(browser): Export `getIsolationScope` and `getGlobalScope` (#10658)
131+
- feat(browser): Prevent initialization in browser extensions (#10844)
132+
- feat(core): Add metric summaries to spans (#10554)
133+
- feat(core): Decouple metrics aggregation from client (#10628)
134+
- feat(core): Lookup client on current scope, not hub (#10635)
135+
- feat(core): Make `setXXX` methods set on isolation scope (#10678)
136+
- feat(core): Make custom tracing methods return spans & set default op (#10633)
137+
- feat(core): Make global `addBreadcrumb` write to the isolation scope instead of current scope (#10586)
138+
- feat(core): Remove health check transaction filters (#10818)
139+
- feat(core): Streamline custom hub creation for node-experimental (#10555)
140+
- feat(core): Update `addEventProcessor` to add to isolation scope (#10606)
141+
- feat(core): Update `Sentry.addBreadcrumb` to skip hub (#10601)
142+
- feat(core): Use global `TextEncoder` and `TextDecoder` (#10701)
143+
- feat(deps): bump @sentry/cli from 2.26.0 to 2.28.0 (#10496)
144+
- feat(deps): bump @sentry/cli from 2.28.0 to 2.28.5 (#10620)
145+
- feat(deps): bump @sentry/cli from 2.28.5 to 2.28.6 (#10727)
146+
- feat(integrations): Capture error arguments as exception regardless of level in `captureConsoleIntegration` (#10744)
147+
- feat(metrics): Remove metrics method from `BaseClient` (#10789)
148+
- feat(node): Remove unnecessary URL imports (#10860)
149+
- feat(react): Drop support for React 15 (#10115)
150+
- feat(remix): Add Vite dev-mode support to Express instrumentation. (#10784)
151+
- fix: Export session API (#10711)
152+
- fix(angular-ivy): Add `exports` field to `package.json` (#10569)
153+
- fix(angular): Ensure navigations always create a transaction (#10646)
154+
- fix(core): Add lost scope tests & fix update case (#10738)
155+
- fix(core): Fix scope capturing via `captureContext` function (#10735)
156+
- fix(feedback): Replay breadcrumb for feedback events was incorrect (#10536)
157+
- fix(nextjs): Remove `webpack://` prefix more broadly from source map `sources` field (#10642)
158+
- fix(node): import `worker_threads` and fix node v14 types (#10791)
159+
- fix(node): Record local variables with falsy values, `null` and `undefined` (#10821)
160+
- fix(stacktrace): Always use `?` for anonymous function name (#10732)
161+
- fix(sveltekit): Avoid capturing Http 4xx errors on the client (#10571)
162+
- fix(sveltekit): Ensure navigations and redirects always create a new transaction (#10656)
163+
- fix(sveltekit): Properly await sourcemaps flattening (#10602)
164+
- fix(types): Improve attachment type (#10832)
165+
- fx(node): Fix anr worker check (#10719)
166+
- ref: Cleanup browser profiling integration (#10766)
167+
- ref: Collect child spans references via non-enumerable on Span object (#10715)
168+
- ref: Make scope setters on hub only write to isolation scope (#10572)
169+
- ref: Store runtime on isolation scope (#10657)
170+
- ref(astro): Put request as SDK processing metadata instead of span data (#10840)
171+
- ref(core): Always use a (default) ACS (#10644)
172+
- ref(core): Make `on` and `emit` required on client (#10603)
173+
- ref(core): Make remaining client methods required (#10605)
174+
- ref(core): Rename `Span` class to `SentrySpan` (#10687)
175+
- ref(core): Restructure hub exports (#10639)
176+
- ref(core): Skip hub in top level `captureXXX` methods (#10688)
177+
- ref(core): Allow `number` as span `traceFlag` (#10855)
178+
- ref(core): Remove `status` field from Span (#10856)
179+
- ref(remix): Make `@remix-run/router` a dependency. (#10479)
180+
- ref(replay): Use `beforeAddBreadcrumb` hook instead of scope listener (#10600)
181+
- ref(sveltekit): Hard-pin Vite plugin version (#10843)
182+
183+
### Other Deprecation Removals/Changes
184+
185+
We have also removed or updated a variety of deprecated APIs.
186+
187+
- feat(v8): Remove `extractTraceparentData` export (#10559)
188+
- feat(v8): Remove defaultIntegrations deprecated export (#10691)
189+
- feat(v8): Remove deprecated `span.isSuccess` method (#10699)
190+
- feat(v8): Remove deprecated `traceHeaders` method (#10776)
191+
- feat(v8): Remove deprecated addInstrumentationHandler (#10693)
192+
- feat(v8): Remove deprecated configureScope call (#10565)
193+
- feat(v8): Remove deprecated runWithAsyncContext API (#10780)
194+
- feat(v8): Remove deprecated spanStatusfromHttpCode export (#10563)
195+
- feat(v8): Remove deprecated trace and startActiveSpan methods (#10593)
196+
- feat(v8): Remove requestData deprecations (#10626)
197+
- feat(v8): Remove Severity enum (#10551)
198+
- feat(v8): Remove span.origin (#10753)
199+
- feat(v8): Remove span.toTraceparent method (#10698)
200+
- feat(v8): Remove usage of span.description and span.name (#10697)
201+
- feat(v8): Update eventFromUnknownInput to only use client (#10692)
202+
- feat(v8/astro): Remove deprecated exports from Astro SDK (#10611)
203+
- feat(v8/browser): Remove `_eventFromIncompleteOnError` usage (#10553)
204+
- feat(v8/browser): Remove XHR transport (#10703)
205+
- feat(v8/browser): Rename TryCatch integration to `browserApiErrorsIntegration` (#10755)
206+
- feat(v8/core): Remove deprecated setHttpStatus (#10774)
207+
- feat(v8/core): Remove deprecated updateWithContext method (#10800)
208+
- feat(v8/core): Remove getters for span.op (#10767)
209+
- feat(v8/core): Remove span.finish call (#10773)
210+
- feat(v8/core): Remove span.instrumenter and instrumenter option (#10769)
211+
- feat(v8/ember): Remove deprecated exports (#10535)
212+
- feat(v8/integrations): Remove deprecated exports (#10556)
213+
- feat(v8/node): Remove deepReadDirSync export (#10564)
214+
- feat(v8/node): Remove deprecated anr methods (#10562)
215+
- feat(v8/node): Remove getModuleFromFilename export (#10754)
216+
- feat(core): Remove deprecated props from `Span` interface (#10854)
217+
- fix(v8): Remove deprecated tracing config (#10870)
218+
- ref: Make `setupOnce` optional in integrations (#10729)
219+
- ref: Migrate transaction source from metadata to attributes (#10674)
220+
- ref: Refactor remaining `makeMain` usage (#10713)
221+
- ref(astro): Remove deprecated Replay and BrowserTracing (#10768)
222+
- feat(core): Remove deprecated `scope.applyToEvent()` method (#10842)
223+
- ref(integrations): Remove offline integration (#9456)
224+
- ref(nextjs): Remove all deprecated API (#10549)
225+
- ref: Remove `lastEventId` (#10585)
226+
- ref: Remove `reuseExisting` option for ACS (#10645)
227+
- ref: Remove `tracingOrigins` options (#10614)
228+
- ref: Remove deprecated `showReportDialog` APIs (#10609)
229+
- ref: Remove usage of span tags (#10808)
230+
- ref: Remove user segment (#10575)
231+
232+
## 7.105.0
233+
234+
### Important Changes
235+
236+
- **feat: Ensure `withActiveSpan` is exported everywhere (#10877)**
237+
238+
You can use the `withActiveSpan` method to ensure a certain span is the active span in a given callback. This can be
239+
used to create a span as a child of a specific span with the `startSpan` API methods:
240+
241+
```js
242+
const parentSpan = Sentry.startInactiveSpan({ name: 'parent' });
243+
if (parentSpan) {
244+
withActiveSpan(parentSpan, () => {
245+
// This will be a direct child of parentSpan
246+
const childSpan = Sentry.startInactiveSpan({ name: 'child' });
247+
});
248+
}
249+
```
250+
251+
## 7.104.0
252+
253+
### Important Changes
254+
255+
- **feat(performance): create Interaction standalone spans on inp events (#10709)**
256+
257+
This release adds support for the INP web vital. This is currently only supported for Saas Sentry, and product support
258+
is released with the upcoming `24.3.0` release of self-hosted.
259+
260+
To opt-in to this feature, you can use the `enableInp` option in the `browserTracingIntegration`:
261+
262+
```js
263+
Sentry.init({
264+
integrations: [
265+
Sentry.browserTracingIntegration({
266+
enableInp: true,
267+
});
268+
]
269+
})
270+
```
271+
272+
### Other Changes
273+
274+
- feat(feedback): Flush replays when feedback form opens (#10567)
275+
- feat(profiling-node): Expose `nodeProfilingIntegration` (#10864)
276+
- fix(profiling-node): Fix dependencies to point to current versions (#10861)
277+
- fix(replay): Add `errorHandler` for replayCanvas integration (#10796)
278+
279+
## 7.103.0
280+
281+
### Important Changes
282+
283+
- **feat(core): Allow to pass `forceTransaction` to `startSpan()` APIs (#10819)**
284+
285+
You can now pass `forceTransaction: true` to `startSpan()`, `startSpanManual()` and `startInactiveSpan()`. This allows
286+
you to start a span that you want to be a transaction, if possible. Under the hood, the SDK will connect this span to
287+
the running active span (if there is one), but still send the new span as a transaction to the Sentry backend, if
288+
possible, ensuring it shows up as a transaction throughout the system.
289+
290+
Please note that setting this to `true` does not _guarantee_ that this will be sent as a transaction, but that the SDK
291+
will try to do so. You can enable this flag if this span is important to you and you want to ensure that you can see it
292+
in the Sentry UI.
293+
294+
### Other Changes
295+
296+
- fix: Make breadcrumbs option optional in WinterCGFetch integration (#10792)
297+
298+
## 7.102.1
299+
300+
- fix(performance): Fixes latest route name and source for interactions not updating properly on navigation (#10702)
301+
- fix(tracing): Guard against missing `window.location` (#10659)
302+
- ref: Make span types more robust (#10660)
303+
- ref(remix): Make `@remix-run/router` a dependency (v7) (#10779)
304+
305+
## 7.102.0
306+
307+
- fix: Export session API (#10712)
308+
- fix(core): Fix scope capturing via `captureContext` function (#10737)
309+
310+
## 7.101.1
311+
312+
In version 7.101.0 the `@sentry/hub` package was missing due to a publishing issue. This release contains the package
313+
again.
314+
315+
- fix(nextjs): Remove `webpack://` prefix more broadly from source map `sources` field (#10641)
316+
7317
## 7.101.0
8318

9319
- feat: Export semantic attribute keys from SDK packages (#10637)

0 commit comments

Comments
 (0)