prebuild / prebuild

A command line tool for easily doing prebuilds for multiple version of node on a specific platform

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Prebuilds break when two Electron majors share the same ABI version

Prinzhorn opened this issue · comments

It appears that using the ABI version to match Electron versions to prebuilds is fundamentally broken? Every time two Electron major releases share the same ABI (10/11, 13/14 and 25/26) things break. Maybe it's time to ditch the ABI version for Electron prebuilds and always use the Electron version as identifier? Because after all Electron consists of more than just Node.js and it can break in other funny ways. Or am I misinterpreting this? It also appears that the native modules can work but they can also crash at runtime, making it way worse.

#275
serialport/node-serialport#2191
WiseLibs/better-sqlite3#1044
WiseLibs/better-sqlite3#694

Does serialport still suffer from this? My understanding was that it now provides only prebuilt binaries for Node-API, which should work across multiple major versions of Electron and Node.js.

My understanding was that it now provides only prebuilt binaries for Node-API

@lovell In addition, they moved from prebuild to prebuildify quite a while ago.

@Prinzhorn It looks like better-sqlite3 is already considering a migration to Node-API and I highly recommend this approach as its API/ABI stability removes an entire class of error and reduces support overhead. There is some basic conversion tooling to partially convert source files.

@lovell thanks, I've posted this on the better-sqlite3 tracker to make them aware. I personally am not familiar with the whole native addon stack