From 28770977c16b4eaf4c1b46c105f804f7e43bea7f Mon Sep 17 00:00:00 2001 From: mizdra Date: Tue, 26 May 2026 22:13:10 +0900 Subject: [PATCH 1/2] ci: pin Node.js to 24.15.0 on Windows to avoid libuv 1.52.x bug Node.js 24.16.0+ bundles libuv 1.52.x, which has a Windows file-watching assertion bug (libuv/libuv#5010). Pin the Windows test job to 24.15.0 until upstream ships a fix. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d75e9a11..bc7a7318 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,6 +36,7 @@ jobs: fail-fast: false matrix: # NOTE: We would like to test with Node.js 26 as well, but we are limited to Node.js 24 due to test failures on Windows. + # On Windows we additionally pin to 24.15.0 (see `node-version` below): Node.js 24.16.0+ bundles libuv 1.52.x, which hits the same bug. # ref: https://github.com/libuv/libuv/issues/5010 node: [24] os: [ubuntu-24.04-arm, macos-latest, windows-11-arm] @@ -54,7 +55,7 @@ jobs: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: voidzero-dev/setup-vp@56918a6d0c629c55ae8b88826a7d47fda85769ee # v1.9.0 with: - node-version: ${{ matrix.node }} + node-version: ${{ matrix.os == 'windows-11-arm' && '24.15.0' || matrix.node }} cache: true - uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: From b971b5f6e71765dfba35dbce7cc58f0ab80c2dcc Mon Sep 17 00:00:00 2001 From: mizdra Date: Tue, 26 May 2026 22:19:13 +0900 Subject: [PATCH 2/2] ci: upgrade test job default to Node.js 26 Default the test matrix to Node.js 26 to match lint/build/vscode-test. Move the Windows libuv 1.52.x workaround from a conditional expression to a dedicated `include` entry pinned to Node.js 24.15.0, so `matrix.node` reflects the actually-installed version (and cache keys stay consistent). Also add an explicit Node.js 24 + Stylelint 17 configuration for compatibility coverage. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/ci.yml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bc7a7318..9f6b2f81 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,13 +35,20 @@ jobs: strategy: fail-fast: false matrix: - # NOTE: We would like to test with Node.js 26 as well, but we are limited to Node.js 24 due to test failures on Windows. - # On Windows we additionally pin to 24.15.0 (see `node-version` below): Node.js 24.16.0+ bundles libuv 1.52.x, which hits the same bug. - # ref: https://github.com/libuv/libuv/issues/5010 - node: [24] - os: [ubuntu-24.04-arm, macos-latest, windows-11-arm] + node: [26] + os: [ubuntu-24.04-arm, macos-latest] stylelint-version: ['17'] include: + # Windows is pinned to Node.js 24.15.0 because Node.js 24.16+ and 26.x bundle libuv 1.52.x, + # which has a Windows file-watching bug. + # ref: https://github.com/libuv/libuv/issues/5010 + - node: '24.15.0' + os: windows-11-arm + stylelint-version: '17' + # Configuration for Node.js 24 + - node: 24 + os: ubuntu-24.04-arm + stylelint-version: '17' # Configuration for Node.js 22 - node: 22 os: ubuntu-24.04-arm @@ -55,7 +62,7 @@ jobs: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: voidzero-dev/setup-vp@56918a6d0c629c55ae8b88826a7d47fda85769ee # v1.9.0 with: - node-version: ${{ matrix.os == 'windows-11-arm' && '24.15.0' || matrix.node }} + node-version: ${{ matrix.node }} cache: true - uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: