Repository navigation
feat: native addons from prebuilt binaries, no compiler at install time - #2938
Merged
Merged
Conversation
dumpme 2.0.0 → 2.1.0-dev.1 and koncorde 4.7.0 → 4.8.0-beta.1, which brings boost-geospatial-index 1.5.0-beta.1 and kuzzle-espresso-logic-minimizer 2.3.0-beta.1. All three addons are now N-API ports that ship prebuilt binaries for linux-x64/arm64 (glibc 2.31+) and darwin-x64/arm64 inside their tarballs, so `npm install` compiles none of them and downloads no Node headers; each was proven identical to its previous release by a seeded differential test in its own CI. Pinned exactly while they are prereleases. CI: - check-prebuilt-addons.sh, run in the `build` job after `npm ci`, fails if any of the three was compiled instead of loaded from its prebuild. - The install-packages action goes, with its 16 call sites: it only installed libunwind, which nothing links since node-segfault-handler was dropped (dumpme never linked it). - with-retry.sh stays, for re2's install-time download. Refs #2839 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
|
🎉 This PR is included in version 2.57.0-beta.2 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This was referenced Sep 27, 2026
|
🎉 This PR is included in version 2.57.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
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.



Closes #2839. Closes #2790 (the CI
npm ciflake it caused) once green.What
dumpmekoncordeboost-geospatial-indexkuzzle-espresso-logic-minimizerThe three addons are N-API ports shipping prebuilt binaries (linux-x64/arm64 on glibc ≥ 2.31, darwin-x64/arm64) inside their tarballs:
npm installcompiles none of them and downloads no Node headers. Elsewhere (Alpine, other arches) they still compile, as before. Pinned exactly while they are prereleases; they move to stable before 2.57.0 does.Behavior: each addon's CI runs a seeded differential test against its previous (NAN) release and requires identical output. boost's C++ standard is now pinned to gnu++17: 1.4.0 inherited it from the Node headers, and its Node 24 build (gnu++20) returned different geospatial results on arm64 — all builds now behave like the Node 20/22 one (documented in the upgrade notes).
CI
.ci/scripts/check-prebuilt-addons.sh(inbuild, afternpm ci): fails if any of the three was compiled instead of loaded fromprebuilds/. Checked locally both ways (passes on a clean install, fails on a simulated compile).install-packagesaction removed with its 16 call sites: it only installedlibunwind, which nothing links sincenode-segfault-handlerwas dropped (dumpme never linked it).with-retry.shstays, forre2's install-time download (comment updated; TD-83 follow-up in the register).Verified locally
pr-preflight✅ · unit tests in Docker ✅ (3 908 passed, 159 files) · containerisednpm ci: 0 compile lines.kuzzle-runner, run innode:*-slim),kuzzle@2.56.0vs this branch, linux/amd64 and linux/arm64:kuzzle-runner:24-trixie-slim→node:24-trixie-slimkuzzle-runner:22-trixie-slim→node:22-trixie-slim(arm64)kuzzle-runner:22→node:22-bookworm-slim,:20→node:20-bookworm-slimGLIBC_2.38 not found, uWS)No Dockerfile change is needed.
uWebSockets.js20.56.0 requires glibc 2.38 (GLIBC_2.38 not found … uws_linux_*_127.node), so Kuzzle does not load onnode:*-bookworm-slim(glibc 2.36) — a runtime image ~20 client Dockerfiles use. Trixie (2.41) is fine. To be tracked separately.🤖 Generated with Claude Code