Hi, There is no free lunch. ;-)
On Wed, 22 Feb 2023 at 04:23, Kyle Andrews <[email protected]> wrote: > Honestly, I couldn't get my poor ancient laptop to > even finish compiling the inferior - much less try using that inferior > with your package-with-explicit-python. I'm just wishing that this > approach will work in the near future. So, please don't let anyone > include it yet :) Well, ’package-with-explicit-python’ traverses all the graph and can go deep; basically you might end with a world rebuild since the dependency of Python is often deep. (I let aside the inferior part that you do not need, IMHO.) The computational environment you create with Conda is totally inconsistent in regard to the Python version label. The Conda resolver works using the version label. Consider this scenario: A library X version x.y builds with Python interpreter version p.q and you are interested by library A depending on library X version x.y and also by some Python libraries and the Python interpreter version b.d, then library X is not rebuilt with Python interpreter version b.d. Somehow, Conda exploits some binary compatibility, roughly what Guix names grafts. :-) Other said, Conda is not building and then serving all the matrix of possible combinations. Somehow Conda cheats when Guix not. Well, I am not saying that cheating is not practical, instead I think that by using this kind of cheat, the reproducibility becomes harder by design because it lacks a fine control of the complete DAG. This lead to the other point… > I'm just wishing that this > approach will work in the near future. So, please don't let anyone > include it yet :) …rewrite on the fly the DAG is cheap with Guix but build it is not. :-) I agree that a similar feature as Conda where you can specify the Python version and a list of Python library, yeah this feature would help people from Conda in convincing them that Guix is more suitable. However, for most of the scientific applications I know, the version of Python is not really something pertinent – other said, that’s a fun feature but useless in practise, IMHO, just a dumb collective practise inherited from the poor Python ecosystem, and for sure it does not help for reproducing the computational environment (end of my grumbles :-)). Well, I do not know if the rebuild you are experimenting is avoidable or desirable. Maybe, it would be possible to cut the graph earlier or to avoid to walk too deeply. I do not know. Cheers, simon
