3 ms·
Tbh, you'd need a lot more than just the code to reproduce results today. Last year I spent a couple of weeks getting some academic code to work, due to depende
by TrackerFF 4y ago
Tbh, you'd need a lot more than just the code to reproduce results today. Last year I spent a couple of weeks getting some academic code to work, due to dependency issues. Rolling back drivers, rolling back libraries, trying specific combinations of drivers and library versions, and what have you. How fast the code ran also depended on the various combinations.
The code was not ancient, but written 12 months prior to me trying to build it. (Deep Learning project)
- adgjlsfhk1 4y agoThis is one of the places that IMO Julia really shines. It uses a combination of a Project.toml to track dependencies and a Manifest.toml that tracks all the versions of the entire dependency tree which makes it trivial to install all of the package versions.
- msla 4y agoEven that isn't sufficient for archival purposes, which an academic journal should be aiming for.
- rsfern 4y agoWhat is missing? Is this confined to the software environment, or also covering like data accessibility and workflow documentation? Asking as a scientist interested in reproducible research. Julia has been so much better than python at least in terms of dependency hell, but I still rely on some python packages through PyCall and I feel like that isn’t handled as nicely as Pkg.jl…
- msla 4y agoJust having references to the packages isn't enough, you also need the source code of the packages themselves.
- ChrisRackauckas 4y agoIt contains a reference to source code in the package server that is disconnected from the package author so it's retrievable in the event of a left-pad-like event. This is what's queried upon download in order to ensure that no funny business could lead to a security threat down the line either. It's kept on the package servers as an immutable source of truth referenced by the UUID and SHA.
- adgjlsfhk1 4y agothat all works. The package manager tracks source code for every version of every package.