-
Notifications
You must be signed in to change notification settings - Fork 14
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
update readme with contributing instructions #139
Conversation
General development comment: |
Yes we are still using that container for all the non-python dependencies. But we are always going to need containers if we have non-python dependencies (unless we re-implement things in python), so no easy way around that.. |
however one thing we can do to simplify python dependencies is to specify python dependencies on a rule-by-rule basis, instead of for the entire workflow. Conventionally with snakemake would use conda envs for that, but we haven't been doing that because conda isn't supported on graham. There is now a virtualenv alternative for this with https://github.com/pvandyken/snakeboost so that is something we can start to do in the future.. Probably could just have a couple of different envs, one for nnunet, and one for everything else (nilearn,nibabel,pandas etc) |
Re: venvs for rules, I'm not sure that would be much simpler, but maybe. I'm also still running into a bug in installation: In my mind, it might be simpler for developers to work inside of a |
Rule-based venvs would be simpler in that the workflow would create them automatically and have them defined, instead of having them all in the pyproject toml file.. E.g. if all the rules had venvs/condaenvs then the only python dependencies hippunfold would have is snakebids+snakemake, instead of the long list of dependencies..
Ah the location of those folders is customizable with
Yes having a singularity-based development environment would work too, if the developer doesn't need to update project dependencies, since the containers are read-only (unless a sandbox is used).. Could be done with the current docker://khanlab/hippunfold:latest containers (all the python dependencies are installed there), we just don't have instructions for how to do that (those instructions maybe could be as easy as just singularity shell, and working with a cloned repository). I haven't been doing that because of the large weight of the containers.. My preferred development environment now (on a local machine) is just to clone the repo, poetry install, and then ready to go (not much different from earlier with clone, then pip install -e). I use snakemake profiles to avoid the need to re-download containers (ie to set the singularity folder implicitly). |
Yeah makes sense. I have things working on graham so I can continue testing stuff there. Still having problems executing with poetry, but I'm fine to leave it for now and maybe if I do want to do some local testing I'll try it out inside a singularity container. At some point we should add these notes to the readthedocs too. We could stick to just containerized version for the installation page and then maybe add a page for contributors? |
Yeah the instructions for contributors will be a separate section from the install instructions (which remain the same). Right now this PR is updating the readme, which gets loaded into the readthedocs main page, before merging this in I'll update the instructions and perhaps move them to a separate contributors page. |
I'm still having problems with poetry install. In a clean environment, with poetry installed, A few other notes: |
@jordandekraker have a look at the readme instructions now and let me know if you're still having problems, especially with the workflow.basedir |
We should also update the enumerated steps in the readme (I think still referring to niftynet), and maybe replace the figure with the one from the preprint.. Will try to do this tomorrow if I have a chance |
Agreed, this is much clearer and working for me now! Yeah I was thinking of updating the workflow summary too. Would be nice to add in some surfaces including the DG as well now that we have it! I also thought we should include a hyperlink to readthedocs, since it seems not everybody notices the badge. |
yes agreed! |
copied from snakebids