Did you search for similar issues before submitting this one?
Yes
Describe the issue you encountered:
Installing from source can be:
An example of some of the deps requiring compilation:
Expected behavior:
It would be great to package the binaries and avoid having to use a C/C++ compiler during the npm install.
Platform (Win7, 8, 10? macOS? Linux distro?):
All (but especially painful on Windows)
Brave Version:
All
Steps to reproduce:
npm installScreenshot if needed:
Any related issues:
With 2017 being the default download for Visual Studio (Community edition), I think it makes more sense to expedite this. The alternative would be rediscovering all the painful configuration steps for setup on Windows with VS2017 and documented them (see https://github.com/brave/browser-laptop/issues/8328)
@bsclifton How much effort is involve to routinely create binaries for macOS, Linux, and Windows?
@jonathansampson good question... I'm honestly not familiar enough with all the dependencies to give a ballpark. What do you think, @bbondy?
Either way, I love the idea. May help us rescue the automated tests (I think I saw one failing on account of bloom-filter/hashset recently).
@jonathansampson that is a great point- this would drastically speed up the webdriver tests 馃槃 A massive chunk of the time is spent doing npm install (which of course does the compile). Now that we have our Travis tests split, we'd see a clear improvement (since each split instance does an npm install)
Besides helping with tests, this would also make the barrier for entry (for contributors) much much lower. win / win / win 馃帀
@bsclifton with shrinkwrap we again lower our travis time used for npm i. Check linter and unit test. These two tests spent most of the time just installing things.
Before shrinkwrap:
unit: 5min 37sec
lint: 5min 29sec
https://travis-ci.org/brave/browser-laptop/builds/223343603
After shrinkwrap
unit: 2min 45sec
lint: 3min 29sec
https://travis-ci.org/brave/browser-laptop/builds/223386003
Great job on this one @diracdeltas
I'm going to move my native libs for bloom-filter-cpp, install hashset-cpp, and ad-block into muon and use them without a node JS wrapper at all on the file IO thread. Ditto serg's tracking-protection. So I think this will be solved by that once that's done. It'll also be faster since it won't have to do checks in JS calling into the native module.
Most helpful comment
I'm going to move my native libs for bloom-filter-cpp, install hashset-cpp, and ad-block into muon and use them without a node JS wrapper at all on the file IO thread. Ditto serg's tracking-protection. So I think this will be solved by that once that's done. It'll also be faster since it won't have to do checks in JS calling into the native module.