Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prebuilds break when two Electron majors share the same ABI version #309

Open
Prinzhorn opened this issue Sep 7, 2023 · 4 comments
Open

Comments

@Prinzhorn
Copy link

Prinzhorn commented Sep 7, 2023

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

@lovell
Copy link
Member

lovell commented Sep 18, 2023

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.

@vweevers
Copy link
Member

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.

@lovell
Copy link
Member

lovell commented Sep 19, 2023

@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.

@Prinzhorn
Copy link
Author

@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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants