Skip to content

Commit 557d846

Browse files
authored
Merge pull request #11121 from getsentry/master
[Gitflow] Merge master into develop
2 parents c045dcb + 312e52d commit 557d846

File tree

3 files changed

+168
-2
lines changed

3 files changed

+168
-2
lines changed

.craft.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ targets:
9393
includeNames: /^sentry-aws-serverless-\d.*\.tgz$/
9494
- name: npm
9595
id: '@sentry/google-cloud-serverless'
96-
includeNames: /^sentry-google-cloud-\d.*\.tgz$/
96+
includeNames: /^sentry-google-cloud-serverless-\d.*\.tgz$/
9797
- name: npm
9898
id: '@sentry/bun'
9999
includeNames: /^sentry-bun-\d.*\.tgz$/

CHANGELOG.md

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

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

7+
## 8.0.0-alpha.4
8+
9+
This is the fourth 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: Set required node version to >=14.18.0 for all packages (#10968)**
16+
17+
The minimum Node version required for the SDK is now `14.18.0`.
18+
19+
- **Serverless SDK Changes**
20+
- feat(google-cloud): Add @sentry/google-cloud package (#10993)
21+
- feat(v8): Add @sentry/aws-serverless package (#11052)
22+
- feat(v8): Rename gcp package to `@sentry/google-cloud-serverless` (#11065)
23+
24+
`@sentry/serverless` is no longer published, and is replaced by two new packages: `@sentry/google-cloud-serverless` and
25+
`@sentry/aws-serverless`. These packages are now the recommended way to instrument serverless functions. See the
26+
[migration guide](./MIGRATION.md#sentryserverless) for more details.
27+
28+
- **build(bundles): Use ES2017 for bundles (drop ES5 support) (#10911)**
29+
30+
The Browser SDK and CDN bundles now emits ES2017 compatible code and drops support for IE11. This also means that the
31+
Browser SDKs (`@sentry/browser`, `@sentry/react`, `@sentry/vue`, etc.) requires the fetch API to be available in the
32+
environment. If you need to support older browsers, please transpile your code to ES5 using babel or similar and add
33+
required polyfills.
34+
35+
New minimum supported browsers:
36+
37+
- Chrome 58
38+
- Edge 15
39+
- Safari/iOS Safari 11
40+
- Firefox 54
41+
- Opera 45
42+
- Samsung Internet 7.2
43+
44+
### Removal/Refactoring of deprecated functionality
45+
46+
- feat(browser): Remove IE parser from the default stack parsers (#11035)
47+
- feat(bun/v8): Remove all deprecations from Bun SDK (#10971)
48+
- feat(core): Remove `startTransaction` export (#11015)
49+
- feat(v8/core): Move addTracingHeadersToFetchRequest and instrumentFetchRequest to core (#10918)
50+
- feat(v8/deno): Remove deprecations from deno SDK (#10972)
51+
- feat(v8/remix): Remove remixRouterInstrumentation (#10933)
52+
- feat(v8/replay): Opt-in options for `unmask` and `unblock` (#11049)
53+
- feat(v8/tracing): Delete BrowserTracing class (#10919)
54+
- feat(v8/vercel-edge): Remove vercel-edge sdk deprecations (#10974)
55+
- feat(replay/v8): Delete deprecated `replaySession` and `errorSampleRates` (#11045)
56+
- feat(v8): Remove deprecated Replay, Feedback, ReplayCanvas exports (#10814)
57+
- ref: Remove `spanRecorder` and all related code (#10977)
58+
- ref: Remove deprecated `origin` field on span start options (#11058)
59+
- ref: Remove deprecated properties from `startSpan` options (#11054)
60+
- ref(core): Remove `startTransaction` & `finishTransaction` hooks (#11008)
61+
- ref(nextjs): Remove `sentry` field in Next.js config as a means of configuration (#10839)
62+
- ref(nextjs): Remove last internal deprecations (#11019)
63+
- ref(react): Streamline browser tracing integrations & remove old code (#11012)
64+
- ref(svelte): Remove `startChild` deprecations (#10956)
65+
- ref(sveltekit): Update trace propagation & span options (#10838)
66+
- ref(v8/angular): Remove instrumentAngularRouting and fix tests (#11021)
67+
68+
### Other Changes
69+
70+
- feat: Ensure `getRootSpan()` does not rely on transaction (#10979)
71+
- feat: Export `getSpanDescendants()` everywhere (#10924)
72+
- feat: Make ESM output valid Node ESM (#10928)
73+
- feat: Remove tags from spans & transactions (#10809)
74+
- feat(angular): Update scope `transactionName` when route is resolved (#11043)
75+
- feat(angular/v8): Change decorator naming and add `name` parameter (#11057)
76+
- feat(astro): Update `@sentry/astro` to use OpenTelemetry (#10960)
77+
- feat(browser): Remove `HttpContext` integration class (#10987)
78+
- feat(browser): Use idle span for browser tracing (#10957)
79+
- feat(build): Allow passing Sucrase options for rollup (#10747)
80+
- feat(build): Core packages into single output files (#11030)
81+
- feat(core): Allow custom tracing implementations (#11003)
82+
- feat(core): Allow metrics aggregator per client (#10949)
83+
- feat(core): Decouple `scope.transactionName` from root spans (#10991)
84+
- feat(core): Ensure trace APIs always return a span (#10942)
85+
- feat(core): Implement `startIdleSpan` (#10934)
86+
- feat(core): Move globals to `__SENTRY__` singleton (#11034)
87+
- feat(core): Move more scope globals to `__SENTRY__` (#11074)
88+
- feat(core): Undeprecate setTransactionName (#10966)
89+
- feat(core): Update `continueTrace` to be callback-only (#11044)
90+
- feat(core): Update `spanToJSON` to handle OTEL spans (#10922)
91+
- feat(deps): bump @sentry/cli from 2.29.1 to 2.30.0 (#11024)
92+
- feat(feedback): New feedback integration with screenshots (#10590)
93+
- feat(nextjs): Bump Webpack Plugin to version 2 and rework config options (#10978)
94+
- feat(nextjs): Support Hybrid Cloud DSNs with `tunnelRoute` option (#10959)
95+
- feat(node): Add `setupFastifyErrorHandler` utility (#11061)
96+
- feat(node): Rephrase wording in http integration JSDoc (#10947)
97+
- feat(opentelemetry): Do not use SentrySpan & Transaction classes (#10982)
98+
- feat(opentelemetry): Remove hub from context (#10983)
99+
- feat(opentelemetry): Use core `getRootSpan` functionality (#11004)
100+
- feat(profiling-node): Refactor deprecated methods & non-hook variant (#10984)
101+
- feat(react): Update scope's `transactionName` in React Router instrumentations (#11048)
102+
- feat(remix): Refactor to use new performance APIs (#10980)
103+
- feat(remix): Update remix SDK to be OTEL-powered (#11031)
104+
- feat(sveltekit): Export `unstable_sentryVitePluginOptions` for full Vite plugin customization (#10930)
105+
- feat(v8/bun): Update @sentry/bun to use OTEL node (#10997)
106+
- fix(ember): Ensure browser tracing is correctly lazy loaded (#11026)
107+
- fix(nextjs): Use passthrough `createReduxEnhancer` on server (#11005)
108+
- fix(node): Add missing core re-exports (#10931)
109+
- fix(node): Correct SDK name (#10961)
110+
- fix(node): Do not assert in vendored proxy code (#11011)
111+
- fix(node): Export spotlightIntegration from OTEL node (#10973)
112+
- fix(node): support undici headers as strings or arrays (#10938)
113+
- fix(opentelemetry): Fix span & sampling propagation (#11092)
114+
- fix(react): Passes the fallback function through React's createElement function (#10623)
115+
- fix(react): Set `handled` value in ErrorBoundary depending on fallback (#10989)
116+
- fix(types): Add `addScopeListener` to `Scope` interface (#10952)
117+
- fix(types): Add `AttachmentType` and use for envelope `attachment_type` property (#10946)
118+
- fix(types): Remove usage of `allowSyntheticDefaultImports` (#11073)
119+
- fix(v8/utils): Stack parser skip frames (not lines of stack string) (#10560)
120+
- ref(angular): Refactor usage of `startChild` (#11056)
121+
- ref(browser): Store browser metrics as attributes instead of tags (#10823)
122+
- ref(browser): Update `scope.transactionName` on pageload and navigation span creation (#10992)
123+
- ref(browser): Update browser metrics to avoid deprecations (#10943)
124+
- ref(browser): Update browser profiling to avoid deprecated APIs (#11007)
125+
- ref(feedback): Move UserFeedback type into feedback.ts (#11032)
126+
- ref(nextjs): Clean up browser tracing integration (#11022)
127+
- ref(node-experimental): Refactor usage of `startChild()` (#11047)
128+
- ref(node): Use new performance APIs in legacy `http` & `undici` (#11055)
129+
- ref(opentelemetry): Remove parent span map (#11014)
130+
- ref(opentelemetry): Remove span metadata handling (#11020)
131+
132+
Work in this release contributed by @MFoster and @jessezhang91. Thank you for your contributions!
133+
134+
## 8.0.0-alpha.3
135+
136+
This alpha was released in an incomplete state. We recommend skipping this release and using the `8.0.0-alpha.4` release
137+
instead.
138+
7139
## 8.0.0-alpha.2
8140

9141
This alpha release fixes a build problem that prevented 8.0.0-alpha.1 from being properly released.

MIGRATION.md

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,40 @@ Sentry.init({
219219

220220
## 3. Performance Monitoring Changes
221221

222+
- [Initializing the SDK in v8](./MIGRATION.md/#initializing-the-node-sdk)
222223
- [Performance Monitoring API](./MIGRATION.md#performance-monitoring-api)
223224
- [Performance Monitoring Integrations](./MIGRATION.md#performance-monitoring-integrations)
224225

226+
### Initializing the Node SDK
227+
228+
If you are using `@sentry/node` or `@sentry/bun`, or a package that depends on it (`@sentry/nextjs`, `@sentry/remix`,
229+
`@sentry/sveltekit`, `@sentry/`), you will need to initialize the SDK differently. The primary change is to ensure that
230+
the SDK is initialized as early as possible. See [Initializing the SDK in v8](./docs/v8-initializing.md) on what steps
231+
to follow.
232+
233+
For example with the Remix SDK, you should initialize the SDK at the top of your `entry.server.tsx` server entrypoint
234+
before you do anything else.
235+
236+
```js
237+
// first import Sentry and initialize Sentry
238+
import * as Sentry from '@sentry/remix';
239+
240+
Sentry.init({
241+
dsn: 'https://[email protected]/1337',
242+
tracesSampleRate: 1,
243+
tracePropagationTargets: ['example.org'],
244+
// Disabling to test series of envelopes deterministically.
245+
autoSessionTracking: false,
246+
});
247+
248+
// then handle everything else
249+
import type { EntryContext } from '@remix-run/node';
250+
import { RemixServer } from '@remix-run/react';
251+
import { renderToString } from 'react-dom/server';
252+
253+
export const handleError = Sentry.wrapRemixHandleError;
254+
```
255+
225256
### Performance Monitoring API
226257

227258
The APIs for Performance Monitoring in the SDK have been revamped to align with OpenTelemetry, an open standard for
@@ -290,7 +321,7 @@ As we added support for OpenTelemetry, we have expanded the automatic instrument
290321
support for frameworks like Fastify, Nest.js, and Hapi, and expanding support for databases like Prisma and MongoDB via
291322
Mongoose.
292323

293-
We now support the following integrations out of the box:
324+
We now support the following integrations out of the box without extra configuration:
294325

295326
- `httpIntegration`: Automatically instruments Node `http` and `https` standard libraries
296327
- `nativeNodeFetchIntegration`: Automatically instruments top level fetch and undici
@@ -306,6 +337,9 @@ We now support the following integrations out of the box:
306337
- `postgresIntegration`: Automatically instruments PostgreSQL
307338
- `prismaIntegration`: Automatically instruments Prisma
308339

340+
To make sure these integrations work properly you'll have to change how you
341+
[initialize the SDK](./docs/v8-initializing.md)
342+
309343
## 4. Removal of deprecated APIs
310344

311345
- [General](./MIGRATION.md#general)

0 commit comments

Comments
 (0)