3 ms·
I've always agreed in principal, but fell short in practice until I started using Nix[1]. Nix makes it significantly easier to pull off by verifying the hashes
by smilliken 7y ago
I've always agreed in principal, but fell short in practice until I started using Nix[1]. Nix makes it significantly easier to pull off by verifying the hashes of all inputs, eliminating non-determinism in builds (timestamps, usernames, etc), eliminating dependencies on OS packages/files/etc, and allowing you to pin to a specific snapshot of all packages. Pardon the evangelism, I'm just a happy user.
[1] https://nixos.org/nix/ https://nixos.org/nix/
- corrigible 7y agoI'm setting up a new laptop next week, mostly for Go/Python dev, zero front-end requirements... What's your workflow on Nix like?
- GlennS 7y agoI like to combine Nix with direnv (and direnv-mode for Emacs - there are also similar plugins for most other editors). Then you can `cd` into your directory and your environment appears. The downsides are that there is a steep and long learning curve, and that your colleagues will not understand what you've done. I also use NixOps to actually deploy my code at the moment, but I will probably be switching to Terraform shortly as I need some tools like AWS autoscaling groups, which NixOps doesn't support. These are probably helpful: https://nixos.wiki/wiki/Development_environment_with_nix-shell https://nixos.wiki/wiki/Development_environment_with_nix-she... https://github.com/direnv/direnv/wiki/Nix https://github.com/direnv/direnv/wiki/Nix https://nixos.org/nixpkgs/manual/#sec-language-go https://nixos.org/nixpkgs/manual/#sec-language-go https://nixos.org/nixpkgs/manual/#python https://nixos.org/nixpkgs/manual/#python
- corrigible 7y agoThanks! Just received the laptop and have allocated some resources to learning Nix :)