sntioudis / papreca

PAPRECA hybrid off-lattice kinetic Monte Carlo/molecular dynamics (kMC/MD) simulator
GNU General Public License v2.0
4 stars 0 forks source link

Distribution on conda? #4

Open liamhuber opened 1 month ago

liamhuber commented 1 month ago

Going through the checklist on https://github.com/openjournals/joss-reviews/issues/6714, I got to:

Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.

I'm happy to check the box, because installation instructions were clear and I didn't have any hiccups, but it got me thinking about the automated bit.

I'm a big fan of conda-forge, so what I'd ideally like to do is just conda install -c conda-forge papreca and be done. Going back to the installation docs, the only big dependency is lammps. There is already a conda package for this, which is an excellent start. Digging into the build directions, the feedstock and your instructions are extremely similar, up until -DBUILD_LIB=on DBUILD_SHARED_LIBS=off -DBUILD_STATIC_LIBS=on, which conflicts with D BUILD_LIB=ON -D BUILD_SHARED_LIBS=ON.

Nonetheless, it seems like the lammps dependency is 90% of the way to where you want it. I haven't managed a compiled-language conda feedstock (only no-arch python stuff), so I'm not sure what sort of choices there are for flags, or whether one would simply need to make a new lammps-static feedstock or something. And you'd need to follow a similar pattern for building papreca itself, but you can see in the lammps example that most of the build script complexity comes from the large number of build flags lammps has and supporting different architectures, so for linux-only papreca this is probably not too bad.

Not urgently needed, but would be nice.

jfaraudo commented 1 month ago

I also agree with @liamhuber , it will be great to have this sofware available with conda. It makes life much easier to users. I am also thinking about students, in my undergrad or summer courses it is usually not a big deal to ask people to install something from conda but doing more than that could be complicated. It is not urgent, but it will be great one day to have this possibility.