Open damskii9992 opened 1 day ago
Thanks for the issue and discussion today @damskii9992 ! Indeed, this sounds like a good idea - at least for the PyPI packages.
For my own reference, here are some quick for categories and what they would imply today (in addition to numpy which is always there for convenience, since it is so ubiquitous):
Installing Ncrystal using pip does not install all of the dependencies necessary to run all the commands of Ncrystal. Users have to try and run the commands to get the errors telling them which packages they need to install in addition to Ncrystal. When users then install these packages they automatically get the newest version which might be broken in Ncrystal. In other words, users have to start debugging Ncrystal to use certain functionalities of Ncrystal.
This problem can be circumvented by having sets of optional pip dependencies with possibly pinned version numbers depending on the functionality in question. Possible suggestions for optional sets are:
plotting
(matplotlib),composer
(spglib), cif and so on. Possibly with anall
ordev
set containing all the optional dependencies.An alternative is to simply default to include all dependencies, but that might lead to bloated installations and possible dependency conflicts breaking all of Ncrystal.