@zimoun @khinsen Not contesting the issue with SAT dep solving, but good practices would have the environment spec exported with exact package versions for later reproduction anyway, greatly limiting the SAT problem when recreating the env (mostly to a pick of OS + architecture build, if i understand correctly). One issue from my experience with recreating from such a YAML file [1] may be lack of package versions for the given target OS + arch. Another issue is old versions disappearing from the channels but this isn't specific to Conda. I don't recall the solver ever being a problem when reproducing, but I do tend to only use the same constellation of packages.
I've my own frustrations with Conda, but with the prospect of a replacement in mind, I see 3 big pros with it, mainly having to do with convenience (at least when working on a project):
1. Since it's a general package manager, one can install not just Python libraries, but also various software. In the bioinformatics world particularly, this has been an immense help to set up a working heterogeneous processing pipeline easily.
2. On the surface it behaves like a drop-in replacement for Python native environments + PyPI, making the switch quite easy, while also offering useful extras like committed environment versions that can be rolled back.
3. It's completely userspace, meaning you don't need a back-and-forth with a server admin to set it up.
I would like to find something better than Conda but limited time to experiment and learn a new system, which I'm sure is the situation for many. Guix does sound quite interesting though and is on my TODO list 😊 (I know it has some of the features I listed above).
[1] https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-from-an-environment-yml-file