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

Add MNELAB (requires Qt 6) #82

Open
hoechenberger opened this issue Mar 15, 2022 · 13 comments
Open

Add MNELAB (requires Qt 6) #82

hoechenberger opened this issue Mar 15, 2022 · 13 comments
Labels
enhancement New feature or request

Comments

@hoechenberger
Copy link
Member

As soon as we have Qt6 on conda-forge

To keep track: conda-forge/qt-main-feedstock#14

@hoechenberger hoechenberger added the enhancement New feature or request label Mar 15, 2022
@hoechenberger hoechenberger changed the title Add MNELAB Add MNELAB (requires Qt 6) May 25, 2022
@hoechenberger
Copy link
Member Author

hoechenberger commented May 25, 2022

An update on this one:

Updating Qt/PyQt to 5.15 was a huge deal of work, so on the Spyder team we won't be looking at Qt6 for at least a year, perhaps more. And I don't know who else would be willing to do this as a paid effort, sorry.

conda-forge/qt-main-feedstock#14 (comment)

cc @cbrnr

@cbrnr
Copy link
Collaborator

cbrnr commented May 25, 2022

Yes, I saw that. 🤷‍♂️? It can be installed with pip, even in a conda env. I don't know why it is necessary to create conda packages when this is so much effort and when official binaries exist on PyPI.

@hoechenberger
Copy link
Member Author

Because the installer ships much more than just Python packages

@cbrnr
Copy link
Collaborator

cbrnr commented May 25, 2022

Yeah, it's a pity the installer can't include pip packages.

@hoechenberger
Copy link
Member Author

We can ship custom files, so we could include packages and install them via a post-install script, but it would require some fiddling.

@cbrnr
Copy link
Collaborator

cbrnr commented May 25, 2022

I think it would be worth a try. Maybe we can pip install in the post-install script?

@hoechenberger
Copy link
Member Author

hoechenberger commented May 26, 2022

I think it would be worth a try. Maybe we can pip install in the post-install script?

Yes. It's trivial to just run pip install in the post-install script, or to include a desktop shortcut / .app that opens a shell and does that thing automatically.

The problem with this is that it would require network / internet access.

To avoid this, we'd need to bundle all PyPI dependencies, drop them into a separate folder, and run something like

pip install --index-url /path/to/pypi-packages ...

To ease things, we could simply bundle all "pip requirements" in a .zip file that we include in the installer.

I'm still reluctant to do so as I believe the last time I tried to get PyQt6 working with my MNE conda environment, things got all sorts of "twisted-up" and I ran into some issues. I don't remember details though.

In any case, I won't have time to look into this for at least a couple of weeks.

@hoechenberger
Copy link
Member Author

Another approach:
Re-bundle the "pip requirements" as conda packages. We won't be able to publish those on conda-forge, but we could upload them to a custom mne channel on anaconda.org and list this package source in our construct.yaml. Then we won't have to fiddle with any post-install magic.

https://docs.conda.io/projects/conda-build/en/latest/user-guide/wheel-files.html#building-a-conda-package-from-a-wheel-file

@cbrnr
Copy link
Collaborator

cbrnr commented May 26, 2022

I don't think that pip installing those packages into a conda env will mess up anything – these are packages that only exist on PyPI. Last time I tried it worked, but I didn't test with the full environment used by the installer. But we just have to install from the installer and then pip install mnelab to know if there are any conflicts. Do we have any tests that we can run?

Re internet access, we just have to bundle the source directory and then install via pip install <mnelab-source-directory>.

@hoechenberger
Copy link
Member Author

I think converting the wheels to conda packages and then using these with the installer will save us a lot of headaches. We just need someone to volunteer and create an exhaustive list of all dependencies of MNELAB that we currently cannot ship through conda-forge. I can then create conda packages for all of them and publish them to a custom channel.

@cbrnr
Copy link
Collaborator

cbrnr commented May 26, 2022

I can do that. The dependencies that are not available on conda-forge are PySide6, which itself requires PySide6-Addons, PySide6-Essentials, and shiboken6. That's it.

@hoechenberger
Copy link
Member Author

Qt6 and PySide6 are now part of conda-forge (PySide6 is being built as we speak)

Once it's landed for all platforms, we can try to revive the MNELAB feedstock.

See https://anaconda.org/conda-forge/pyside6

@cbrnr
Copy link
Collaborator

cbrnr commented Oct 19, 2022

Meanwhile, there is another problem that needs to be fixed first. Matplotlib doesn't work with the PySide6 backend, which MNELAB requires. They have already fixed it (matplotlib/matplotlib#24158), but we are waiting for a new release. Therefore, it's maybe best to wait for Matplotlib v3.6.2.

cbrnr/mnelab#362

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants