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

Fix build on alpine-arm64, actually resolves #180 #195

Merged
merged 1 commit into from
Nov 14, 2023
Merged

Conversation

zotanmew
Copy link
Contributor

@zotanmew zotanmew commented Nov 4, 2023

I'd highly recommend releasing this as soon as possible, this is breaking arm64 docker images, presumably not just for me :)

@uhop uhop self-assigned this Nov 4, 2023
@uhop uhop added the bug A reported bug. label Nov 4, 2023
@zotanmew
Copy link
Contributor Author

zotanmew commented Nov 4, 2023

The failing CI checks are strange. I just ran exactly the same actions on my branch and they all passed o.O (ref: https://github.com/zotanmew/node-re2/actions/runs/6757292988/)

@uhop
Copy link
Owner

uhop commented Nov 7, 2023

Don't despair — sometimes (well, frequently) Github CI fails for no discernable reasons. I'll re-run the test.

@uhop
Copy link
Owner

uhop commented Nov 7, 2023

Hmm, nope, it is reproducible. Apparently, a MacOS runner for Node 21 has no distutils.

@uhop
Copy link
Owner

uhop commented Nov 7, 2023

Welcome to the beautiful world of Node extensions, where I spent 99% of my time wrangling setup files instead of coding.

gyp info find Python using Python version 3.12.0 found at "/usr/local/bin/python3"

From https://docs.python.org/3/whatsnew/3.12.html

Python 3.12 is the latest stable release of the Python programming language, with a mix of changes to the language and the standard library. The library changes focus on cleaning up deprecated APIs, usability, and correctness. Of note, the distutils package has been removed from the standard library.

Obviously, I don't use distutils but apparently the dependencies (gyp?) do. The whole system is very brittle and that's why I was heartbroken when the maintainers of google/re2 decided to use absail for no apparent reason increasing the dependencies and greatly expanding the surface of "what can/will go wrong".

I suggest waiting for node-gyp or gyp to fix it — it is not like my code broke it. The change has broken all Node extensions.

PS: I kinda thinking of creating a project based on Node-API or even WASM to avoid the dependency compatibility hell. Not sure it'll help. :-(

PPS: I hope now people understand why supporting more architectures is not trivial.

@zotanmew
Copy link
Contributor Author

zotanmew commented Nov 7, 2023

Very strange. It runs successfully on my branch 🥴 https://github.com/zotanmew/node-re2/actions/runs/6757292988

@uhop
Copy link
Owner

uhop commented Nov 14, 2023

It still fails, but worked for me in a separate brunch. Merging...

@uhop uhop merged commit 53d83d1 into uhop:master Nov 14, 2023
0 of 9 checks passed
@viceice
Copy link

viceice commented Nov 14, 2023

Welcome to the beautiful world of Node extensions, where I spent 99% of my time wrangling setup files instead of coding.

gyp info find Python using Python version 3.12.0 found at "/usr/local/bin/python3"

From https://docs.python.org/3/whatsnew/3.12.html

Python 3.12 is the latest stable release of the Python programming language, with a mix of changes to the language and the standard library. The library changes focus on cleaning up deprecated APIs, usability, and correctness. Of note, the distutils package has been removed from the standard library.

Obviously, I don't use distutils but apparently the dependencies (gyp?) do. The whole system is very brittle and that's why I was heartbroken when the maintainers of google/re2 decided to use absail for no apparent reason increasing the dependencies and greatly expanding the surface of "what can/will go wrong".

I suggest waiting for node-gyp or gyp to fix it — it is not like my code broke it. The change has broken all Node extensions.

PS: I kinda thinking of creating a project based on Node-API or even WASM to avoid the dependency compatibility hell. Not sure it'll help. :-(

PPS: I hope now people understand why supporting more architectures is not trivial.

a wasm version would be great, you would only need one build for different node versions and architectures. ❤️

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

Successfully merging this pull request may close these issues.

3 participants