5 ms·
easiest way to get up and running w/value in the nix ecosystem is https://devenv.sh https://devenv.sh and as time goes on use escape hatches to utilise more of
by ghuntley 3y ago
easiest way to get up and running w/value in the nix ecosystem is https://devenv.sh https://devenv.sh and as time goes on use escape hatches to utilise more of nix ala https://nix.dev https://nix.dev
- toastal 3y agoDisagree. The larger selling point is Nix reproducible builds. Getting a reproducible developer environment is a start, but everything inside that “shell” is then mutable. Hiding Nix behind YAML is obscuring a tool, Nix, to make the entire build stateless—and that YAML can often be a stopping point where folks aren’t going ‘deeper’ to unlock the reproducible build part. There are things it does that are very helpful, like enabling a PostgreSQL server without much setup, but other things like forcing certain language toolsets goes a bit too far—especially when those tools are already in Nixpkgs and setting up a base devShell provisioned with a few console tools is one of the easiest things to do with Nix the language already.
- ghuntley 3y agoi agree with some of your points but differ as follows: getting an entire team or project up and running in less than 5 mins with devenv is a fanstastic introduction for folks who do not have experience with nix. devenv solves the “onboarding new developer in a couple seconds without having to learn nix” pain point. the next step there is to migrate away from only using nix shell (via devenv) and go for making ci reproducible locally once folks are more comfortable with nix/less career risk for introducing new tech. then the world is your oyster. use build2dockerImage and start creating docker images that are reproducible and use them in production.
- toastal 3y agoGetting someone up and running with a flake.nix with a defined devShell is just as simple and probably requires less knowledge since it's not another tool bolted on. Making the env and CI reproducible should be seen more like a good stepping stone and you can take the next leap when ready since it can all happen in the same flake file rather than a separate YAML one. The world is your oyster approach is skipping Docker and just running Nix on the server without the overhead of containers.
- Foxboron 3y ago> reproducible builds fwiw, NixOS does not support reproducible builds as defined by the Reproducible Builds project. They support reproducible environments/configuration/deployments or how you want to describe it.
- ghuntley 3y ago1307 out of 1331 (98.20%) reproducible https://reproducible.nixos.org/nixos-iso-gnome-runtime/ https://reproducible.nixos.org/nixos-iso-gnome-runtime/ see also https://reproducible.nixos.org/ https://reproducible.nixos.org/
- Foxboron 3y agoYes, they are testing this for a fraction of their packages. It still amounts to less testing then what distros like Guix, Debian and Arch Linux is currently doing.