-
Notifications
You must be signed in to change notification settings - Fork 82
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
Explore nix as conda alternative #95
Comments
thanks for working on this! i could see nix being a good option for managing dependencies, just have these concerns
|
thanks for the input. I also think conda is much more popular at the moment and will remain of course the main provider for srbench, especially since nix does not support windows. however, in terms of robustness and customization, there are some good arguments in favor of nix. now that we use mamba things are not so bad anymore but some issues still remain (for example, due to the gcc issue, operon will have to switch to clang-13). I suspect that as the srbench conda env grows things will start to break.
That's strange, I have nix-2.7.0 installed on Ubuntu 20.04.4 LTS x86_64 and it works like a charm. It's important to install it directly from the source (not apt or conda versions since those are old/broken). |
Let me add my two cents from the experience I had with srbench recently:
Some solutions include:
Nix will go along this solution but without wasting additional resources. The cons are:
Maybe we can go with an intermediate solution by asking competitors to optionally provide a |
All good points @folivetti. I think you should both take a look at the Competition2022 branch, where competitors DO live in separate envs. I was hoping to eventually move the main repo there. Basically, there is a base srbench env that is then updated separately by each method. conda envs can be stacked by activating them sequentially with a flag (something like The same goes for the docker file - we would have to have separate containers per method, maybe in a docker compose file. We really SHOULD have isolation between methods, even if it may create slight differences in versioning for the evaluation routine. @foolnotion re nix installation, i just tried on my new laptop with ubuntu 20.04 and it installed easily. So, maybe it's just an issue with my old one :) |
Didn't know about the I'm going to look at the Competition2022 branch (should have done that some time ago 😶 ) |
Hi,
Since this issue does not require other changes in this repo except for
flake.nix
, I took the liberty of working with thedev
branch.This allows nix to be used as an alternative to conda, with a bunch of advantages:
nix develop
)pyoperon
pull their own dependencies automatically (no need to keep adding things to an environment file)flake.lock
files can fix versions/revisionsThis is obviously a low priority issue right now, but I've been using it to deploy srbench/operon without conda.
My frustration with conda began with not being able to add
gcc/gxx-11.2.0
to the environment.This issue is meant to track integration of other frameworks with nix. So far I have also integrated FEAT and Ellyn (wip). Other frameworks should be easily integrated as long as they use standard packaging.
There are some aspects that will need attention from other authors:
FEAT:
setup.py
seems to be really tailored for conda environments, it took some tricks with setting ENV vars to get it to workEllyn
setup.py
hardcoded for Conda, does not work withnix
(I will try to patch it)Best,
Bogdan
The text was updated successfully, but these errors were encountered: