Skip to content

Commit 34e8ead

Browse files
committed
meta(changelog): Update changelog vor v8.0.0-alpha.1
1 parent 60f483e commit 34e8ead

File tree

3 files changed

+279
-0
lines changed

3 files changed

+279
-0
lines changed

CHANGELOG.md

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

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

docs/v8-new-performance-apis.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,29 @@ Sentry.startSpan({ name: 'outer' }, () => {
220220

221221
No span will ever be created as a child span of an inactive span.
222222

223+
### Creating a child span of a specific span
224+
225+
You can use the `withActiveSpan` helper to create a span as a child of a specific span:
226+
227+
```js
228+
Sentry.withActiveSpan(parentSpan, () => {
229+
Sentry.startSpan({ name: 'my-span' }, span => {
230+
// span will be a direct child of parentSpan
231+
});
232+
});
233+
```
234+
235+
### Creating a transaction
236+
237+
While in most cases, you shouldn't have to think about creating a span vs. a transaction (just call `startSpan()` and
238+
we'll do the appropriate thing under the hood), there may still be times where you _need_ to ensure you create a
239+
transaction (for example, if you need to see it as a transaction in the Sentry UI). For these cases, you can pass
240+
`forceTransaction: true` to the start-span APIs, e.g.:
241+
242+
```js
243+
const transaction = Sentry.startInactiveSpan({ name: 'transaction', forceTransaction: true });
244+
```
245+
223246
## Other Notable Changes
224247

225248
In addition to generally changing the performance APIs, there are also some smaller changes that this brings with it.

packages/node-experimental/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,12 @@ There is experimental support for running OpenTelemetry with ESM (`"type": "modu
109109
node --experimental-loader=@opentelemetry/instrumentation/hook.mjs ./app.js
110110
```
111111

112+
You'll need to install `@opentelemetry/instrumentation` in your app to ensure this works.
113+
112114
See [OpenTelemetry Instrumentation Docs](https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation#instrumentation-for-es-modules-in-nodejs-experimental) for details on this -
113115
but note that this is a) experimental, and b) does not work with all integrations.
114116

117+
115118
## Available (Performance) Integrations
116119

117120
* Http

0 commit comments

Comments
 (0)