I have been thinking about being able to reproduce results easily and quickly.  As you can read in my previous post about jupyter notebooks.  They will, at least in python let you do so.  However, when attempting to reproduce entire dependencies for your software so that you can easily install on another machine there is Nix:

There are obviously other ways of managing packages, but NIX install packages within build environments so that you can isolate packages to particular projects.  Then you can easily know that you have the list of packages that are needed for reproducing your project build on another computer.  It is pretty neat, but as you may have guessed it works with linux and max os, not windows.