From 26a2dc2a7663d384394d3468c7a79af20f7003b7 Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Thu, 7 May 2026 14:13:10 +0200 Subject: [PATCH 1/5] feat: Add node 26 support --- .github/workflows/build.yml | 32 +++++++++++++++++++++++++++++++- src/index.ts | 21 +++++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f77610b..58e3b6d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -49,6 +49,10 @@ jobs: container: ghcr.io/getsentry/sentry-test-ubuntu-20.04-amd64:0dd255f3d41d013c1db4c4e08ffd22ee7959c3cc node: 24 binary: linux-x64-glibc-137 + - os: ubuntu-22.04 + container: ghcr.io/getsentry/sentry-test-ubuntu-20.04-amd64:0dd255f3d41d013c1db4c4e08ffd22ee7959c3cc + node: 26 + binary: linux-x64-glibc-147 # x64 musl - os: ubuntu-22.04 @@ -67,6 +71,10 @@ jobs: container: node:24-alpine3.20 node: 24 binary: linux-x64-musl-137 + - os: ubuntu-22.04 + container: node:26-alpine3.22 + node: 26 + binary: linux-x64-musl-147 # arm64 glibc - os: ubuntu-22.04 @@ -85,6 +93,10 @@ jobs: arch: arm64 node: 24 binary: linux-arm64-glibc-137 + - os: ubuntu-22.04 + arch: arm64 + node: 26 + binary: linux-arm64-glibc-147 # arm64 musl - os: ubuntu-22.04 @@ -107,6 +119,11 @@ jobs: container: node:24-alpine3.20 node: 24 binary: linux-arm64-musl-137 + - os: ubuntu-22.04 + arch: arm64 + container: node:26-alpine3.22 + node: 26 + binary: linux-arm64-musl-147 # macos x64 - os: macos-15-intel @@ -125,6 +142,10 @@ jobs: node: 24 arch: x64 binary: darwin-x64-137 + - os: macos-15-intel + node: 26 + arch: x64 + binary: darwin-x64-147 # macos arm64 - os: macos-15 @@ -147,6 +168,11 @@ jobs: node: 24 target_platform: darwin binary: darwin-arm64-137 + - os: macos-15 + arch: arm64 + node: 26 + target_platform: darwin + binary: darwin-arm64-147 # windows x64 - os: windows-2022 @@ -165,6 +191,10 @@ jobs: node: 24 arch: x64 binary: win32-x64-137 + - os: windows-2022 + node: 26 + arch: x64 + binary: win32-x64-147 steps: - name: Setup (alpine) @@ -319,7 +349,7 @@ jobs: macos-15-intel, # macOS x64 windows-latest, ] - node: [18, 20, 22, 24] + node: [18, 20, 22, 24, 26] steps: - name: Check out current commit uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 diff --git a/src/index.ts b/src/index.ts index 94ec136..3b0fbf7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -62,6 +62,9 @@ export function importCppBindingsModule(): PrivateV8CpuProfilerBindings { if (abi === '137') { return require('./sentry_cpu_profiler-darwin-x64-137.node'); } + if (abi === '147') { + return require('./sentry_cpu_profiler-darwin-x64-147.node'); + } } if (arch === 'arm64') { @@ -77,6 +80,9 @@ export function importCppBindingsModule(): PrivateV8CpuProfilerBindings { if (abi === '137') { return require('./sentry_cpu_profiler-darwin-arm64-137.node'); } + if (abi === '147') { + return require('./sentry_cpu_profiler-darwin-arm64-147.node'); + } } } @@ -94,6 +100,9 @@ export function importCppBindingsModule(): PrivateV8CpuProfilerBindings { if (abi === '137') { return require('./sentry_cpu_profiler-win32-x64-137.node'); } + if (abi === '147') { + return require('./sentry_cpu_profiler-win32-x64-147.node'); + } } } @@ -112,6 +121,9 @@ export function importCppBindingsModule(): PrivateV8CpuProfilerBindings { if (abi === '137') { return require('./sentry_cpu_profiler-linux-x64-musl-137.node'); } + if (abi === '147') { + return require('./sentry_cpu_profiler-linux-x64-musl-147.node'); + } } if (stdlib === 'glibc') { if (abi === '108') { @@ -126,6 +138,9 @@ export function importCppBindingsModule(): PrivateV8CpuProfilerBindings { if (abi === '137') { return require('./sentry_cpu_profiler-linux-x64-glibc-137.node'); } + if (abi === '147') { + return require('./sentry_cpu_profiler-linux-x64-glibc-147.node'); + } } } if (arch === 'arm64') { @@ -142,6 +157,9 @@ export function importCppBindingsModule(): PrivateV8CpuProfilerBindings { if (abi === '137') { return require('./sentry_cpu_profiler-linux-arm64-musl-137.node'); } + if (abi === '147') { + return require('./sentry_cpu_profiler-linux-arm64-musl-147.node'); + } } if (stdlib === 'glibc') { @@ -157,6 +175,9 @@ export function importCppBindingsModule(): PrivateV8CpuProfilerBindings { if (abi === '137') { return require('./sentry_cpu_profiler-linux-arm64-glibc-137.node'); } + if (abi === '147') { + return require('./sentry_cpu_profiler-linux-arm64-glibc-147.node'); + } } } } From 18fec77a709eee2903fc81f214713c920ec82e03 Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Thu, 7 May 2026 14:19:10 +0200 Subject: [PATCH 2/5] make sure we install yarn --- .github/workflows/build.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 58e3b6d..c378107 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,6 +17,8 @@ jobs: uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 with: node-version-file: "package.json" + - name: Install Yarn + run: npm install -g yarn@1.22.22 - name: Install dependencies run: yarn install --ignore-engines --ignore-scripts --frozen-lockfile - name: Lint @@ -215,6 +217,8 @@ jobs: if: contains(matrix.container, 'alpine') == false with: node-version: ${{ matrix.node }} + - name: Install Yarn + run: npm install -g yarn@1.22.22 - name: Increase yarn network timeout on Windows if: contains(matrix.os, 'windows') @@ -310,6 +314,8 @@ jobs: uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 with: node-version-file: "package.json" + - name: Install Yarn + run: npm install -g yarn@1.22.22 - name: Install dependencies run: yarn install --ignore-engines --ignore-scripts --frozen-lockfile @@ -357,6 +363,8 @@ jobs: uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 with: node-version: ${{ matrix.node }} + - name: Install Yarn + run: npm install -g yarn@1.22.22 - name: Install dependencies run: yarn install --ignore-engines --ignore-scripts --frozen-lockfile - name: Download Tarball @@ -381,6 +389,8 @@ jobs: uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 with: node-version-file: "package.json" + - name: Install Yarn + run: npm install -g yarn@1.22.22 - name: Install dependencies run: yarn install --ignore-engines --ignore-scripts --frozen-lockfile - name: Download Tarball @@ -401,6 +411,8 @@ jobs: uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 with: node-version-file: "package.json" + - name: Install Yarn + run: npm install -g yarn@1.22.22 - name: Install dependencies run: yarn install --ignore-engines --ignore-scripts --frozen-lockfile - name: Download Tarball From 1b7e5d53f6e49e7fd0e1ac7e3753f458b1921e45 Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Thu, 7 May 2026 14:24:08 +0200 Subject: [PATCH 3/5] only install yarn if not yet installed --- .github/workflows/build.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c378107..681aac5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,8 +17,8 @@ jobs: uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 with: node-version-file: "package.json" - - name: Install Yarn - run: npm install -g yarn@1.22.22 + - name: Install Yarn (if not yet installed) + run: yarn --version || npm install -g yarn@1.22.22 - name: Install dependencies run: yarn install --ignore-engines --ignore-scripts --frozen-lockfile - name: Lint @@ -217,8 +217,8 @@ jobs: if: contains(matrix.container, 'alpine') == false with: node-version: ${{ matrix.node }} - - name: Install Yarn - run: npm install -g yarn@1.22.22 + - name: Install Yarn (if not yet installed) + run: yarn --version || npm install -g yarn@1.22.22 - name: Increase yarn network timeout on Windows if: contains(matrix.os, 'windows') @@ -314,8 +314,8 @@ jobs: uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 with: node-version-file: "package.json" - - name: Install Yarn - run: npm install -g yarn@1.22.22 + - name: Install Yarn (if not yet installed) + run: yarn --version || npm install -g yarn@1.22.22 - name: Install dependencies run: yarn install --ignore-engines --ignore-scripts --frozen-lockfile @@ -363,8 +363,8 @@ jobs: uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 with: node-version: ${{ matrix.node }} - - name: Install Yarn - run: npm install -g yarn@1.22.22 + - name: Install Yarn (if not yet installed) + run: yarn --version || npm install -g yarn@1.22.22 - name: Install dependencies run: yarn install --ignore-engines --ignore-scripts --frozen-lockfile - name: Download Tarball @@ -389,8 +389,8 @@ jobs: uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 with: node-version-file: "package.json" - - name: Install Yarn - run: npm install -g yarn@1.22.22 + - name: Install Yarn (if not yet installed) + run: yarn --version || npm install -g yarn@1.22.22 - name: Install dependencies run: yarn install --ignore-engines --ignore-scripts --frozen-lockfile - name: Download Tarball @@ -411,8 +411,8 @@ jobs: uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 with: node-version-file: "package.json" - - name: Install Yarn - run: npm install -g yarn@1.22.22 + - name: Install Yarn (if not yet installed) + run: yarn --version || npm install -g yarn@1.22.22 - name: Install dependencies run: yarn install --ignore-engines --ignore-scripts --frozen-lockfile - name: Download Tarball From 08a6eaafd5ba6e635916d4f485398dc3d4d2dbaf Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Thu, 7 May 2026 14:30:04 +0200 Subject: [PATCH 4/5] try fix compiler version --- .github/workflows/build.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 681aac5..ff7e5ff 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -238,6 +238,19 @@ jobs: with: python-version: "3.9.13" + # Node 26 V8 headers include , which requires a newer C++ toolchain. + # Our ubuntu-20.04 glibc container defaults to an older compiler, so upgrade only this target. + - name: Setup compiler (Node 26 glibc x64) + if: matrix.binary == 'linux-x64-glibc-147' + run: | + apt-get update + apt-get install -y software-properties-common + add-apt-repository -y ppa:ubuntu-toolchain-r/test + apt-get update + apt-get install -y gcc-12 g++-12 + echo "CC=gcc-12" >> "$GITHUB_ENV" + echo "CXX=g++-12" >> "$GITHUB_ENV" + - name: Setup (arm64| ${{ contains(matrix.container, 'alpine') && 'musl' || 'glibc' }}) if: matrix.arch == 'arm64' && !contains(matrix.container, 'alpine') && matrix.target_platform != 'darwin' run: | From b6f9859024acbe6c78acdebb18b9e23552449343 Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Thu, 7 May 2026 15:22:19 +0200 Subject: [PATCH 5/5] fix? --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ff7e5ff..e9aee1c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -243,6 +243,9 @@ jobs: - name: Setup compiler (Node 26 glibc x64) if: matrix.binary == 'linux-x64-glibc-147' run: | + # The base container ships a stale Yarn apt source with an expired/missing key. + # Remove it so apt-get update can succeed for toolchain installation. + rm -f /etc/apt/sources.list.d/yarn.list apt-get update apt-get install -y software-properties-common add-apt-repository -y ppa:ubuntu-toolchain-r/test