Skip to content

webio-jupyterlab-provider broken with JupyterLab v4 #514

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

Open
baumgold opened this issue Jan 24, 2024 · 17 comments · May be fixed by #498
Open

webio-jupyterlab-provider broken with JupyterLab v4 #514

baumgold opened this issue Jan 24, 2024 · 17 comments · May be fixed by #498

Comments

@baumgold
Copy link

The bug

It appears that the webio-jupyterlab-provider extension is incompatible with JupyterLab v4.0.8

Context

When I upgraded to JupyterLab v4.0.8 the webio-jupyterlab-provider stopped working (notice the "X"):

$ jupyter labextension list
JupyterLab v4.0.8
~/miniconda3/share/jupyter/labextensions
        webio-jupyterlab-provider v0.1.0 enabled  X (python, webio_jupyter_extension)
        @jupyter-widgets/jupyterlab-manager v5.0.9 enabled OK (python, jupyterlab_widgets)
        @jupyter-notebook/lab-extension v7.0.6 enabled OK


   The following extensions are outdated:
        webio-jupyterlab-provider

   Consider checking if an update is available for these packages.

After I downgraded back to JupyterLab v3.6.7 the extension started working again (notice the "OK"):

JupyterLab v3.6.7
~/miniconda3/share/jupyter/labextensions
        webio-jupyterlab-provider v0.1.0 enabled OK (python, webio_jupyter_extension)
        @jupyter-widgets/jupyterlab-manager v5.0.9 enabled OK (python, jupyterlab_widgets)

Julia info:

julia> Pkg.status("WebIO")
Status `~/.julia/environments/v1.10/Project.toml`
  [0f1e0344] WebIO v0.8.21

julia> versioninfo()
Julia Version 1.10.0
Commit 3120989f39b (2023-12-25 18:01 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 48 × Intel(R) Xeon(R) Gold 6136 CPU @ 3.00GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, skylake-avx512)
  Threads: 5 on 48 virtual cores
Environment:
  JULIA_NUM_THREADS = 4
@andrew-at-rotor
Copy link

I experienced the same thing with jupyterlab v4 and julia 1.9.3. After downgrading to jupyterlab 3.6.7, I see that the extension is "OK" but see

The WebIO Jupyter extension was not detected

when using PlotlyJS in the REPL.

Do you see this error with using julia 1.10?

@baumgold
Copy link
Author

baumgold commented Feb 2, 2024

@andrew-at-rotor - I somehow managed to get my system into the same state as you. Julia v1.10 with WebIO v0.8.21 and JupyterLab v3.6.7. jupyter labextension list says the webio-jupyterlab-provider is 'enabled OK' but when I try to use it from Jupyterlab notebook I get:

WebIO not detected.

Please read [the troubleshooting guide](https://juliagizmos.github.io/WebIO.jl/latest/troubleshooting/not-detected/) for more information on how to resolve this issue.

https://juliagizmos.github.io/WebIO.jl/latest/troubleshooting/not-detected/

It's unclear to me what part of my system is problematic.

@archisman-panigrahi
Copy link

I came across this issue in Arch Linux. As workaround is to use the package jupyter-nbclassic, with which this package is compatible.

@kdheepak
Copy link

kdheepak commented Mar 2, 2024

There's a number of breaking changes in Jupyter Lab 4.

https://jupyterlab.readthedocs.io/en/latest/extension/extension_migration.html#api-breaking-changes

When I open the console I get these errors:

image
image

This particular error might be easy to fix (based on https://discourse.jupyter.org/t/model-metadata-get-is-not-a-function/19758):

the API has changed in this respect between jlab 3 and 4

you should now use model.getMetadata()
as well as similarly setMetadata() and deleteMetadata()

But I'm not sure how many more breaking changes are there.

I naively tried to run the upgrade extension to start working on a PR but got different errors in every folder.

https://jupyterlab.readthedocs.io/en/latest/extension/extension_migration.html#upgrading-extension-using-the-upgrade-script

I can try to help with this change to get it working, but I don't have any experience in jupyter lab extensions. Can anyone offer some direction on how to go about this?

@kdheepak
Copy link

I wanted to give a friendly bump on this thread. Currently no widgets work in jupyter v4 e.g. JuliaGizmos/Interact.jl#421

I have some time I can put toward looking into this this week, but I'm coming in with no knowledge of jupyter widgets or even observables. If someone can offer some insight that'd be great!

@paulnakroshis
Copy link

This is my biggest issue with Jupyterlab --- no working widgets. I am using the jupyterlab-desktop app and If I try to make a plot with a slider, the plot displays but without a slider. This is why I end up using Pluto notebooks when I need this capability. Does ANYONE know if a fix is in the works? This is a hugely useful feature to have....

@gmantegna
Copy link

@twavv @rdeits @shashi bumping this issue again. With the latest jupyter lab (4.2.4), WebIO (0.8.21), and webio-jupyterlab-provider (0.1.0), running on an ARM Mac, webio-jupyterlab-provider does not seem to install properly (see attached output from "jupyter labextension list"), and attempting to make a plot with PlotlyJS results in an error, "WebIO not detected" (see other attachment for full error). Are there any WebIO developers available to fix this? Alternatively, I am confident coding in Julia and Python but not JavaScript or anything like that, so if someone can point me to where the likely issue is I am happy to take a look at fixing it myself, but I am not experienced enough with this package to be able to diagnose the issue on my own. This is quite a major issue as it means extensions such as Plotly are not compatible with any of the latest versions of Jupyter notebook/lab, so I'd love to help fix if I can.

@dlakelan
Copy link

Also hitting this. I have a collaborator and I wanted him to be able to slide some sliders and see how it moves a point cloud around (to get some parameters into a good initial condition for running an optimization). He sees the plot but not the sliders (in an Interact.jl based script utilizing WebIO under the hood.)

@halleysfifthinc halleysfifthinc linked a pull request Nov 27, 2024 that will close this issue
@halleysfifthinc
Copy link
Contributor

I've just updated PR #498, which updates the Jupyter extension for JupyterLab v4. You can test the updated extension by downloading the artifact from CI. Leave a comment on the PR if it works for you.

@jlumpe
Copy link
Contributor

jlumpe commented Dec 5, 2024

@halleysfifthinc thanks, works great for me in Jupyterlab 4.0.10 with PlotlyJS.

@gmantegna
Copy link

gmantegna commented Dec 12, 2024 via email

@danifr
Copy link

danifr commented Feb 26, 2025

Hi @halleysfifthinc, thanks for your fix. Unfortunately I could not test it because the artifact expired, could you please run the GH workflow again? or alternatively, do you have the plugin with your patch included published somewhere else? Thanks a lot

@cristiansinaloa
Copy link

@halleysfifthinc Any update on if this was fixed/merged into WebIO? I still can't use widgets with jupyterlab. I would really appreciate a notice when this fix gets fixed. Being able to use widgets in Jupyter with Julia is a game changer. Thank you again for all your hard work.

Also, it seems like Interact.jl is not being maintained. Does anyone know if that project is still active or has a maintainer?

@halleysfifthinc
Copy link
Contributor

My PR hasn't been merged yet; I just bumped it again and re-triggered CI. A new artifact can be found on the CI page, and I also made a release on my fork to attach the CI artifact in case it is a while longer before my PR is merged.

@gizmo1-11
Copy link

I have a jupyterhub/jupyterlab-installation created with mamba (miniforge3) and the same problem with webio-jupyterlab-provider (0.1.0) "WebIO not detected".
I have absolutly no idea how to install the release 0.2.0 from halleysfifthincs fork.
Can someone give me some help ?

@danifr
Copy link

danifr commented Apr 17, 2025

Hi @gizmo1-11, download the extension-artifacts.zip from https://github.com/halleysfifthinc/WebIO.jl/releases/tag/extension-0.2.0

unzip it and then install it with pip install webio_jupyter_extension-0.2.0-py3-none-any.whl

@gizmo1-11
Copy link

@danifr thanks !, that was fast and easy.
Unfortunately I still get the error "The WebIO Jupyter extension was not detected",
when I try examples for the julia-kernel and PlotlyJS.

The cmd "jupyter labextension list" shows

webio-jupyterlab-provider v0.2.0 enabled OK (python, webio_jupyter_extension)

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

Successfully merging a pull request may close this issue.