-
Notifications
You must be signed in to change notification settings - Fork 521
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
Support pre-fetched deps for nix. #2403
Conversation
This is useful when developing, which is the main place |
@tsloughter Nix is pure, immutable package manager, so it build every binaries with very deterministic way. It pre-fetches dependencies (nix community have developed functions that emulates what packages managers like npm, gem, hex does) and verifies checksum, and then disable internet access during actual build process. And it works really well and built binaries are bit-wise same for every machine. But it means that rebar3 dependencies should be pre-fetched into _build and it is not downloadable if deleted during |
Leaving the stuff that is in _build/default causes issues for non-nix users whenever we change compiler modules and run a re-build, as the project in the process of re-building itself starts loading older compiler module versions and crashing. I added that line to specifically address this workflow, since bootstrap cleaning saved us quite a few issues and our users a bunch of unexpected deep dives. This caused a spate of issues for everyone else who builds from regular OSes when we moved from 3.13.x to 3.14 pre-releases because they expected the process to be clean. There's no proper way to resolve this issue in a way that makes everyone happy. |
I was going to suggest a |
Was about to pitch in to suggest an OS var too |
It might make more sense to actually just drop the |
True. |
@ferd Agree. |
PR is changed to just drop |
Downloading dependencies during build is not possible in some environments like nix.
Nix pre-download all the deps into
_build/default/lib
and disable internet access during build.So,
_build/default/lib
shouldn't be deleted at startup.