-
Notifications
You must be signed in to change notification settings - Fork 10
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
Document how to use "pre-built binary" gems to avoid install-time non-hermeticity #45
Comments
That's only available for certain gems like nokogiri. For pysch, we could potentially install libyaml and follow the steps in https://github.com/ruby/psych#installation to point to use it instead of system libyaml. How does other rules (node/python) handle installation that expects certain libraries in the system? |
Node.js and Python rules do a poor job of this as well. You have three choices:
Random note, the native build system used under Node.js is GYP and they considered using Bazel to implement it at one point |
Native gems are selected during installation time automatically by RubyGems. We can't really force that. Let's for now stick to option 2. |
The
psych
gem (version 5.1.1.1) fails to install on my machine, log contains:As documented here, for example
https://github.com/sparklemotion/nokogiri#native-gems-faster-more-reliable-installation
there's a way to start from a pre-compiled native gem instead. I think most Bazel users should be using this to achieve reproducible builds.
(Of course, you could also imagine a
cc_library
to build the C extension, but then we're swapping out part of the bundle installer which is a bigger project)The text was updated successfully, but these errors were encountered: