NERSC / jupyterlab-slurm

BSD 3-Clause "New" or "Revised" License
92 stars 23 forks source link

Conflicting Dependencies: react-dom #37

Closed jhgoebbert closed 4 years ago

jhgoebbert commented 4 years ago

Hello NERSC,

thank you very much for your jupyterlab extension.

We would like to use it with our JupyterLab 1.2.1 installation, but it fails because of conflicting dependencies. This is a similar issue as https://github.com/NERSC/jupyterlab-slurm/issues/25

ValueError: "jupyterlab-slurm@1.0.2" is not compatible with the current JupyterLab Conflicting Dependencies: JupyterLabExtension Package >=16.8.4 <16.9.0>=16.0.1 <16.1.0 react-dom

You might want to change it to "react-dom": "~16.8.4", in package.json.

Best regards, Jens Henrik

krinsman commented 4 years ago

Thank you for looking into this @jhgoebbert !

I'll try to look into this before the end of the week -- I just want to double-check that everything still works after making that change to the package.json. If so, I will update the package.json and NPM package. Please feel free to ping back here again if I forget to do so by then!

krinsman commented 4 years ago

@jhgoebbert I think I can reproduce something similar to this error, even after changing to "react-dom": "~16.8.4" in package.json. Specifically I see that:

[LabBuildApp] WARNING | The extension "jupyterlab-slurm" is outdated.

when attempting to re-build JupyterLab 1.2.1 from conda-forge, and then I get an error of the form

[4/5] Linking dependencies...
error An unexpected error occurred: "ENOENT: no such file or directory, copyfile

It's actually a different package listed every time. So right now my guess is that JupyterLab-Slurm itself, or its dependencies, are not compatible with JupyterLab 1.2.1.

Indeed, I was able to reproduce your exact error once when modifying the package.json to have all of the JupyterLab dependencies be ^1.2 instead of ^1.0, and then, as you suggested, changing the field for react-dom to ~16.8.4. Although then the same failure to run jupyter lab build sometimes occurred as before, and sometimes didn't, when the values of the JupyterLab dependencies weren't incremented.

TL;DR in investigating this issue I seem to have found a Heisenbug (although the bugs are probably reproducible and my inability to reproduce only demonstrates a lack of understanding on my part), but changing to ~16.8.4. seems reasonable and seems to have helped mitigate some errors, so I will create a patch release.

@tslaton Do you think we should also make another patch release incrementing @jupyterlab/coreutils to 3.2 and @jupyterlab/filebroweser, @jupyterlab/launcher, @jupyterlab/apputils, and @jupyterlab/application to 1.2? It doesn't seem like doing this resolves the jupyter lab build errors I've been getting, and I don't know how to diagnose them, since each time it complains about a different package.

jhgoebbert commented 4 years ago

These are all extensions, which install fine. Perhaps it would be good to check what versions of standard dependencies they include:

dask-labextension@1.0.1 -> https://github.com/dask/dask-labextension/blob/master/package.json jupyterlab-lmod@0.2.0 -> https://github.com/cmd-ntrf/jupyter-lmod/blob/master/jupyterlab/package.json itkwidgets@0.22.0 -> https://github.com/InsightSoftwareConsortium/itkwidgets/blob/master/js/package.json plotlywidget@1.2.0 -> https://github.com/plotly/plotly.py/blob/master/packages/javascript/plotlywidget/package.json jupyterlab-plotly@1.2.0 -> https://github.com/plotly/plotly.py/blob/master/packages/javascript/jupyterlab-plotly/package.json

more: @jupyter-widgets/jupyterlab-manager@1.0.3 jupyterlab-datawidgets@6.2.0 @jupyterlab/latex@1.0.0 @pyviz/jupyterlab_pyviz@0.8.0 jupyter-matplotlib@0.4.2 jupyter-leaflet@0.11.4 jupyter-webrtc@0.5.0 ipyvolume@0.5.2 jupyter-threejs@2.1.1 jupyterlab-gitlab@0.3.0 jupyterlab_iframe@0.2.1 @jupyterlab/git@0.8.2 nbdime-jupyterlab@1.0.0 @ryantam626/jupyterlab_code_formatter@0.6.1 @jupyterlab/toc@1.0.1 @parente/jupyterlab-quickopen@0.3.0 @jupyter-widgets/jupyterlab-sidecar@0.4.0 jupyterlab-drawio@0.6.0 @jupyterlab/celltags@0.2.0 @krassowski/jupyterlab_go_to_definition@0.7.1 @jupyter-voila/jupyterlab-preview@0.1.3 @jupyterlab/git@0.8.2 jupyterlab-topbar-extension@0.4.0 jupyterlab-system-monitor@0.4.1 jupyterlab-theme-toggle@0.4.2 jupyterlab-logout@0.4.0

krinsman commented 4 years ago

@jhgoebbert To confirm, it is still impossible for you to install JupyterLab-slurm, correct?

And it would be correct to infer that the extensions listed above are the other extensions installed in your system?

I've looked through some of their package.json's so far and made some tentative changes but not yet committed anything to master or incremented the NPM package, not having tested them yet nor looked through all of the packages https://github.com/NERSC/jupyterlab-slurm/blob/deps/package.json

jhgoebbert commented 4 years ago

Hi krinsman, I can install jupyterlab-slurm now without problem after switching to version 1.0.3. Thanks a lot for the update.

krinsman commented 4 years ago

OK, I will close this tentatively, since hopefully the React refactor will make these build issues moot.