From f6ba8cbdc337d312023978744fd7b801797827a4 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Thu, 7 May 2026 23:56:06 +0100 Subject: [PATCH 1/3] feat: Support Node v26 --- .github/workflows/ci.yml | 48 +++++++++++++++++++++++++++++++++++++++- src/index.ts | 21 ++++++++++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dbb5683..d6753df 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,6 +54,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 @@ -72,6 +76,10 @@ jobs: container: node:24-alpine3.20 node: 24 binary: linux-x64-musl-137 + - os: ubuntu-22.04 + container: node:26-alpine3.20 + node: 26 + binary: linux-x64-musl-147 # arm64 glibc - os: ubuntu-22.04 @@ -90,6 +98,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 @@ -112,6 +124,11 @@ jobs: container: node:24-alpine3.20 node: 24 binary: linux-arm64-musl-137 + - os: ubuntu-22.04 + arch: arm64 + container: node:26-alpine3.20 + node: 26 + binary: linux-arm64-musl-147 # macos x64 - os: macos-15-intel @@ -130,6 +147,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 @@ -152,6 +173,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 @@ -170,6 +196,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) @@ -209,6 +239,22 @@ 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: | + # 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 + 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: | @@ -324,7 +370,7 @@ jobs: macos-15-intel, # macOS x64 windows-latest, ] - node: [18, 20, 22, 24, 25] + node: [18, 20, 22, 24, 26] steps: - name: Check out current commit uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 diff --git a/src/index.ts b/src/index.ts index 2bfcf60..1090708 100644 --- a/src/index.ts +++ b/src/index.ts @@ -93,6 +93,9 @@ function getNativeModule(): Native { if (abi === '137') { return require('./stack-trace-darwin-x64-137.node'); } + if (abi === '147') { + return require('./stack-trace-darwin-x64-147.node'); + } } if (arch === 'arm64') { @@ -108,6 +111,9 @@ function getNativeModule(): Native { if (abi === '137') { return require('./stack-trace-darwin-arm64-137.node'); } + if (abi === '147') { + return require('./stack-trace-darwin-arm64-147.node'); + } } } @@ -125,6 +131,9 @@ function getNativeModule(): Native { if (abi === '137') { return require('./stack-trace-win32-x64-137.node'); } + if (abi === '147') { + return require('./stack-trace-win32-x64-147.node'); + } } } @@ -143,6 +152,9 @@ function getNativeModule(): Native { if (abi === '137') { return require('./stack-trace-linux-x64-musl-137.node'); } + if (abi === '147') { + return require('./stack-trace-linux-x64-musl-147.node'); + } } if (stdlib === 'glibc') { if (abi === '108') { @@ -157,6 +169,9 @@ function getNativeModule(): Native { if (abi === '137') { return require('./stack-trace-linux-x64-glibc-137.node'); } + if (abi === '147') { + return require('./stack-trace-linux-x64-glibc-147.node'); + } } } if (arch === 'arm64') { @@ -173,6 +188,9 @@ function getNativeModule(): Native { if (abi === '137') { return require('./stack-trace-linux-arm64-musl-137.node'); } + if (abi === '147') { + return require('./stack-trace-linux-arm64-musl-147.node'); + } } if (stdlib === 'glibc') { @@ -188,6 +206,9 @@ function getNativeModule(): Native { if (abi === '137') { return require('./stack-trace-linux-arm64-glibc-137.node'); } + if (abi === '147') { + return require('./stack-trace-linux-arm64-glibc-147.node'); + } } } } From ef389b3425457d02253eae46f5e3c0a82aff4891 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Thu, 7 May 2026 23:58:40 +0100 Subject: [PATCH 2/3] Oops --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6753df..0e46b59 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -77,7 +77,7 @@ jobs: node: 24 binary: linux-x64-musl-137 - os: ubuntu-22.04 - container: node:26-alpine3.20 + container: node:26-alpine3.22 node: 26 binary: linux-x64-musl-147 @@ -126,7 +126,7 @@ jobs: binary: linux-arm64-musl-137 - os: ubuntu-22.04 arch: arm64 - container: node:26-alpine3.20 + container: node:26-alpine3.22 node: 26 binary: linux-arm64-musl-147 From 3527cfe9eddd2528042e931e864e57573074f63f Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Fri, 8 May 2026 09:49:42 +0100 Subject: [PATCH 3/3] Fix yarn --- .github/workflows/ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0e46b59..1fcbbf6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,6 +22,8 @@ jobs: uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: node-version-file: "package.json" + - 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 @@ -221,6 +223,9 @@ jobs: with: node-version: ${{ matrix.node }} + - 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') run: yarn config set network-timeout 600000 -g @@ -332,6 +337,9 @@ jobs: with: node-version-file: "package.json" + - 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