Open moorepants opened 8 years ago
I'm not sure this is a good thing. I think it should be an optional add-on (ideally done with something like https://github.com/conda/conda/issues/1696 ), but not a hard requirement. The whole point of the IPython project split-up was to decouple these things.
Yes, the decouple is fine but when it leads to backwards incompatible breaks it isn't fine. IPython 4 includes a "shim" so that import IPython.html.widgets
still works, but only if ipywidgets
is installed. The IPython 3 behavior was that import IPython.html.widgets
works and if IPython 4 is backwards compatible, then it should work there too. So the IPython 4 dependencies for pip install ipython[notebook]
and conda install ipython-notebook
should work in a backwards compatible way. Currently the conda install doesn't. I haven't checked the pip install command.
And yes, some kind of optional dependency feature in conda would be a good thing. pip has this, as noted above and it seems like a nice way to handle things like this.
pip install ipython notebook
Does not install widgets. Sorry, but this is really upstream breaking backwards compatibility. Please, by all means, complain to the IPython team. I really don't think conda should "fix" this by forcing the widgets install (but optional dependency would be OK.)
It's not upstream. If anaconda makes their IPython package have a dependency on ipywidgets, it is fixed. I'll send a message to IPython too.
Do you work for continuum or something now?
The decision to make notebook NOT explicitly depend on widgets was upstream. Continuum is only reflecting that upstream decision.
Yes, I've been with Continuum for about 2 months now.
Congrats on the new job. I just filed an issue at IPython.
Sorry to beat a dead horse, but doesn't Continuum decide what dependencies are included for the ipython-notebook
package. I'm sure you all have a look at the dependencies that IPython uses with setuptools/distutils but you are ultimately creating a new package for anaconda called ipython-notebook
that can be whatever you want. For example, if I conda install matplotlib
it installs optional dependencies as hard ones, e.g. qt, whereas if I pip install matplotlib those things are optional. I see the anaconda packages as independent of what is specified in the particular Python package's setup.py file. You all get to choose whatever you want for dependencies to make the life of anaconda users easier. And you seem to do so with other packages. You also even rename packages such that they don't match a pip installable equivalent.
FYI, the IPython folks are fixing this: https://github.com/ipython/ipython/issues/8905#issuecomment-147798570
Great, we'll follow the IPython team's lead.
WRT repackaging: yes, we can repackage things however. I think the real question here is the reasoning behind decisions like IPython's split of packages. Splitting widgets off was done for good reason. I don't know their exact reasons, but I would do such a thing to make it easier (conceptually, at the very least) to plug in some other widget framework. Decoupling things is good. If Continuum repackages things in a way different from upstream, then that leads to all kinds of headache of "who installed what", and "why is package X not installed with pip, when it is with conda?" Better to match "official" distributions for these things.
As for renaming and repackaging, my personal opinion is that this confuses things, and I hope we'll avoid that going forward. I will keep an eye out for it.
Before IPython 4.0 when
ipython-notebook
was installed the widget functionality was included. But now when I installipython-notebook
the widgets are no longer included.I think that the new ipywidgets package should be a dependency of
ipython-notebook
.