-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
conda/conda-forge #2
Comments
I found https://pixi.sh to be the best way to get a reproducible environment based on the conda-forge package ecosystem. It is a relatively new package manager (released in summer last year), but it is developed by some of the same people that are also behind mamba and it works pretty well already. I just have some issues with the way conda-forge generally handles packages, e.g. that it is impossible to test them due to install-time dependency resolution. |
could you elaborate more? AFAIK other distributions (debian, pip) all have "install-time dependency resolution" since there are always "choices". FWIW we do test (unittests) conda builds of datalad etc in conda-forge. |
So there is this software https://github.com/Open-MSS/MSS that I contribute to a bit. It had a release in October 2023. At that time Then in December 2023 The best thing we can do is regularly install the package in a fresh environment and test that it still works. But, to my knowledge, there is no way to prevent such breakage of the package as distributed by conda-forge. This means conda-forge packages are effectively untestable. I've ranted a bit about this as I discovered it here: conda-forge/mss-feedstock#162 The fix to this problem is to make dependency resolution purely a build-time step. If a packages dependencies change in any way then this can affect the behaviour of the package, so it must be rebuilt and re-tested, before this new version of the package can be distributed. This is what https://nixos.org/ and https://guix.gnu.org/ do. Following this model there are no choices to be made at install-time. Any difference in the "inputs" to a package (and that could just be using a different compiler flag to compile a dependency of a dependency) would lead to a different build result because, well, it could behave differently. Nix calls this "purely functional package management", and its approach is described in more detail here: https://nixos.org/guides/how-nix-works/. |
Responses/hints got so far on gitter (thanks!)
@bollwyvl
@jaimergp
The text was updated successfully, but these errors were encountered: