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

Provide precompiled binaries instead of compiling at install time #904

Closed
sedwards2009 opened this issue Dec 28, 2021 · 1 comment
Closed
Assignees

Comments

@sedwards2009
Copy link
Collaborator

sedwards2009 commented Dec 28, 2021

This is a tracking issue.

Problem

When NodeGui is installed with npm, it will run cmake and friends to build the C++ module which connects qode to Qt's libraries. This process requires a suitable C++ compiler to be available, plus a fair bit of time, and for some people, a lot of luck. The target developers of NodeGui (people using JS/TS) are unlikely to have a C++ compiler installed and ready to go. On some platforms like Windows, installed Visual Studio Express C++ compiler is a multi-gigabyte drama.

When building projects or modules which depend on NodeGui or are plugins for NodeGui, the situation is much worse. Qode and NodeGui both perform actions in their npm packages' install and/or postinstall scripts, and NodeGui expects qode to be completely installed before it can safely build. But npm has a long history and bug tracker full of issues where install and postinstall scripts are run in a buggy and non-deterministic way, often in parallel with the package's very own dependencies. i.e. NodeGui's build step is often started before qode is finished. The situation is even worse for plugins which require qode and NodeGui to be finished before they can do any compiling of their own.

Our issue tracker here is also filling up with problems related to installation:

Proposal

Precompile the C++ module and have NodeGui download the correct binaries at install time. Pulling down extra binary files at install time is a fairly common approach, and the one which node-pre-gyp uses. qode had been doing this for a while too. This still uses npm's install script hooks, but it no longer requires dependencies to be fully installed when NodeGui's install runs. This should result in faster and a more stable installation process, while also lowering the barrier (i.e. C++ compiler needed) to just get started with NodeGui.

@sedwards2009 sedwards2009 self-assigned this Dec 28, 2021
sedwards2009 added a commit that referenced this issue Dec 29, 2021
sedwards2009 added a commit that referenced this issue Dec 29, 2021
sedwards2009 added a commit that referenced this issue Dec 30, 2021
sedwards2009 added a commit that referenced this issue Jan 1, 2022
Download prebuilt binary files at `npm install` time

issue #904
@sedwards2009
Copy link
Collaborator Author

sedwards2009 commented Jan 21, 2022

done and released in 0.45.4.

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

1 participant