ci: pin msnodesqlv8 v5 to 5.2.1 on Node 20 - #1883
Merged
dhensby merged 1 commit intoJul 30, 2026
Merged
Conversation
msnodesqlv8 5.2.2 stopped publishing a Node 20 (ABI 115) win32-x64 prebuild, so `npm install msnodesqlv8@^5` — which resolves to 5.2.3 — falls through its `prebuild-install || node-gyp rebuild` install script to a source build on Node 20. That build succeeds slowly on windows-2022 (~3 minutes) but fails outright on windows-2025, where node-gyp 10.1.0 cannot detect the Visual Studio 2026 install the image now ships. This failed all four `windows-2025, 20.x` cells on every run regardless of the changes under test. Upstream builds prebuilds for Node 22/24/26 only, so a floating `@^5` will not regain a Node 20 binary. Gate `@^5` to Node 22-24 and add a Node 20 step pinned to 5.2.1, the last v5 release shipping an ABI 115 win32-x64 prebuild. This keeps the v5-on-Node-20 coverage that simply gating v5 to Node 22-24 would have dropped — Node 20 remains supported via `engines.node: ">=18.19.0"` — and removes the slow source build from windows-2022 too. Every gated combination now resolves to a published win32-x64 prebuild: v2 Node 18; v3 Node 18-20; v4 Node 18-24; v5 Node 20 (5.2.1) and Node 22-24 (5.2.3). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1882.
The failure
msnodesqlv8 5.2.2 dropped the Node 20 (ABI 115) win32-x64 prebuild. Since
@^5resolves to 5.2.3,npm install --no-save msnodesqlv8@^5on Node 20 falls through itsprebuild-install || node-gyp rebuildinstall script to a source build:node-gyp 10.1.0 (bundled with Node 20's npm) can't parse the Visual Studio 2026 install that
windows-2025now ships, so all fourwindows-2025, 20.xcells fail at Install msnodesqlv8 v5 on every run, regardless of the changes under test.windows-2022, 20.xsurvives only because VS 2022 is present — it silently spends ~3 minutes compiling from source.Published win32-x64 prebuild ABIs, per the upstream GitHub releases:
The fix
Upstream's
prebuild.ymlmatrix isnode: [22, 24, 26]— Node 20 is past EOL and the toolchain dropped it — so a floating@^5will not regain a Node 20 binary. Rather than dropping Node 20 from the v5 gate entirely (which would delete all v5-on-Node-20 coverage, currently green on the fourwindows-2022, 20.xcells), the v5 steps are split:@^5gated to Node 22-245.2.1, the last v5 release shipping an ABI 115 prebuildNode 20 remains supported by this package (
engines.node: ">=18.19.0") and by msnodesqlv8 5.2.3 itself (engines.node: ">=18"), so keeping the combination exercised seemed worth a pinned version.Verification
Cross-checked every gated combination against the published release assets — all ten now resolve to a prebuild, so no cell falls back to node-gyp:
Side benefit:
windows-2022, 20.xloses its ~3-minute source build too.Note that master also carries four failing Dependabot Updates runs (
tar,js-yaml,undici,brace-expansion). Those are unrelated to this change and are tracked separately — all four are dev-only transitives with no impact on published-package consumers.🤖 Generated with Claude Code