From 0aedb54b7c776c7f9d7cbe047348f034d5170dff Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Thu, 7 May 2026 13:09:00 +0200 Subject: [PATCH 01/16] ci: Ensure we test against node 26 --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index daaf5effc2a0..4f19d81a92e3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -554,7 +554,7 @@ jobs: strategy: fail-fast: false matrix: - node: [18, 20, 22, 24] + node: [18, 20, 22, 24, 26] steps: - name: Check out base commit (${{ github.event.pull_request.base.sha }}) uses: actions/checkout@v6 @@ -810,7 +810,7 @@ jobs: strategy: fail-fast: false matrix: - node: [18, 20, 22, 24] + node: [18, 20, 22, 24, 26] typescript: - false include: @@ -851,7 +851,7 @@ jobs: strategy: fail-fast: false matrix: - node: [18, 20, 22, 24] + node: [18, 20, 22, 24, 26] typescript: - false include: @@ -939,7 +939,7 @@ jobs: strategy: fail-fast: false matrix: - node: [18, 20, 22, 24] + node: [18, 20, 22, 24, 26] steps: - name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }}) uses: actions/checkout@v6 From c92d5552dc5af115ab287d37ddd70f2b3e89dde3 Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Fri, 8 May 2026 09:40:29 +0200 Subject: [PATCH 02/16] bump supported versions in profiling-node --- packages/profiling-node/src/integration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/profiling-node/src/integration.ts b/packages/profiling-node/src/integration.ts index 4cb51ac540b5..d5d3580a30f6 100644 --- a/packages/profiling-node/src/integration.ts +++ b/packages/profiling-node/src/integration.ts @@ -639,7 +639,7 @@ class ContinuousProfiler { /** Exported only for tests. */ export const _nodeProfilingIntegration = ((): ProfilingIntegration => { - if (![16, 18, 20, 22, 24].includes(NODE_MAJOR)) { + if (![16, 18, 20, 22, 24, 26].includes(NODE_MAJOR)) { consoleSandbox(() => { // eslint-disable-next-line no-console console.warn( From 4616643b3bdc82dc5439e2d69c0558d5705d7f5b Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Fri, 8 May 2026 10:34:05 +0200 Subject: [PATCH 03/16] fix tests for node 26 --- .../suites/child-process/test.ts | 2 ++ .../requests/fetch-breadcrumbs/test.ts | 2 ++ .../fetch-no-trace-propagation/test.ts | 2 ++ .../tracing/requests/http-breadcrumbs/test.ts | 2 ++ .../http-no-trace-propagation/test.ts | 2 ++ .../requests/http-no-tracing-no-spans/test.ts | 2 ++ .../tracing/requests/http-no-tracing/test.ts | 2 ++ .../utils/node-deprecation-breadcrumbs.ts | 25 +++++++++++++++++++ .../suites/child-process/test.ts | 2 ++ .../requests/fetch-breadcrumbs/test.ts | 2 ++ .../fetch-no-trace-propagation/test.ts | 2 ++ .../tracing/requests/http-breadcrumbs/test.ts | 2 ++ .../http-no-trace-propagation/test.ts | 2 ++ .../requests/http-no-tracing-no-spans/test.ts | 2 ++ .../tracing/requests/http-no-tracing/test.ts | 2 ++ .../utils/node-deprecation-breadcrumbs.ts | 25 +++++++++++++++++++ 16 files changed, 78 insertions(+) create mode 100644 dev-packages/node-core-integration-tests/utils/node-deprecation-breadcrumbs.ts create mode 100644 dev-packages/node-integration-tests/utils/node-deprecation-breadcrumbs.ts diff --git a/dev-packages/node-core-integration-tests/suites/child-process/test.ts b/dev-packages/node-core-integration-tests/suites/child-process/test.ts index 1d04772c351e..5fb47d181d29 100644 --- a/dev-packages/node-core-integration-tests/suites/child-process/test.ts +++ b/dev-packages/node-core-integration-tests/suites/child-process/test.ts @@ -2,6 +2,7 @@ import type { Event } from '@sentry/core'; import { afterAll, describe, expect, test } from 'vitest'; import { conditionalTest } from '../../utils'; import { cleanupChildProcesses, createRunner } from '../../utils/runner'; +import { getNodeDeprecationBreadcrumbs } from '../../utils/node-deprecation-breadcrumbs'; const WORKER_EVENT: Event = { exception: { @@ -31,6 +32,7 @@ const CHILD_EVENT: Event = { ], }, breadcrumbs: [ + ...getNodeDeprecationBreadcrumbs(), { category: 'child_process', message: "Child process exited with code '1'", diff --git a/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts b/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts index 531d66b3f2e6..1bade3c5d8c2 100644 --- a/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts +++ b/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts @@ -2,6 +2,7 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { conditionalTest } from '../../../../utils'; import { createEsmAndCjsTests } from '../../../../utils/runner'; +import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing fetch', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -14,6 +15,7 @@ describe('outgoing fetch', () => { .expect({ event: { breadcrumbs: [ + ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts b/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts index dad27aa5dc17..50405f017115 100644 --- a/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts +++ b/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts @@ -1,6 +1,7 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; +import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing fetch with tracePropagation disabled', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -23,6 +24,7 @@ describe('outgoing fetch with tracePropagation disabled', () => { .expect({ event: { breadcrumbs: [ + ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts index 96892353d2dd..94fc8704deca 100644 --- a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts +++ b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts @@ -1,6 +1,7 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; +import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -12,6 +13,7 @@ describe('outgoing http', () => { .expect({ event: { breadcrumbs: [ + ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts index 5ba5c63da74f..75814b1e7961 100644 --- a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts +++ b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts @@ -1,6 +1,7 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; +import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http with tracePropagation disabled', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -23,6 +24,7 @@ describe('outgoing http with tracePropagation disabled', () => { .expect({ event: { breadcrumbs: [ + ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts index a1a9ce5d51dc..cfc1052ba73d 100644 --- a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts +++ b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts @@ -1,6 +1,7 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; +import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http requests with tracing & spans disabled', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -41,6 +42,7 @@ describe('outgoing http requests with tracing & spans disabled', () => { ], }, breadcrumbs: [ + ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing/test.ts b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing/test.ts index 7d863d27ce6e..611080474aa1 100644 --- a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing/test.ts +++ b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing/test.ts @@ -2,6 +2,7 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { conditionalTest } from '../../../../utils'; import { createEsmAndCjsTests } from '../../../../utils/runner'; +import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -43,6 +44,7 @@ describe('outgoing http', () => { ], }, breadcrumbs: [ + ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-core-integration-tests/utils/node-deprecation-breadcrumbs.ts b/dev-packages/node-core-integration-tests/utils/node-deprecation-breadcrumbs.ts new file mode 100644 index 000000000000..c0da2b97d42e --- /dev/null +++ b/dev-packages/node-core-integration-tests/utils/node-deprecation-breadcrumbs.ts @@ -0,0 +1,25 @@ +import type { Breadcrumb } from '@sentry/core'; +import { NODE_VERSION } from '@sentry/node-core'; +import { expect } from 'vitest'; + +export function getNodeDeprecationBreadcrumbs(): Breadcrumb[] { + const message = `(node:4075) [DEP0205] DeprecationWarning: \`module.register()\` is deprecated. Use \`module.registerHooks()\` instead. + (Use \`node --trace-deprecation ...\` to show where the warning was created)`; + + if (NODE_VERSION.major < 26) { + return []; + } + + return [ + { + category: 'console', + data: { + arguments: [message], + logger: 'console', + }, + level: 'error', + message: message, + timestamp: expect.any(Number), + }, + ]; +} diff --git a/dev-packages/node-integration-tests/suites/child-process/test.ts b/dev-packages/node-integration-tests/suites/child-process/test.ts index 1d04772c351e..5fb47d181d29 100644 --- a/dev-packages/node-integration-tests/suites/child-process/test.ts +++ b/dev-packages/node-integration-tests/suites/child-process/test.ts @@ -2,6 +2,7 @@ import type { Event } from '@sentry/core'; import { afterAll, describe, expect, test } from 'vitest'; import { conditionalTest } from '../../utils'; import { cleanupChildProcesses, createRunner } from '../../utils/runner'; +import { getNodeDeprecationBreadcrumbs } from '../../utils/node-deprecation-breadcrumbs'; const WORKER_EVENT: Event = { exception: { @@ -31,6 +32,7 @@ const CHILD_EVENT: Event = { ], }, breadcrumbs: [ + ...getNodeDeprecationBreadcrumbs(), { category: 'child_process', message: "Child process exited with code '1'", diff --git a/dev-packages/node-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts b/dev-packages/node-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts index 2691d10294a5..908902d9060d 100644 --- a/dev-packages/node-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts @@ -1,6 +1,7 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; +import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing fetch', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -12,6 +13,7 @@ describe('outgoing fetch', () => { .expect({ event: { breadcrumbs: [ + ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts b/dev-packages/node-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts index dad27aa5dc17..50405f017115 100644 --- a/dev-packages/node-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts @@ -1,6 +1,7 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; +import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing fetch with tracePropagation disabled', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -23,6 +24,7 @@ describe('outgoing fetch with tracePropagation disabled', () => { .expect({ event: { breadcrumbs: [ + ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts b/dev-packages/node-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts index 96892353d2dd..94fc8704deca 100644 --- a/dev-packages/node-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts @@ -1,6 +1,7 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; +import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -12,6 +13,7 @@ describe('outgoing http', () => { .expect({ event: { breadcrumbs: [ + ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts b/dev-packages/node-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts index 5ba5c63da74f..75814b1e7961 100644 --- a/dev-packages/node-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts @@ -1,6 +1,7 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; +import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http with tracePropagation disabled', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -23,6 +24,7 @@ describe('outgoing http with tracePropagation disabled', () => { .expect({ event: { breadcrumbs: [ + ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts b/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts index a1a9ce5d51dc..cfc1052ba73d 100644 --- a/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts @@ -1,6 +1,7 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; +import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http requests with tracing & spans disabled', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -41,6 +42,7 @@ describe('outgoing http requests with tracing & spans disabled', () => { ], }, breadcrumbs: [ + ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing/test.ts b/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing/test.ts index 4f6593f82e34..211439c17bfb 100644 --- a/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing/test.ts @@ -1,6 +1,7 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; +import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -41,6 +42,7 @@ describe('outgoing http', () => { ], }, breadcrumbs: [ + ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-integration-tests/utils/node-deprecation-breadcrumbs.ts b/dev-packages/node-integration-tests/utils/node-deprecation-breadcrumbs.ts new file mode 100644 index 000000000000..a9f73952cdbd --- /dev/null +++ b/dev-packages/node-integration-tests/utils/node-deprecation-breadcrumbs.ts @@ -0,0 +1,25 @@ +import type { Breadcrumb } from '@sentry/core'; +import { NODE_VERSION } from '.'; +import { expect } from 'vitest'; + +export function getNodeDeprecationBreadcrumbs(): Breadcrumb[] { + const message = `(node:4075) [DEP0205] DeprecationWarning: \`module.register()\` is deprecated. Use \`module.registerHooks()\` instead. + (Use \`node --trace-deprecation ...\` to show where the warning was created)`; + + if (NODE_VERSION < 26) { + return []; + } + + return [ + { + category: 'console', + data: { + arguments: [message], + logger: 'console', + }, + level: 'error', + message: message, + timestamp: expect.any(Number), + }, + ]; +} From 376aed9e865b4844746daf8403c46993e7158806 Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Fri, 8 May 2026 11:17:24 +0200 Subject: [PATCH 04/16] Revert "fix tests for node 26" This reverts commit b82c94199d0b46b16413c3aa0f45641d052fedff. --- .../suites/child-process/test.ts | 2 -- .../requests/fetch-breadcrumbs/test.ts | 2 -- .../fetch-no-trace-propagation/test.ts | 2 -- .../tracing/requests/http-breadcrumbs/test.ts | 2 -- .../http-no-trace-propagation/test.ts | 2 -- .../requests/http-no-tracing-no-spans/test.ts | 2 -- .../tracing/requests/http-no-tracing/test.ts | 2 -- .../utils/node-deprecation-breadcrumbs.ts | 25 ------------------- .../suites/child-process/test.ts | 2 -- .../requests/fetch-breadcrumbs/test.ts | 2 -- .../fetch-no-trace-propagation/test.ts | 2 -- .../tracing/requests/http-breadcrumbs/test.ts | 2 -- .../http-no-trace-propagation/test.ts | 2 -- .../requests/http-no-tracing-no-spans/test.ts | 2 -- .../tracing/requests/http-no-tracing/test.ts | 2 -- .../utils/node-deprecation-breadcrumbs.ts | 25 ------------------- 16 files changed, 78 deletions(-) delete mode 100644 dev-packages/node-core-integration-tests/utils/node-deprecation-breadcrumbs.ts delete mode 100644 dev-packages/node-integration-tests/utils/node-deprecation-breadcrumbs.ts diff --git a/dev-packages/node-core-integration-tests/suites/child-process/test.ts b/dev-packages/node-core-integration-tests/suites/child-process/test.ts index 5fb47d181d29..1d04772c351e 100644 --- a/dev-packages/node-core-integration-tests/suites/child-process/test.ts +++ b/dev-packages/node-core-integration-tests/suites/child-process/test.ts @@ -2,7 +2,6 @@ import type { Event } from '@sentry/core'; import { afterAll, describe, expect, test } from 'vitest'; import { conditionalTest } from '../../utils'; import { cleanupChildProcesses, createRunner } from '../../utils/runner'; -import { getNodeDeprecationBreadcrumbs } from '../../utils/node-deprecation-breadcrumbs'; const WORKER_EVENT: Event = { exception: { @@ -32,7 +31,6 @@ const CHILD_EVENT: Event = { ], }, breadcrumbs: [ - ...getNodeDeprecationBreadcrumbs(), { category: 'child_process', message: "Child process exited with code '1'", diff --git a/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts b/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts index 1bade3c5d8c2..531d66b3f2e6 100644 --- a/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts +++ b/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts @@ -2,7 +2,6 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { conditionalTest } from '../../../../utils'; import { createEsmAndCjsTests } from '../../../../utils/runner'; -import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing fetch', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -15,7 +14,6 @@ describe('outgoing fetch', () => { .expect({ event: { breadcrumbs: [ - ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts b/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts index 50405f017115..dad27aa5dc17 100644 --- a/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts +++ b/dev-packages/node-core-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts @@ -1,7 +1,6 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; -import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing fetch with tracePropagation disabled', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -24,7 +23,6 @@ describe('outgoing fetch with tracePropagation disabled', () => { .expect({ event: { breadcrumbs: [ - ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts index 94fc8704deca..96892353d2dd 100644 --- a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts +++ b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts @@ -1,7 +1,6 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; -import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -13,7 +12,6 @@ describe('outgoing http', () => { .expect({ event: { breadcrumbs: [ - ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts index 75814b1e7961..5ba5c63da74f 100644 --- a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts +++ b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts @@ -1,7 +1,6 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; -import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http with tracePropagation disabled', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -24,7 +23,6 @@ describe('outgoing http with tracePropagation disabled', () => { .expect({ event: { breadcrumbs: [ - ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts index cfc1052ba73d..a1a9ce5d51dc 100644 --- a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts +++ b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts @@ -1,7 +1,6 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; -import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http requests with tracing & spans disabled', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -42,7 +41,6 @@ describe('outgoing http requests with tracing & spans disabled', () => { ], }, breadcrumbs: [ - ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing/test.ts b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing/test.ts index 611080474aa1..7d863d27ce6e 100644 --- a/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing/test.ts +++ b/dev-packages/node-core-integration-tests/suites/tracing/requests/http-no-tracing/test.ts @@ -2,7 +2,6 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { conditionalTest } from '../../../../utils'; import { createEsmAndCjsTests } from '../../../../utils/runner'; -import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -44,7 +43,6 @@ describe('outgoing http', () => { ], }, breadcrumbs: [ - ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-core-integration-tests/utils/node-deprecation-breadcrumbs.ts b/dev-packages/node-core-integration-tests/utils/node-deprecation-breadcrumbs.ts deleted file mode 100644 index c0da2b97d42e..000000000000 --- a/dev-packages/node-core-integration-tests/utils/node-deprecation-breadcrumbs.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { Breadcrumb } from '@sentry/core'; -import { NODE_VERSION } from '@sentry/node-core'; -import { expect } from 'vitest'; - -export function getNodeDeprecationBreadcrumbs(): Breadcrumb[] { - const message = `(node:4075) [DEP0205] DeprecationWarning: \`module.register()\` is deprecated. Use \`module.registerHooks()\` instead. - (Use \`node --trace-deprecation ...\` to show where the warning was created)`; - - if (NODE_VERSION.major < 26) { - return []; - } - - return [ - { - category: 'console', - data: { - arguments: [message], - logger: 'console', - }, - level: 'error', - message: message, - timestamp: expect.any(Number), - }, - ]; -} diff --git a/dev-packages/node-integration-tests/suites/child-process/test.ts b/dev-packages/node-integration-tests/suites/child-process/test.ts index 5fb47d181d29..1d04772c351e 100644 --- a/dev-packages/node-integration-tests/suites/child-process/test.ts +++ b/dev-packages/node-integration-tests/suites/child-process/test.ts @@ -2,7 +2,6 @@ import type { Event } from '@sentry/core'; import { afterAll, describe, expect, test } from 'vitest'; import { conditionalTest } from '../../utils'; import { cleanupChildProcesses, createRunner } from '../../utils/runner'; -import { getNodeDeprecationBreadcrumbs } from '../../utils/node-deprecation-breadcrumbs'; const WORKER_EVENT: Event = { exception: { @@ -32,7 +31,6 @@ const CHILD_EVENT: Event = { ], }, breadcrumbs: [ - ...getNodeDeprecationBreadcrumbs(), { category: 'child_process', message: "Child process exited with code '1'", diff --git a/dev-packages/node-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts b/dev-packages/node-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts index 908902d9060d..2691d10294a5 100644 --- a/dev-packages/node-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/requests/fetch-breadcrumbs/test.ts @@ -1,7 +1,6 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; -import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing fetch', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -13,7 +12,6 @@ describe('outgoing fetch', () => { .expect({ event: { breadcrumbs: [ - ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts b/dev-packages/node-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts index 50405f017115..dad27aa5dc17 100644 --- a/dev-packages/node-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/requests/fetch-no-trace-propagation/test.ts @@ -1,7 +1,6 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; -import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing fetch with tracePropagation disabled', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -24,7 +23,6 @@ describe('outgoing fetch with tracePropagation disabled', () => { .expect({ event: { breadcrumbs: [ - ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts b/dev-packages/node-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts index 94fc8704deca..96892353d2dd 100644 --- a/dev-packages/node-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/requests/http-breadcrumbs/test.ts @@ -1,7 +1,6 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; -import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -13,7 +12,6 @@ describe('outgoing http', () => { .expect({ event: { breadcrumbs: [ - ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts b/dev-packages/node-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts index 75814b1e7961..5ba5c63da74f 100644 --- a/dev-packages/node-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/requests/http-no-trace-propagation/test.ts @@ -1,7 +1,6 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; -import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http with tracePropagation disabled', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -24,7 +23,6 @@ describe('outgoing http with tracePropagation disabled', () => { .expect({ event: { breadcrumbs: [ - ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts b/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts index cfc1052ba73d..a1a9ce5d51dc 100644 --- a/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing-no-spans/test.ts @@ -1,7 +1,6 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; -import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http requests with tracing & spans disabled', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -42,7 +41,6 @@ describe('outgoing http requests with tracing & spans disabled', () => { ], }, breadcrumbs: [ - ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing/test.ts b/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing/test.ts index 211439c17bfb..4f6593f82e34 100644 --- a/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/requests/http-no-tracing/test.ts @@ -1,7 +1,6 @@ import { createTestServer } from '@sentry-internal/test-utils'; import { describe, expect } from 'vitest'; import { createEsmAndCjsTests } from '../../../../utils/runner'; -import { getNodeDeprecationBreadcrumbs } from '../../../../utils/node-deprecation-breadcrumbs'; describe('outgoing http', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { @@ -42,7 +41,6 @@ describe('outgoing http', () => { ], }, breadcrumbs: [ - ...getNodeDeprecationBreadcrumbs(), { message: 'manual breadcrumb', timestamp: expect.any(Number), diff --git a/dev-packages/node-integration-tests/utils/node-deprecation-breadcrumbs.ts b/dev-packages/node-integration-tests/utils/node-deprecation-breadcrumbs.ts deleted file mode 100644 index a9f73952cdbd..000000000000 --- a/dev-packages/node-integration-tests/utils/node-deprecation-breadcrumbs.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { Breadcrumb } from '@sentry/core'; -import { NODE_VERSION } from '.'; -import { expect } from 'vitest'; - -export function getNodeDeprecationBreadcrumbs(): Breadcrumb[] { - const message = `(node:4075) [DEP0205] DeprecationWarning: \`module.register()\` is deprecated. Use \`module.registerHooks()\` instead. - (Use \`node --trace-deprecation ...\` to show where the warning was created)`; - - if (NODE_VERSION < 26) { - return []; - } - - return [ - { - category: 'console', - data: { - arguments: [message], - logger: 'console', - }, - level: 'error', - message: message, - timestamp: expect.any(Number), - }, - ]; -} From 3f508b4479c21946af44ec4d7e9001450f259b48 Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Mon, 11 May 2026 13:12:22 +0200 Subject: [PATCH 05/16] add deprecation filter by default --- packages/node-core/src/integrations/console.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/node-core/src/integrations/console.ts b/packages/node-core/src/integrations/console.ts index d85e00e6b9d7..fee653bcf636 100644 --- a/packages/node-core/src/integrations/console.ts +++ b/packages/node-core/src/integrations/console.ts @@ -39,7 +39,14 @@ export const consoleIntegration = defineIntegration((options: Partial Date: Mon, 11 May 2026 13:30:13 +0200 Subject: [PATCH 06/16] fix profiling pruner script --- packages/profiling-node/scripts/prune-profiler-binaries.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/profiling-node/scripts/prune-profiler-binaries.js b/packages/profiling-node/scripts/prune-profiler-binaries.js index 11e8dc7f05f4..fc45fbcbe35a 100755 --- a/packages/profiling-node/scripts/prune-profiler-binaries.js +++ b/packages/profiling-node/scripts/prune-profiler-binaries.js @@ -68,6 +68,7 @@ const NODE_TO_ABI = { 20: '115', 22: '127', 24: '137', + 26: '147', }; if (NODE) { @@ -83,6 +84,8 @@ if (NODE) { NODE = NODE_TO_ABI['22']; } else if (NODE.startsWith('24')) { NODE = NODE_TO_ABI['24']; + } else if (NODE.startsWith('26')) { + NODE = NODE_TO_ABI['26']; } else { ARGV_ERRORS.push( `❌ Sentry: Invalid node version passed as argument, please make sure --target_node is a valid major node version. Supported versions are ${Object.keys( From df6b7c039002a884bde34b5a0e701117bfa16bab Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Mon, 11 May 2026 13:31:38 +0200 Subject: [PATCH 07/16] fix filter --- packages/node-core/src/integrations/console.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/node-core/src/integrations/console.ts b/packages/node-core/src/integrations/console.ts index fee653bcf636..3a95598b45a2 100644 --- a/packages/node-core/src/integrations/console.ts +++ b/packages/node-core/src/integrations/console.ts @@ -44,7 +44,7 @@ export const consoleIntegration = defineIntegration((options: Partial Date: Mon, 11 May 2026 14:08:53 +0200 Subject: [PATCH 08/16] properly filter deprecation warnings --- packages/node-core/src/integrations/console.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/node-core/src/integrations/console.ts b/packages/node-core/src/integrations/console.ts index 3a95598b45a2..86591871999e 100644 --- a/packages/node-core/src/integrations/console.ts +++ b/packages/node-core/src/integrations/console.ts @@ -44,7 +44,7 @@ export const consoleIntegration = defineIntegration((options: Partial Date: Mon, 11 May 2026 13:39:45 +0200 Subject: [PATCH 09/16] skip pg-native on node 26 fixes for pg-native --- .../postgres/pg-native/docker-compose.yml | 19 ++++++ .../postgres/{ => pg-native}/package.json | 0 .../scenario.js} | 0 .../suites/tracing/postgres/pg-native/test.ts | 63 +++++++++++++++++++ .../suites/tracing/postgres/test.ts | 56 ----------------- 5 files changed, 82 insertions(+), 56 deletions(-) create mode 100644 dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/docker-compose.yml rename dev-packages/node-integration-tests/suites/tracing/postgres/{ => pg-native}/package.json (100%) rename dev-packages/node-integration-tests/suites/tracing/postgres/{scenario-native.js => pg-native/scenario.js} (100%) create mode 100644 dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/test.ts diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/docker-compose.yml b/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/docker-compose.yml new file mode 100644 index 000000000000..fd62e06d57b2 --- /dev/null +++ b/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/docker-compose.yml @@ -0,0 +1,19 @@ +version: '3.9' + +services: + db: + image: postgres:13 + restart: always + container_name: integration-tests-postgres-pg-native + ports: + - '5494:5432' + environment: + POSTGRES_USER: test + POSTGRES_PASSWORD: test + POSTGRES_DB: tests + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U test -d tests'] + interval: 2s + timeout: 3s + retries: 30 + start_period: 5s diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres/package.json b/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/package.json similarity index 100% rename from dev-packages/node-integration-tests/suites/tracing/postgres/package.json rename to dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/package.json diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres/scenario-native.js b/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/scenario.js similarity index 100% rename from dev-packages/node-integration-tests/suites/tracing/postgres/scenario-native.js rename to dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/scenario.js diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/test.ts b/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/test.ts new file mode 100644 index 000000000000..41414bfbc966 --- /dev/null +++ b/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/test.ts @@ -0,0 +1,63 @@ +import { describe, expect, test } from 'vitest'; +import { createRunner } from '../../../../utils/runner'; +import { conditionalTest } from '../../../../utils'; + +describe('postgres pg-native auto instrumentation', () => { + // TODO: pg-native is currently not supported on Node 26+ + // See e.g. https://github.com/brianc/node-postgres/pull/3667 + conditionalTest({ max: 25 })('pg-native', () => { + test('should auto-instrument `pg-native` package', { timeout: 90_000 }, async () => { + const EXPECTED_TRANSACTION = { + transaction: 'Test Transaction', + spans: expect.arrayContaining([ + expect.objectContaining({ + data: expect.objectContaining({ + 'db.system': 'postgresql', + 'db.name': 'tests', + 'sentry.origin': 'manual', + 'sentry.op': 'db', + }), + description: 'pg.connect', + op: 'db', + status: 'ok', + }), + expect.objectContaining({ + data: expect.objectContaining({ + 'db.system': 'postgresql', + 'db.name': 'tests', + 'db.statement': 'INSERT INTO "NativeUser" ("email", "name") VALUES ($1, $2)', + 'sentry.origin': 'auto.db.otel.postgres', + 'sentry.op': 'db', + }), + description: 'INSERT INTO "NativeUser" ("email", "name") VALUES ($1, $2)', + op: 'db', + status: 'ok', + origin: 'auto.db.otel.postgres', + }), + expect.objectContaining({ + data: expect.objectContaining({ + 'db.system': 'postgresql', + 'db.name': 'tests', + 'db.statement': 'SELECT * FROM "NativeUser"', + 'sentry.origin': 'auto.db.otel.postgres', + 'sentry.op': 'db', + }), + description: 'SELECT * FROM "NativeUser"', + op: 'db', + status: 'ok', + origin: 'auto.db.otel.postgres', + }), + ]), + }; + + await createRunner(__dirname, 'scenario.js') + .withDockerCompose({ + workingDirectory: [__dirname], + setupCommand: 'yarn', + }) + .expect({ transaction: EXPECTED_TRANSACTION }) + .start() + .completed(); + }); + }); +}); diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts b/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts index 98c42976498a..e452daf33eec 100644 --- a/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts @@ -49,7 +49,6 @@ describe('postgres auto instrumentation', () => { await createRunner(__dirname, 'scenario.js') .withDockerCompose({ workingDirectory: [__dirname], - setupCommand: 'yarn', }) .expect({ transaction: EXPECTED_TRANSACTION }) .start() @@ -60,7 +59,6 @@ describe('postgres auto instrumentation', () => { await createRunner(__dirname, 'scenario-ignoreConnect.js') .withDockerCompose({ workingDirectory: [__dirname], - setupCommand: 'yarn', }) .expect({ transaction: txn => { @@ -102,58 +100,4 @@ describe('postgres auto instrumentation', () => { .start() .completed(); }); - - test('should auto-instrument `pg-native` package', { timeout: 90_000 }, async () => { - const EXPECTED_TRANSACTION = { - transaction: 'Test Transaction', - spans: expect.arrayContaining([ - expect.objectContaining({ - data: expect.objectContaining({ - 'db.system': 'postgresql', - 'db.name': 'tests', - 'sentry.origin': 'manual', - 'sentry.op': 'db', - }), - description: 'pg.connect', - op: 'db', - status: 'ok', - }), - expect.objectContaining({ - data: expect.objectContaining({ - 'db.system': 'postgresql', - 'db.name': 'tests', - 'db.statement': 'INSERT INTO "NativeUser" ("email", "name") VALUES ($1, $2)', - 'sentry.origin': 'auto.db.otel.postgres', - 'sentry.op': 'db', - }), - description: 'INSERT INTO "NativeUser" ("email", "name") VALUES ($1, $2)', - op: 'db', - status: 'ok', - origin: 'auto.db.otel.postgres', - }), - expect.objectContaining({ - data: expect.objectContaining({ - 'db.system': 'postgresql', - 'db.name': 'tests', - 'db.statement': 'SELECT * FROM "NativeUser"', - 'sentry.origin': 'auto.db.otel.postgres', - 'sentry.op': 'db', - }), - description: 'SELECT * FROM "NativeUser"', - op: 'db', - status: 'ok', - origin: 'auto.db.otel.postgres', - }), - ]), - }; - - await createRunner(__dirname, 'scenario-native.js') - .withDockerCompose({ - workingDirectory: [__dirname], - setupCommand: 'yarn', - }) - .expect({ transaction: EXPECTED_TRANSACTION }) - .start() - .completed(); - }); }); From e41907d3026b0238f293dee731511165ee3567f8 Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Mon, 11 May 2026 14:11:10 +0200 Subject: [PATCH 10/16] Revert "skip pg-native on node 26" This reverts commit f481b9f427f09e7b112a97200f81490f7a6fd53c. --- .../postgres/{pg-native => }/package.json | 0 .../postgres/pg-native/docker-compose.yml | 19 ------ .../suites/tracing/postgres/pg-native/test.ts | 63 ------------------- .../scenario.js => scenario-native.js} | 0 .../suites/tracing/postgres/test.ts | 56 +++++++++++++++++ 5 files changed, 56 insertions(+), 82 deletions(-) rename dev-packages/node-integration-tests/suites/tracing/postgres/{pg-native => }/package.json (100%) delete mode 100644 dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/docker-compose.yml delete mode 100644 dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/test.ts rename dev-packages/node-integration-tests/suites/tracing/postgres/{pg-native/scenario.js => scenario-native.js} (100%) diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/package.json b/dev-packages/node-integration-tests/suites/tracing/postgres/package.json similarity index 100% rename from dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/package.json rename to dev-packages/node-integration-tests/suites/tracing/postgres/package.json diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/docker-compose.yml b/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/docker-compose.yml deleted file mode 100644 index fd62e06d57b2..000000000000 --- a/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3.9' - -services: - db: - image: postgres:13 - restart: always - container_name: integration-tests-postgres-pg-native - ports: - - '5494:5432' - environment: - POSTGRES_USER: test - POSTGRES_PASSWORD: test - POSTGRES_DB: tests - healthcheck: - test: ['CMD-SHELL', 'pg_isready -U test -d tests'] - interval: 2s - timeout: 3s - retries: 30 - start_period: 5s diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/test.ts b/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/test.ts deleted file mode 100644 index 41414bfbc966..000000000000 --- a/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/test.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { describe, expect, test } from 'vitest'; -import { createRunner } from '../../../../utils/runner'; -import { conditionalTest } from '../../../../utils'; - -describe('postgres pg-native auto instrumentation', () => { - // TODO: pg-native is currently not supported on Node 26+ - // See e.g. https://github.com/brianc/node-postgres/pull/3667 - conditionalTest({ max: 25 })('pg-native', () => { - test('should auto-instrument `pg-native` package', { timeout: 90_000 }, async () => { - const EXPECTED_TRANSACTION = { - transaction: 'Test Transaction', - spans: expect.arrayContaining([ - expect.objectContaining({ - data: expect.objectContaining({ - 'db.system': 'postgresql', - 'db.name': 'tests', - 'sentry.origin': 'manual', - 'sentry.op': 'db', - }), - description: 'pg.connect', - op: 'db', - status: 'ok', - }), - expect.objectContaining({ - data: expect.objectContaining({ - 'db.system': 'postgresql', - 'db.name': 'tests', - 'db.statement': 'INSERT INTO "NativeUser" ("email", "name") VALUES ($1, $2)', - 'sentry.origin': 'auto.db.otel.postgres', - 'sentry.op': 'db', - }), - description: 'INSERT INTO "NativeUser" ("email", "name") VALUES ($1, $2)', - op: 'db', - status: 'ok', - origin: 'auto.db.otel.postgres', - }), - expect.objectContaining({ - data: expect.objectContaining({ - 'db.system': 'postgresql', - 'db.name': 'tests', - 'db.statement': 'SELECT * FROM "NativeUser"', - 'sentry.origin': 'auto.db.otel.postgres', - 'sentry.op': 'db', - }), - description: 'SELECT * FROM "NativeUser"', - op: 'db', - status: 'ok', - origin: 'auto.db.otel.postgres', - }), - ]), - }; - - await createRunner(__dirname, 'scenario.js') - .withDockerCompose({ - workingDirectory: [__dirname], - setupCommand: 'yarn', - }) - .expect({ transaction: EXPECTED_TRANSACTION }) - .start() - .completed(); - }); - }); -}); diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/scenario.js b/dev-packages/node-integration-tests/suites/tracing/postgres/scenario-native.js similarity index 100% rename from dev-packages/node-integration-tests/suites/tracing/postgres/pg-native/scenario.js rename to dev-packages/node-integration-tests/suites/tracing/postgres/scenario-native.js diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts b/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts index e452daf33eec..98c42976498a 100644 --- a/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts @@ -49,6 +49,7 @@ describe('postgres auto instrumentation', () => { await createRunner(__dirname, 'scenario.js') .withDockerCompose({ workingDirectory: [__dirname], + setupCommand: 'yarn', }) .expect({ transaction: EXPECTED_TRANSACTION }) .start() @@ -59,6 +60,7 @@ describe('postgres auto instrumentation', () => { await createRunner(__dirname, 'scenario-ignoreConnect.js') .withDockerCompose({ workingDirectory: [__dirname], + setupCommand: 'yarn', }) .expect({ transaction: txn => { @@ -100,4 +102,58 @@ describe('postgres auto instrumentation', () => { .start() .completed(); }); + + test('should auto-instrument `pg-native` package', { timeout: 90_000 }, async () => { + const EXPECTED_TRANSACTION = { + transaction: 'Test Transaction', + spans: expect.arrayContaining([ + expect.objectContaining({ + data: expect.objectContaining({ + 'db.system': 'postgresql', + 'db.name': 'tests', + 'sentry.origin': 'manual', + 'sentry.op': 'db', + }), + description: 'pg.connect', + op: 'db', + status: 'ok', + }), + expect.objectContaining({ + data: expect.objectContaining({ + 'db.system': 'postgresql', + 'db.name': 'tests', + 'db.statement': 'INSERT INTO "NativeUser" ("email", "name") VALUES ($1, $2)', + 'sentry.origin': 'auto.db.otel.postgres', + 'sentry.op': 'db', + }), + description: 'INSERT INTO "NativeUser" ("email", "name") VALUES ($1, $2)', + op: 'db', + status: 'ok', + origin: 'auto.db.otel.postgres', + }), + expect.objectContaining({ + data: expect.objectContaining({ + 'db.system': 'postgresql', + 'db.name': 'tests', + 'db.statement': 'SELECT * FROM "NativeUser"', + 'sentry.origin': 'auto.db.otel.postgres', + 'sentry.op': 'db', + }), + description: 'SELECT * FROM "NativeUser"', + op: 'db', + status: 'ok', + origin: 'auto.db.otel.postgres', + }), + ]), + }; + + await createRunner(__dirname, 'scenario-native.js') + .withDockerCompose({ + workingDirectory: [__dirname], + setupCommand: 'yarn', + }) + .expect({ transaction: EXPECTED_TRANSACTION }) + .start() + .completed(); + }); }); From f1fc10bb9f1b450190197ac324baac85df341cad Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Mon, 11 May 2026 14:14:30 +0200 Subject: [PATCH 11/16] conditional test runner stuff --- .../suites/tracing/postgres/test.ts | 101 +++++++++--------- 1 file changed, 51 insertions(+), 50 deletions(-) diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts b/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts index 98c42976498a..e5d0e3f26fa8 100644 --- a/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/postgres/test.ts @@ -1,5 +1,6 @@ import { describe, expect, test } from 'vitest'; import { createRunner } from '../../../utils/runner'; +import { conditionalTest } from '../../../utils'; describe('postgres auto instrumentation', () => { test('should auto-instrument `pg` package', { timeout: 90_000 }, async () => { @@ -49,7 +50,6 @@ describe('postgres auto instrumentation', () => { await createRunner(__dirname, 'scenario.js') .withDockerCompose({ workingDirectory: [__dirname], - setupCommand: 'yarn', }) .expect({ transaction: EXPECTED_TRANSACTION }) .start() @@ -60,7 +60,6 @@ describe('postgres auto instrumentation', () => { await createRunner(__dirname, 'scenario-ignoreConnect.js') .withDockerCompose({ workingDirectory: [__dirname], - setupCommand: 'yarn', }) .expect({ transaction: txn => { @@ -103,57 +102,59 @@ describe('postgres auto instrumentation', () => { .completed(); }); - test('should auto-instrument `pg-native` package', { timeout: 90_000 }, async () => { - const EXPECTED_TRANSACTION = { - transaction: 'Test Transaction', - spans: expect.arrayContaining([ - expect.objectContaining({ - data: expect.objectContaining({ - 'db.system': 'postgresql', - 'db.name': 'tests', - 'sentry.origin': 'manual', - 'sentry.op': 'db', + conditionalTest({ max: 25 })('pg-native', () => { + test('should auto-instrument `pg-native` package', { timeout: 90_000 }, async () => { + const EXPECTED_TRANSACTION = { + transaction: 'Test Transaction', + spans: expect.arrayContaining([ + expect.objectContaining({ + data: expect.objectContaining({ + 'db.system': 'postgresql', + 'db.name': 'tests', + 'sentry.origin': 'manual', + 'sentry.op': 'db', + }), + description: 'pg.connect', + op: 'db', + status: 'ok', }), - description: 'pg.connect', - op: 'db', - status: 'ok', - }), - expect.objectContaining({ - data: expect.objectContaining({ - 'db.system': 'postgresql', - 'db.name': 'tests', - 'db.statement': 'INSERT INTO "NativeUser" ("email", "name") VALUES ($1, $2)', - 'sentry.origin': 'auto.db.otel.postgres', - 'sentry.op': 'db', + expect.objectContaining({ + data: expect.objectContaining({ + 'db.system': 'postgresql', + 'db.name': 'tests', + 'db.statement': 'INSERT INTO "NativeUser" ("email", "name") VALUES ($1, $2)', + 'sentry.origin': 'auto.db.otel.postgres', + 'sentry.op': 'db', + }), + description: 'INSERT INTO "NativeUser" ("email", "name") VALUES ($1, $2)', + op: 'db', + status: 'ok', + origin: 'auto.db.otel.postgres', }), - description: 'INSERT INTO "NativeUser" ("email", "name") VALUES ($1, $2)', - op: 'db', - status: 'ok', - origin: 'auto.db.otel.postgres', - }), - expect.objectContaining({ - data: expect.objectContaining({ - 'db.system': 'postgresql', - 'db.name': 'tests', - 'db.statement': 'SELECT * FROM "NativeUser"', - 'sentry.origin': 'auto.db.otel.postgres', - 'sentry.op': 'db', + expect.objectContaining({ + data: expect.objectContaining({ + 'db.system': 'postgresql', + 'db.name': 'tests', + 'db.statement': 'SELECT * FROM "NativeUser"', + 'sentry.origin': 'auto.db.otel.postgres', + 'sentry.op': 'db', + }), + description: 'SELECT * FROM "NativeUser"', + op: 'db', + status: 'ok', + origin: 'auto.db.otel.postgres', }), - description: 'SELECT * FROM "NativeUser"', - op: 'db', - status: 'ok', - origin: 'auto.db.otel.postgres', - }), - ]), - }; + ]), + }; - await createRunner(__dirname, 'scenario-native.js') - .withDockerCompose({ - workingDirectory: [__dirname], - setupCommand: 'yarn', - }) - .expect({ transaction: EXPECTED_TRANSACTION }) - .start() - .completed(); + await createRunner(__dirname, 'scenario-native.js') + .withDockerCompose({ + workingDirectory: [__dirname], + setupCommand: 'yarn', + }) + .expect({ transaction: EXPECTED_TRANSACTION }) + .start() + .completed(); + }); }); }); From f757d17ec09ae28370c3c646f667dbd963f5c8d3 Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Mon, 11 May 2026 14:25:04 +0200 Subject: [PATCH 12/16] bump pg-native --- .../suites/tracing/postgres/package.json | 4 +- .../suites/tracing/postgres/yarn.lock | 56 +++++++++---------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres/package.json b/dev-packages/node-integration-tests/suites/tracing/postgres/package.json index 602eab3a6f3d..040e636bcb69 100644 --- a/dev-packages/node-integration-tests/suites/tracing/postgres/package.json +++ b/dev-packages/node-integration-tests/suites/tracing/postgres/package.json @@ -10,7 +10,7 @@ "author": "", "license": "ISC", "dependencies": { - "pg": "8.16.0", - "pg-native": "3.5.0" + "pg": "8.20.0", + "pg-native": "3.7.0" } } diff --git a/dev-packages/node-integration-tests/suites/tracing/postgres/yarn.lock b/dev-packages/node-integration-tests/suites/tracing/postgres/yarn.lock index 9eb59e69f6c2..8b2e296ece0b 100644 --- a/dev-packages/node-integration-tests/suites/tracing/postgres/yarn.lock +++ b/dev-packages/node-integration-tests/suites/tracing/postgres/yarn.lock @@ -27,38 +27,38 @@ nan@~2.22.2: resolved "https://registry.yarnpkg.com/nan/-/nan-2.22.2.tgz#6b504fd029fb8f38c0990e52ad5c26772fdacfbb" integrity sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ== -pg-cloudflare@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.2.5.tgz#2e3649c38a7a9c74a7e5327c8098a2fd9af595bd" - integrity sha512-OOX22Vt0vOSRrdoUPKJ8Wi2OpE/o/h9T8X1s4qSkCedbNah9ei2W2765be8iMVxQUsvgT7zIAT2eIa9fs5+vtg== +pg-cloudflare@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz#386035d4bfcf1a7045b026f8b21acf5353f14d65" + integrity sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ== -pg-connection-string@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.9.0.tgz#f75e06591fdd42ec7636fe2c6a03febeedbec9bf" - integrity sha512-P2DEBKuvh5RClafLngkAuGe9OUlFV7ebu8w1kmaaOgPcpJd1RIFh7otETfI6hAR8YupOLFTY7nuvvIn7PLciUQ== +pg-connection-string@^2.12.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.12.0.tgz#4084f917902bb2daae3dc1376fe24ac7b4eaccf2" + integrity sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ== pg-int8@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== -pg-native@3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/pg-native/-/pg-native-3.5.0.tgz#1a43c0d5f5744e40df3bf737c43178ce98984255" - integrity sha512-rj4LYouevTdKxvRLnvtOLEPOerkiPAqUdZE1K48IfQluEH/x7GrldEDdSaEOmJ6z7s6LQwDTpAPhm2s00iG8xw== +pg-native@3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/pg-native/-/pg-native-3.7.0.tgz#1bd78031482c78dc5240c4350cddb291493dc34f" + integrity sha512-q2V5DynvPt4PD75q1DqZOUrieEgE4bf/flEeLCzzs8axgn8x2mRCUhd1DP0cqMz8FEdpVEDb0/zKblQWeijbGg== dependencies: libpq "^1.8.15" pg-types "2.2.0" -pg-pool@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.10.0.tgz#134b0213755c5e7135152976488aa7cd7ee1268d" - integrity sha512-DzZ26On4sQ0KmqnO34muPcmKbhrjmyiO4lCCR0VwEd7MjmiKf5NTg/6+apUEu0NF7ESa37CGzFxH513CoUmWnA== +pg-pool@^3.13.0: + version "3.13.0" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.13.0.tgz#416482e9700e8f80c685a6ae5681697a413c13a3" + integrity sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA== -pg-protocol@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.10.0.tgz#a473afcbb1c6e5dc3ac24869ba3dd563f8a1ae1b" - integrity sha512-IpdytjudNuLv8nhlHs/UrVBhU0e78J0oIS/0AVdTbWxSOkFUVdsHC/NrorO6nXsQNDTT1kzDSOMJubBQviX18Q== +pg-protocol@^1.13.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.13.0.tgz#fdaf6d020bca590d58bb991b4b16fc448efe0511" + integrity sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w== pg-types@2.2.0: version "2.2.0" @@ -71,18 +71,18 @@ pg-types@2.2.0: postgres-date "~1.0.4" postgres-interval "^1.1.0" -pg@8.16.0: - version "8.16.0" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.16.0.tgz#40b08eedb5eb1834252cf3e3629503e32e6c6c04" - integrity sha512-7SKfdvP8CTNXjMUzfcVTaI+TDzBEeaUnVwiVGZQD1Hh33Kpev7liQba9uLd4CfN8r9mCVsD0JIpq03+Unpz+kg== +pg@8.20.0: + version "8.20.0" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.20.0.tgz#1a274de944cb329fd6dd77a6d371a005ba6b136d" + integrity sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA== dependencies: - pg-connection-string "^2.9.0" - pg-pool "^3.10.0" - pg-protocol "^1.10.0" + pg-connection-string "^2.12.0" + pg-pool "^3.13.0" + pg-protocol "^1.13.0" pg-types "2.2.0" pgpass "1.0.5" optionalDependencies: - pg-cloudflare "^1.2.5" + pg-cloudflare "^1.3.0" pgpass@1.0.5: version "1.0.5" From 5b19a20d3b29bd43e16b489b1968cb5d55d099b8 Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Mon, 11 May 2026 14:32:04 +0200 Subject: [PATCH 13/16] do not treat deprecation warning as error output --- dev-packages/node-core-integration-tests/utils/runner.ts | 3 ++- dev-packages/node-integration-tests/utils/runner.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dev-packages/node-core-integration-tests/utils/runner.ts b/dev-packages/node-core-integration-tests/utils/runner.ts index d27c65fc81be..69163754c89e 100644 --- a/dev-packages/node-core-integration-tests/utils/runner.ts +++ b/dev-packages/node-core-integration-tests/utils/runner.ts @@ -486,7 +486,8 @@ export function createRunner(...paths: string[]) { if (process.env.DEBUG) log('stderr line', output); - if (ensureNoErrorOutput) { + // Ignore deprecation warnings for this purpose + if (ensureNoErrorOutput && !`${output}`.includes('DeprecationWarning:')) { complete(new Error(`Expected no error output but got: '${output}'`)); } }); diff --git a/dev-packages/node-integration-tests/utils/runner.ts b/dev-packages/node-integration-tests/utils/runner.ts index 89f96974c123..0aebd074008d 100644 --- a/dev-packages/node-integration-tests/utils/runner.ts +++ b/dev-packages/node-integration-tests/utils/runner.ts @@ -602,7 +602,8 @@ export function createRunner(...paths: string[]) { if (process.env.DEBUG) log('stderr line', output); - if (ensureNoErrorOutput) { + // Ignore deprecation warnings for this purpose + if (ensureNoErrorOutput && !`${output}`.includes('DeprecationWarning:')) { complete(new Error(`Expected no error output but got: '${output}'`)); } }); From 41565f967e192c847a45f91c1a4430d247d8f21e Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Mon, 11 May 2026 14:36:11 +0200 Subject: [PATCH 14/16] better test --- .../suites/integrations/console/filter/test.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/dev-packages/node-integration-tests/suites/integrations/console/filter/test.ts b/dev-packages/node-integration-tests/suites/integrations/console/filter/test.ts index 5f0bf9e8b14a..3906bb0570fd 100644 --- a/dev-packages/node-integration-tests/suites/integrations/console/filter/test.ts +++ b/dev-packages/node-integration-tests/suites/integrations/console/filter/test.ts @@ -8,7 +8,7 @@ describe('Console Integration', () => { createEsmAndCjsTests(__dirname, 'scenario.mjs', 'instrument.mjs', (createRunner, test) => { test('filters console messages', async () => { - await createRunner() + const runner = createRunner() .expect({ event: { exception: { @@ -28,8 +28,14 @@ describe('Console Integration', () => { ], }, }) - .start() - .completed(); + .start(); + + await runner.completed(); + + expect(runner.getLogs()).toContainEqual('hello'); + expect(runner.getLogs()).toContainEqual('baz'); + expect(runner.getLogs()).not.toContainEqual('foo'); + expect(runner.getLogs()).not.toContainEqual('foo2'); }); }); }); From 304af640efacf8896ab8943e689256a43e68e211 Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Mon, 11 May 2026 14:40:44 +0200 Subject: [PATCH 15/16] add test for deprecation warnings --- .../suites/integrations/console/filter/test.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dev-packages/node-integration-tests/suites/integrations/console/filter/test.ts b/dev-packages/node-integration-tests/suites/integrations/console/filter/test.ts index 3906bb0570fd..decbe91dbb00 100644 --- a/dev-packages/node-integration-tests/suites/integrations/console/filter/test.ts +++ b/dev-packages/node-integration-tests/suites/integrations/console/filter/test.ts @@ -36,6 +36,9 @@ describe('Console Integration', () => { expect(runner.getLogs()).toContainEqual('baz'); expect(runner.getLogs()).not.toContainEqual('foo'); expect(runner.getLogs()).not.toContainEqual('foo2'); + + // Ensure deprecation warnigns are not included + expect(runner.getLogs()).not.toContainEqual(expect.stringMatching('DeprecationWarning')); }); }); }); From f73ad06ad0d232fc592847dda65dc2d3f13d0789 Mon Sep 17 00:00:00 2001 From: JPeer264 Date: Mon, 11 May 2026 15:37:37 +0200 Subject: [PATCH 16/16] chore: Update node-native-stacktrace --- packages/node-native/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/node-native/package.json b/packages/node-native/package.json index 6946cc08f274..ce36a1a8e94b 100644 --- a/packages/node-native/package.json +++ b/packages/node-native/package.json @@ -62,7 +62,7 @@ "build:tarball": "npm pack" }, "dependencies": { - "@sentry-internal/node-native-stacktrace": "^0.4.0", + "@sentry-internal/node-native-stacktrace": "^0.5.0", "@sentry/core": "10.52.0", "@sentry/node": "10.52.0" }, diff --git a/yarn.lock b/yarn.lock index d5e66586670c..78e5b0b5d356 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7694,10 +7694,10 @@ detect-libc "^2.0.3" node-abi "^3.73.0" -"@sentry-internal/node-native-stacktrace@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/node-native-stacktrace/-/node-native-stacktrace-0.4.0.tgz#8f6e7a21537373a5623714c14d3350e1bb4602f0" - integrity sha512-cuRBBqnsHOJJqLCii9GvwedzjetsihIarq7TxCjgG88JyF8TZWRMlUBu/OogWhYZVU8uHqAeSvpbzolnmdhdkw== +"@sentry-internal/node-native-stacktrace@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/node-native-stacktrace/-/node-native-stacktrace-0.5.0.tgz#834a5326fd45a97d1abe3b6110e9b268c7a2fa4e" + integrity sha512-vi+yY8D0TgUdpd8ja2BPqm689N+WZPWfXNkx0fzKYlVRGymUpQeyUrz2b6dscYE8Qr3ZiA6sz8RtXeQy1r9ZTQ== dependencies: detect-libc "^2.0.4" node-abi "^3.89.0"