feat!: Require Node >=20.19.0 as minimum supported version - #22558
Conversation
Bumps the minimum supported Node.js version to 20.19.0 for v11 and removes now-dead runtime branches that guarded pre-20 Node versions. Ref #22056 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
size-limit report 📦
|
| * - Dropped the `@opentelemetry/instrumentation` base (undici reports via `diagnostics_channel`, | ||
| * so no module patching was needed) — exposed as a plain `instrumentUndici()` function that the | ||
| * integration wires up directly | ||
| * - Dropped the pre-18.19.0 `diagnostics_channel` ref-counting workaround, since the SDK |
There was a problem hiding this comment.
l: don't think this adds anything?
|
I updated the range to |
nicohrubec
left a comment
There was a problem hiding this comment.
we also have checks in our orchestrion integration to see if tracing channels are available, which seems to be only relevant for node 18 afaict? e.g. here
Shouldn't hurt to be safe but we could also think about removing these?
| }); | ||
| }); | ||
|
|
||
| describe('createCallbackList', () => { |
There was a problem hiding this comment.
q: why is this no longer relevant?
There was a problem hiding this comment.
createCallbackList was sync only and the code always chooses async by default given the node version so this is no longer needed.
Lms24
left a comment
There was a problem hiding this comment.
nice!
q: Should this be feat(node)!: ... ?
|
@nicohrubec that comment is kinda misleading because server-utils can also be used by bun, cf and deno where it's not as clear which versions need it. I opted to keep it for now, we can clean that up later if we are confident it doesn't break. |
|
@Lms24 it kinda touches every sdk package which is why it doesn't have a scope |
…e app (#22593) Removes the `react-router-7-framework-spa-node-20-18` e2e app. It existed only to test on Node 20.18, which is now below the `>=20.19.0` minimum supported version (#22558). It is otherwise a duplicate of `react-router-7-framework-spa`, so it is removed rather than kept on an unsupported Node version. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
## pnpm-workspace.yaml (default) ## Dependency Updates | Package | From | To | Type | | --- | --- | --- | --- | | `@sentry/cloudflare` | 10.75.0 | 11.0.0 | major | | `@sentry/react` | 10.75.0 | 11.0.0 | major | ## Release Notes <details> <summary><b>@<!---->sentry/cloudflare</b> (10.75.0 → 11.0.0) — 4 releases</summary> <details> <summary><b>11.0.0</b></summary> Version `11.0.0` marks a major release of the Sentry JavaScript SDKs containing breaking changes. The goal of this release is to be better compatible with OpenTelemetry, make our integrations work across Node.js, Cloudflare, Bun and Deno through run-time and build-time instrumentation, and make span streaming and more permissive data collection the default. ### How To Upgrade Please carefully read through the migration guide in the Sentry docs on how to upgrade from version 10 to version 11. Make sure to select your specific platform/framework in the top left corner: https://docs.sentry.io/platforms/javascript/migration/v10-to-v11/ A comprehensive migration guide outlining all changes can be found within the Sentry JavaScript SDK Repository: https://github.com/getsentry/sentry-javascript/blob/develop/MIGRATION.md ### Breaking Changes #### All SDKs - feat: Remove support for initialising via `--require` ([#22513](getsentry/sentry-javascript#22513)) - feat!: Rename deprecated `http.*` span attributes ([#23574](getsentry/sentry-javascript#23574)) - feat!: Rename deprecated `net.` span attributes ([#23301](getsentry/sentry-javascript#23301)) - feat!: Replace `skipOpenTelemetrySetup` with `enableOpenTelemetrySetup` ([#23199](getsentry/sentry-javascript#23199)) - feat!: Replace the deprecated `http.target` span attribute ([#23575](getsentry/sentry-javascript#23575)) - feat!: Require Node `>=20.19.0` as minimum supported version ([#22558](getsentry/sentry-javascript#22558)) - feat!: Use `handler` span op for terminal request handlers ([#22871](getsentry/sentry-javascript#22871)) - feat!: Use `middleware` span op for web-server middleware ([#22852](getsentry/sentry-javascript#22852)) - feat(frameworks)!: Use `function` op for framework functions ([#23047](https://github.com/getse …[full notes](https://github.com/getsentry/sentry-javascript/releases/tag/11.0.0) </details> <details> <summary><b>10.75.3</b></summary> - fix(v10/tanstackstart-react): Reject non-POST requests to the managed tunnel route ([#24617](getsentry/sentry-javascript#24617)) <details> <summary><strong>Internal Changes</strong></summary> - chore(v10/bundler-plugins): move traces sample rate from 1.0 to 0.3 ([#24646](getsentry/sentry-javascript#24646)) - chore(v10/publish): Tag all packages as v10 ([#24619](getsentry/sentry-javascript#24619)) </details> ## Bundle size 📦 | Path | Size | | -------------------------------------------------------------------------- | ----------------- | | @<!---->sentry/browser | 27.56 KB | | @<!---->sentry/browser - with treeshaking flags | 26.04 KB | | @<!---->sentry/browser (incl. Tracing) | 46.02 KB | | @<!---->sentry/browser (incl. Tracing + Span Streaming) | 47.77 KB | | @<!---->sentry/browser (incl. Tracing, Profiling) | 50.67 KB | | @<!---->sentry/browser (incl. Tracing, Replay) | 84.38 KB | | @<!---->sentry/browser (incl. Tracing, Replay) - with treeshaking flags | 74.28 KB | | @<!---->sentry/browser (incl. Tracing, Replay with Canvas) | 89 KB | | @<!---->sentry/browser (incl. Tracing, Replay, Feedback) | 101.33 KB | | @<!---->sentry/browser (incl. Feedback) | 44.33 KB | | @<!---->sentry/browser (incl. sendFeedback) | 32.25 KB | | @<!---->sentry/browser (incl. FeedbackAsync) | 37.27 KB | | @<!---->sentry/browser (incl. Metrics) | 28.63 KB | | @<!---->sentry/browser (incl. Logs) | 28.84 KB | | @<!---->sentry/bro …[full notes](https://github.com/getsentry/sentry-javascript/releases/tag/10.75.3) </details> <p><i>…and 2 more release(s) not shown</i></p> </details> <details> <summary><b>@<!---->sentry/react</b> (10.75.0 → 11.0.0) — 4 releases</summary> <details> <summary><b>11.0.0</b></summary> Version `11.0.0` marks a major release of the Sentry JavaScript SDKs containing breaking changes. The goal of this release is to be better compatible with OpenTelemetry, make our integrations work across Node.js, Cloudflare, Bun and Deno through run-time and build-time instrumentation, and make span streaming and more permissive data collection the default. ### How To Upgrade Please carefully read through the migration guide in the Sentry docs on how to upgrade from version 10 to version 11. Make sure to select your specific platform/framework in the top left corner: https://docs.sentry.io/platforms/javascript/migration/v10-to-v11/ A comprehensive migration guide outlining all changes can be found within the Sentry JavaScript SDK Repository: https://github.com/getsentry/sentry-javascript/blob/develop/MIGRATION.md ### Breaking Changes #### All SDKs - feat: Remove support for initialising via `--require` ([#22513](getsentry/sentry-javascript#22513)) - feat!: Rename deprecated `http.*` span attributes ([#23574](getsentry/sentry-javascript#23574)) - feat!: Rename deprecated `net.` span attributes ([#23301](getsentry/sentry-javascript#23301)) - feat!: Replace `skipOpenTelemetrySetup` with `enableOpenTelemetrySetup` ([#23199](getsentry/sentry-javascript#23199)) - feat!: Replace the deprecated `http.target` span attribute ([#23575](getsentry/sentry-javascript#23575)) - feat!: Require Node `>=20.19.0` as minimum supported version ([#22558](getsentry/sentry-javascript#22558)) - feat!: Use `handler` span op for terminal request handlers ([#22871](getsentry/sentry-javascript#22871)) - feat!: Use `middleware` span op for web-server middleware ([#22852](getsentry/sentry-javascript#22852)) - feat(frameworks)!: Use `function` op for framework functions ([#23047](https://github.com/getse …[full notes](https://github.com/getsentry/sentry-javascript/releases/tag/11.0.0) </details> <details> <summary><b>10.75.3</b></summary> - fix(v10/tanstackstart-react): Reject non-POST requests to the managed tunnel route ([#24617](getsentry/sentry-javascript#24617)) <details> <summary><strong>Internal Changes</strong></summary> - chore(v10/bundler-plugins): move traces sample rate from 1.0 to 0.3 ([#24646](getsentry/sentry-javascript#24646)) - chore(v10/publish): Tag all packages as v10 ([#24619](getsentry/sentry-javascript#24619)) </details> ## Bundle size 📦 | Path | Size | | -------------------------------------------------------------------------- | ----------------- | | @<!---->sentry/browser | 27.56 KB | | @<!---->sentry/browser - with treeshaking flags | 26.04 KB | | @<!---->sentry/browser (incl. Tracing) | 46.02 KB | | @<!---->sentry/browser (incl. Tracing + Span Streaming) | 47.77 KB | | @<!---->sentry/browser (incl. Tracing, Profiling) | 50.67 KB | | @<!---->sentry/browser (incl. Tracing, Replay) | 84.38 KB | | @<!---->sentry/browser (incl. Tracing, Replay) - with treeshaking flags | 74.28 KB | | @<!---->sentry/browser (incl. Tracing, Replay with Canvas) | 89 KB | | @<!---->sentry/browser (incl. Tracing, Replay, Feedback) | 101.33 KB | | @<!---->sentry/browser (incl. Feedback) | 44.33 KB | | @<!---->sentry/browser (incl. sendFeedback) | 32.25 KB | | @<!---->sentry/browser (incl. FeedbackAsync) | 37.27 KB | | @<!---->sentry/browser (incl. Metrics) | 28.63 KB | | @<!---->sentry/browser (incl. Logs) | 28.84 KB | | @<!---->sentry/bro …[full notes](https://github.com/getsentry/sentry-javascript/releases/tag/10.75.3) </details> <p><i>…and 2 more release(s) not shown</i></p> </details> --- *This PR was auto-generated by [catalog-update-action](https://github.com/brandhaug/catalog-update-action).* Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
What
Raise the minimum supported Node.js version to
20.19.0for v11.engines.nodeto>=20.19.0across all packages and dev-packages.diagnostics_channelrefcount fallbacks, and the redis!dc.tracingChannelfallback.ci-unit-tests.tsand refresh stale Node-18 references (issue template, workflow comment, docs, pino/spotlight docstrings).Why
v11 targets Node
20.19.0so the SDK can rely onrequire(esm)and stabletracingChannelwithout polyfills or legacy code paths. CI matrices, the migration guide, and the volta pin were already moved to Node 20; this aligns the publishedenginesfields and removes the dead code the old floor required.Kept the
>=22.12gates and the cross-runtime!dc.tracingChannelguards in@sentry/server-utils, which are still reachable on Deno/Bun/Cloudflare. The react-router server-OTel path and itsnode-20-18e2e apps are left to #22290, which removes them.Ref #22056