Skip to content
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

fooof v.1.1 not yet updated on conda forge #315

Open
TomDonoghue opened this issue Feb 18, 2024 · 7 comments
Open

fooof v.1.1 not yet updated on conda forge #315

TomDonoghue opened this issue Feb 18, 2024 · 7 comments
Labels
code / maintenance Topic related to code updates / maintenance.

Comments

@TomDonoghue
Copy link
Member

fooof v1.0.0 is available on conda-forge, but it hasn't been updated to v1.1

I'm not totally sure how the conda-forge feedstocks work, but I think it basically comes down to merging this PR:
conda-forge/fooof-feedstock#1

@ryanhammonds - do you know how this works, and know what to do to check / fix if necessary that PR, and do you have permissions to merge it if / when it's ready?

@TomDonoghue TomDonoghue added the code / maintenance Topic related to code updates / maintenance. label Feb 18, 2024
@ryanhammonds
Copy link
Contributor

I can merge it but it looks like something in the CI pipeline is failing.

I'm in favor of deprecating support for conda / conda forge. I've never used conda or understood its use case when working with python only packages.

If someone in the community wants to take over maintaining the recipe / build I can turn it over. Otherwise I'd say to use pip install fooof instead.

What are your thoughts on conda vs pip?

@TomDonoghue
Copy link
Member Author

I do use conda to manage my environments - I think it's useful to create and manage environments in the way it does dependency checking, and to be able to start with the anaconda distribution for a "everything science is ready and consistent" env. I don't really use conda-forge, though I tend to just use pip to install our packages (or others not on conda) and have environments with mixed installs. That might not be considered very good practice - I don't really know.

Overall, I don't have any strong thoughts on whether to continue to support conda-forge - I find it hard to say without really having a sense if people actually use it much.

I would suggest we try and get fooof 1.1 updated on conda-forge, since right now we list like we support, but actually it's a version behind and some stuff doesn't work. After that, we can decide whether to deprecate / not do conda-forge for specparam.

Do you have a sense of what is failing in the CI? Is it something easy to fix?

@ryanhammonds
Copy link
Contributor

Sounds good. I imagine people who try to install from conda forge do so because of the instructions on the readme. But maybe I'm underestimating how popular conda forge is.

I'm not sure what is failing tbh. You can make a PR on the feedstock repo and I can merge it. I'll look into how I can relinquish my role as maintainer of it to you.

@ryanhammonds
Copy link
Contributor

ryanhammonds commented Feb 20, 2024

I added you as a maintainer to the conda forge repo. I re-triggered the CI and the error being thrown is: ModuleNotFoundError: No module named 'matplotlib'. Seems like a test depends on matplotlib and optional-requirements.txt isn't being installed in the azure container.

@chapochn
Copy link

chapochn commented Mar 6, 2024

Just adding my 2 cents: I usually always try to install everything from conda forge. MNE gets everything from conda forge. So I would strongly support having the option of installing the last version from conda-forge

@danieltomasz
Copy link

danieltomasz commented May 8, 2024

@TomDonoghue good to serendipitously learn that the errors in my code were caused by wrong version :)
it is usually bad practice to mix pip and conda; I need conda when for projects that require specific built version of packages - I needed to do bayesian inference with pymc, arviz and bambi, when I used non-conda version of those package a inference on my computer didn't converge due to problem with C++ libraries, when I used clean conda forge install it worked fine :P
I can do pip install along those package but when pip installed package trigger update to their dependencies I might again got this error or someone else in similar situation et cetera (so far I don't have any problem with specparam from pip, but I would strongly advise to maintain conda-forge presence)

I am no specialist about conda, but if you use conda builds and pip precompiled wheels you might encounter edge cases when wheel depending on shared library from other wheel (which is not the case for specparam I think), but still you can have noticeable difference in performance of specparam library depending of blas/liblas through numpy

https://medium.com/hydroinformatics/getting-started-with-conda-environment-part-2-fc87fdd9fde8
https://www.reddit.com/r/MachineLearning/comments/13qp0s6/d_which_blas_library_to_choose_for_apple_silicon/

@danieltomasz
Copy link

danieltomasz commented May 8, 2024

Basically people who needs specific dependencies (often for more efficient computation) choose conda - think specific version of blas/openblas and support for gpu automatically installed vs manual install and compilation with pip (for example conda provide blas=*=accelerate for Mx Apple family instead of needing to build it from source via pip, there significant improvement over default when analysing EEG
https://mne.discourse.group/t/ica-slow-on-apple-silicon-arm64-mac/6579/3

EDIT: on MacOS 14 Numpy default wheels to accelerate but you see broader context now
numpy/numpy#24905

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
code / maintenance Topic related to code updates / maintenance.
Projects
None yet
Development

No branches or pull requests

4 participants