-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
MRG, MAINT: Try conda-forge #8046
Conversation
If this works, I can also take the |
PyQt5 is still problematic if we don't move all packages that depend on |
One alternative we should try is a |
I don't think so -- removing the
|
No idea why those other components are from pypi... |
I don't think that's true:
|
Indeed I get that behavior with your command. If I use
Can you reproduce? If so it seems like this is one (nice) difference between |
I can try to package pyvistaqt for conda-forge tomorrow. Another issue is mayavi, since typically conda-forge only accepts released package versions, while we currently seem to depend on an unreleased development version |
I see what @larsoner sees here. |
environment.yml
Outdated
@@ -1,6 +1,7 @@ | |||
name: mne | |||
channels: | |||
- defaults | |||
- conda-forge/label/vtk_dev |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why this channel? vtk
is in conda-forge
with its latest release version 9.0.1.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, this shouldn't be needed anymore.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree it seems like it shouldn't be necessary but in practice it was necessary to get 3.8 to install
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we can try to figure out why - the fewer channels we use the less problems we will run into. Ideally, we should only use the conda-forge
channel.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Feel free to dig into it with the conda
folks, in the meantime we have been using this for the server_environment.yml
for a while so I'm happy living with it until conda
fixes it
Indeed for some reason the |
@larsoner |
environment.yml
Outdated
- neo | ||
- python-picard | ||
- PyQt5>=5.10 | ||
- PySurfer |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is available in conda-forge
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See note in the code, it's because mayavi has not released a vtk9 compatible version
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, although the versions on pip and conda are identical?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, because PySurfer depends on Mayavi, if it's in the conda section it will try to pull in a bad version that segfaults.
Because the MNE recipe depends on PySurfer, same story
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(Segfaults during install)
And while we're at it, |
So the way I typically used set up my MNE environment was, in fact, by simply doing
Obviously this doesn't work nicely anymore since the development dependencies have changed quite a bit since the last stable release, but … yeah, just wanted to share this with you. :) |
@hoechenberger this nicely outsources everything in |
I think we'd have to decide whether this shall be used for stable releases only, or also for development versions. For releases, it should be no problem. If there's any For development versions, where all the dependencies are more dynamic, things might be a bit trickier, I guess. |
What about this:
We could even try to replicate this setup with |
I like this idea. I've been wanting to create an |
We could include just the required deps as mentioned in our README ( So except for these big three ( |
FYI Mayavi will hopefully release in the next couple of weeks, see: |
dd598fb
to
eca5d12
Compare
This PR was bit by the same bug as So now we just want to decide if we want to go with |
I think that's a great idea! Let's wait until Mayavi makes a new release and let's track progress in the OpenBLAS issue, and then we should be ready to go What about my suggestion of splitting the release packages into |
@cbrnr I will create as MNE-base package before lunch today. :) |
|
Does it make sense to wait until #8009 is sorted out too? I'm wary of changing our install instructions too many times in quick succession. Perhaps that worry is more related to the suggestion of splitting off an |
I think of |
We shouldn't have to explicitly install BLAS or MKL.... there's now BLAS-based SciPy builds for Windows too |
Looks like it doesn't matter. I was trying to speed it up, but the build still appears to be 20% slower or so compared to defaults-channel items. I could add the defaults channel and move it up the priority list but combining the two seems like asking for trouble |
Yes, that's always messy |
Okay I was wrong -- the
And on this PR it's on a test that does not even show up in the
This seems like an unacceptable speed loss. And without the
So that's not the problem. And timing was similar when I forced MKL:
Until we sort out what's causing this speed loss, I don't think this is an acceptable performance price to pay for switching. |
Okay this one actually seems to be fixed. Unsetting the In theory after our recent CI tweaks this should come back happy. @cbrnr @hoechenberger are you happy with the conda-forge @agramfort @drammock do you agree we should make this move? It does simplify our |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
agreed it makes things simpler.
I guess someone should go through the install docs and make sure the new |
Awesome, let's see if @cbrnr and @hoechenberger have comments on the actual setup, then merge.
Let's wait. But from a very brief look I think we do create the |
Very nice! @hoechenberger for a minimal env based on conda-forge an |
So I personally started using Miniforge, which comes with all of this preset, and already your base env is composed of conda-forge packages: https://github.com/conda-forge/miniforge The If we're lifting the PyQt limitation now, we can also include Spyder in the environment again, and ask users to run Spyder from the MNE environment. In other news, I've discovered that Anaconda Navigator allows to create environments from an environments file entirely through the GUI; there's no need to go to the command line. So what I imagine is that we should add Spyder to the MNE environment and adjust our installation instructions for Windows and Mac such that:
While we're talking about environments: |
We could even include MNELAB! |
I use Miniconda and if you set the two lines in your config and do
Thanks, let me know if I can help!
Note that Spyder now provides standalone installers for Windows and macOS. I'd prefer these separate installs, but of course this means that you have to point Spyder to the desired conda env.
I didn't have time to participate - do you have a link to a recording? I'm fine with including MNELAB as an optional package in our env file - actually, this is a great idea to let users know that there is a GUI available. |
Okay let's get this in, then @hoechenberger @cbrnr feel free to open separate issues about whether we should add |
Sounds good to me. Thanks for your effort here, @larsoner |
* upstream/master: MRG, MAINT: Try conda-forge (mne-tools#8046) MRG, MAINT: deduplicate definition of FIFF constants (mne-tools#8537) ENH: Add realign_raw (mne-tools#8540) CI: Use 20.04 (mne-tools#8541) fix example (mne-tools#8539) MRG, VIZ, FIX: plot_sensors title and interactivity (mne-tools#8536) MRG, MAINT: Test 3.9 (mne-tools#8533)
Different approach to #7946 (just replace entirely; cc @hoechenberger ). Let's see what breaks! Locally at least I can create a seemingly-working env from this. It still only gets
qt 5.12
on Linux which is a bummer, but might be good enough.conda-forge
to update to 4.7.2pip
section