Hacker News new | ask | show | jobs
by necrophcodr 954 days ago
> While recording the versions of all packages used is a step in the right direction, an even more comprehensive solution is to package up the entire environment using something like Docker, or to use online computation, such as Google’s colaboratory notebooks.

An even better way would be to describe the environment using Guix with channels or something similar accompanying the code, or a Nix flake or any similar environment descriptions with fully fixed dependency chains. Docker can be _forced_ to use a fixed version, but any `apt update` will ruin that completely, and both Nix and Guix are tools that on top of providing these environments for executing code with the same set and versions of tools, also provide the ability to generate container images that can be shared.