lanl / dfnWorks

dfnWorks is a parallelized computational suite to generate three-dimensional discrete fracture networks (DFN) and simulate flow and transport. If you download the software please fill out our interest form to stay up to date on releases https://goo.gl/forms/VE39oKsyp4LVC6Gj2 and join our google group https://groups.google.com/d/forum/dfnworks-users . Precompiled Docker Container https://hub.docker.com/r/ees16/dfnworks
https://dfnworks.lanl.gov/
Other
73 stars 42 forks source link

Packaging of `dfnWorks` with `nix` #80

Open nialov opened 4 months ago

nialov commented 4 months ago

Hey,

This is mostly just a FYI but I have gone through the effort of packaging dfnWorks for the nix package manager (https://nixos.org/). See here for the build definitions: https://github.com/nialov/nix-extra/blob/master/overlays/packages/dfnworks/default.nix and https://github.com/nialov/nix-extra/blob/master/overlays/packages/dfnworks/pydfnworks.nix

nix provides reproducible (and cached builds) of any software. This means it is possible to always reproduce a build with nix if you for instance provide a revision of the repo with the nix build declarations. E.g.

nix build github:nialov/nix-extra/d905dc7eca43321db38ee985ea8f10ae56de9b7c#dfnworks

Anyway, if you have had trouble with e.g. reproducibility and with developers setting up their development environment, nix is a solution to these problems although it has a steep learning curve. I have not included my packaging efforts in nixpkgs (https://github.com/NixOS/nixpkgs), as I do not know dfnWorks well enough to say if the produced build result, even with examples passing (python3 driver.py for e.g. mapdfn and faults), is completely valid. Let me know if any you actual maintainers have interest in these things! Otherwise, as said at the start, this is just a FYI.