jdaviz
jdaviz copied to clipboard
[BUG] jdaviz + jupyterlab seem to make pip hang on linux
- [ ] Revert https://github.com/spacetelescope/jdaviz/pull/2269
Jdaviz component
Other (explain in Description below)
Description
I've tested this now in a few different linuxes, and it seems reproducible. Specifically I have tried:
- Arch Linux (rolling release, latest) Python 3.11
- Ubuntu 22.04 Python 3.10 (the standard python in 22.04)
- Ubuntu 22.04 Python 3.11 (from the deadsnakes ppa)
On any of those, if I pip install jupyterlab jdaviz <any other packages> pip basically just runs for a looooong time without ever finishing. I haven't had the patience to wait it out but in all cases it is >10 min, which is way longer than pip normally takes. If I remove either the jdaviz or the jupyterlab dep it finishes in less than a minute (excluding download time).
In all cases it seems like it's struggling to find a compatible version of dependencies. In the two py3.11 cases, pip downloads all the versions of notebook from the latest down to 4.0.0 before finally building from source on 4.0.0. For 3.10 the same seem to happen but for jupyterlab. So even if I left it to finish this wouldn't work because these versions of notebook/jupyterlab are too old.
How to Reproduce
pip install jupyterlab jdaviz- Wait an unbounded amount of time until patience is lost
Too many things going on during install for the log to be obvious. When I did pip install jupyterlab jdaviz --no-cache-dir, this is the order I saw:
Feast your eyes
Collecting jupyterlab Downloading jupyterlab-4.0.2-py3-none-any.whl (9.2 MB)Collecting jdaviz Downloading jdaviz-3.5.0-py3-none-any.whl (692 kB)
Collecting async-lru>=1.0.0 (from jupyterlab) Downloading async_lru-2.0.2-py3-none-any.whl (5.7 kB)
Collecting ipykernel (from jupyterlab) Downloading ipykernel-6.23.3-py3-none-any.whl (152 kB)
Collecting jinja2>=3.0.3 (from jupyterlab) Downloading Jinja2-3.1.2-py3-none-any.whl (133 kB)
Collecting jupyter-core (from jupyterlab) Downloading jupyter_core-5.3.1-py3-none-any.whl (93 kB)
Collecting jupyter-lsp>=2.0.0 (from jupyterlab) Downloading jupyter_lsp-2.2.0-py3-none-any.whl (65 kB)
Collecting jupyter-server<3,>=2.4.0 (from jupyterlab) Downloading jupyter_server-2.7.0-py3-none-any.whl (375 kB)
Collecting jupyterlab-server<3,>=2.19.0 (from jupyterlab) Downloading jupyterlab_server-2.23.0-py3-none-any.whl (57 kB)
Collecting notebook-shim>=0.2 (from jupyterlab) Downloading notebook_shim-0.2.3-py3-none-any.whl (13 kB)
Collecting packaging (from jupyterlab) Downloading packaging-23.1-py3-none-any.whl (48 kB)
Collecting tornado>=6.2.0 (from jupyterlab) Downloading tornado-6.3.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (426 kB)
Collecting traitlets (from jupyterlab) Downloading traitlets-5.9.0-py3-none-any.whl (117 kB)
Collecting astropy>=4.3 (from jdaviz) Downloading astropy-5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.3 MB)
Collecting matplotlib (from jdaviz) Downloading matplotlib-3.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.6 MB)
Collecting bqplot>=0.12.37 (from jdaviz) Downloading bqplot-0.12.39-py2.py3-none-any.whl (1.2 MB)
Collecting bqplot-image-gl>=1.4.11 (from jdaviz) Downloading bqplot_image_gl-1.4.11-py2.py3-none-any.whl (532 kB)
Collecting glue-core!=1.10,!=1.9.0,>=1.6.0 (from jdaviz) Downloading glue_core-1.12.0-py3-none-any.whl (1.5 MB)
Collecting glue-jupyter>=0.15.0 (from jdaviz) Downloading glue_jupyter-0.17.0-py3-none-any.whl (118 kB)
Collecting echo>=0.5.0 (from jdaviz) Downloading echo-0.8.0-py3-none-any.whl (28 kB)
Collecting ipyvue>=1.6 (from jdaviz) Downloading ipyvue-1.9.2-py2.py3-none-any.whl (2.7 MB)
Collecting ipyvuetify>=1.7.0 (from jdaviz) Downloading ipyvuetify-1.8.10-py2.py3-none-any.whl (11.7 MB)
Collecting ipysplitpanes>=0.1.0 (from jdaviz) Downloading ipysplitpanes-0.2.0-py2.py3-none-any.whl (270 kB)
Collecting ipygoldenlayout>=0.3.0 (from jdaviz) Downloading ipygoldenlayout-0.4.0-py2.py3-none-any.whl (930 kB)
Collecting ipywidgets>=8.0.6 (from jdaviz) Downloading ipywidgets-8.0.6-py3-none-any.whl (138 kB)
Collecting voila>=0.4 (from jdaviz) Downloading voila-0.4.1-py3-none-any.whl (5.5 MB)
Collecting pyyaml>=5.4.1 (from jdaviz) Downloading PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (757 kB)
Collecting specutils>=1.9 (from jdaviz) Downloading specutils-1.11.0-py3-none-any.whl (203 kB)
Collecting specreduce<1.4.0,>=1.3.0 (from jdaviz) Downloading specreduce-1.3.0-py3-none-any.whl (39 kB)
Collecting photutils>=1.4 (from jdaviz) Downloading photutils-1.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (869 kB)
Collecting glue-astronomy>=0.7 (from jdaviz) Downloading glue_astronomy-0.10.0-py3-none-any.whl (38 kB)
Collecting asteval>=0.9.23 (from jdaviz) Downloading asteval-0.9.30-py3-none-any.whl (19 kB)
Collecting idna (from jdaviz) Downloading idna-3.4-py3-none-any.whl (61 kB)
Collecting vispy>=0.6.5 (from jdaviz) Downloading vispy-0.13.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB)
Collecting asdf>=2.14.3 (from jdaviz) Downloading asdf-2.15.0-py3-none-any.whl (431 kB)
Collecting stdatamodels>=1.3 (from jdaviz) Downloading stdatamodels-1.6.0-py3-none-any.whl (299 kB)
Collecting gwcs>=0.16.1 (from jdaviz) Downloading gwcs-0.18.3-py3-none-any.whl (108 kB)
Collecting regions>=0.6 (from jdaviz) Downloading regions-0.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (722 kB)
Collecting scikit-image (from jdaviz) Downloading scikit_image-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.7 MB)
Collecting sidecar>=0.5.2 (from jdaviz) Downloading sidecar-0.5.2-py3-none-any.whl (63 kB)
Collecting ipypopout>=0.0.11 (from jdaviz) Downloading ipypopout-1.0.0-py2.py3-none-any.whl (6.0 kB)
Collecting astroquery (from jdaviz) Downloading astroquery-0.4.6-py3-none-any.whl (4.5 MB)
Collecting asdf-standard>=1.0.1 (from asdf>=2.14.3->jdaviz) Downloading asdf_standard-1.0.3-py3-none-any.whl (71 kB)
Collecting asdf-transform-schemas>=0.3 (from asdf>=2.14.3->jdaviz) Downloading asdf_transform_schemas-0.3.0-py3-none-any.whl (195 kB)
Collecting asdf-unit-schemas>=0.1 (from asdf>=2.14.3->jdaviz) Downloading asdf_unit_schemas-0.1.0-py3-none-any.whl (11 kB)
Collecting importlib-metadata>=4.11.4 (from asdf>=2.14.3->jdaviz) Downloading importlib_metadata-6.7.0-py3-none-any.whl (22 kB)
Collecting jmespath>=0.6.2 (from asdf>=2.14.3->jdaviz) Downloading jmespath-1.0.1-py3-none-any.whl (20 kB)
Collecting jsonschema<4.18,>=4.0.1 (from asdf>=2.14.3->jdaviz) Downloading jsonschema-4.17.3-py3-none-any.whl (90 kB)
Collecting numpy>=1.20 (from asdf>=2.14.3->jdaviz) Downloading numpy-1.25.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.6 MB)
Collecting semantic-version>=2.8 (from asdf>=2.14.3->jdaviz) Downloading semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)
Collecting pyerfa>=2.0 (from astropy>=4.3->jdaviz) Downloading pyerfa-2.0.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (741 kB)
Collecting typing-extensions>=4.0.0 (from async-lru>=1.0.0->jupyterlab) Downloading typing_extensions-4.6.3-py3-none-any.whl (31 kB)
Collecting traittypes>=0.0.6 (from bqplot>=0.12.37->jdaviz) Downloading traittypes-0.2.1-py2.py3-none-any.whl (8.6 kB)
Collecting pandas<3.0.0,>=1.0.0 (from bqplot>=0.12.37->jdaviz) Downloading pandas-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.2 MB)
Collecting qtpy (from echo>=0.5.0->jdaviz) Downloading QtPy-2.3.1-py3-none-any.whl (84 kB)
Collecting spectral-cube>=0.6.0 (from glue-astronomy>=0.7->jdaviz) Downloading spectral_cube-0.6.2-py3-none-any.whl (228 kB)
Collecting scipy>=1.1 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading scipy-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (36.2 MB)
Requirement already satisfied: setuptools>=30.3.0 in ./miniconda3/envs/py311-tmp/lib/python3.11/site-packages (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) (67.8.0)
Collecting ipython>=4.0 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading ipython-8.14.0-py3-none-any.whl (798 kB)
Collecting qtconsole!=5.4.2,>=4.3 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading qtconsole-5.4.3-py3-none-any.whl (121 kB)
Collecting dill>=0.2 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading dill-0.3.6-py3-none-any.whl (110 kB)
Collecting xlrd>=1.2 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading xlrd-2.0.1-py2.py3-none-any.whl (96 kB)
Collecting openpyxl>=3.0 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading openpyxl-3.1.2-py2.py3-none-any.whl (249 kB)
Collecting mpl-scatter-density>=0.7 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading mpl_scatter_density-0.7-py3-none-any.whl (655 kB)
Collecting pvextractor>=0.2 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading pvextractor-0.3.tar.gz (1.5 MB)
Collecting glue-vispy-viewers>=1.0 (from glue-jupyter>=0.15.0->jdaviz) Downloading glue_vispy_viewers-1.0.7-py3-none-any.whl (125 kB)
Collecting notebook>=4.0 (from glue-jupyter>=0.15.0->jdaviz) Downloading notebook-6.5.4-py3-none-any.whl (529 kB)
Collecting ipympl>=0.3.0 (from glue-jupyter>=0.15.0->jdaviz) Downloading ipympl-0.9.3-py2.py3-none-any.whl (511 kB)
Collecting ipyvolume>=0.5.0 (from glue-jupyter>=0.15.0->jdaviz) Downloading ipyvolume-0.6.3-py3-none-any.whl (1.6 MB)
Collecting asdf-wcs-schemas (from gwcs>=0.16.1->jdaviz) Downloading asdf_wcs_schemas-0.1.1.tar.gz (22 kB)
Collecting asdf-astropy>=0.2.0 (from gwcs>=0.16.1->jdaviz) Downloading asdf_astropy-0.4.0-py3-none-any.whl (73 kB)
Collecting comm>=0.1.1 (from ipykernel->jupyterlab) Downloading comm-0.1.3-py3-none-any.whl (6.6 kB)
Collecting debugpy>=1.6.5 (from ipykernel->jupyterlab) Downloading debugpy-1.6.7-py2.py3-none-any.whl (4.9 MB)
Collecting jupyter-client>=6.1.12 (from ipykernel->jupyterlab) Downloading jupyter_client-8.3.0-py3-none-any.whl (103 kB)
Collecting matplotlib-inline>=0.1 (from ipykernel->jupyterlab) Downloading matplotlib_inline-0.1.6-py3-none-any.whl (9.4 kB)
Collecting nest-asyncio (from ipykernel->jupyterlab) Downloading nest_asyncio-1.5.6-py3-none-any.whl (5.2 kB)
Collecting psutil (from ipykernel->jupyterlab) Downloading psutil-5.9.5-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (282 kB)
Collecting pyzmq>=20 (from ipykernel->jupyterlab) Downloading pyzmq-25.1.0-cp311-cp311-manylinux_2_28_x86_64.whl (1.1 MB)
Collecting widgetsnbextension~=4.0.7 (from ipywidgets>=8.0.6->jdaviz) Downloading widgetsnbextension-4.0.7-py3-none-any.whl (2.1 MB)
Collecting jupyterlab-widgets~=3.0.7 (from ipywidgets>=8.0.6->jdaviz) Downloading jupyterlab_widgets-3.0.7-py3-none-any.whl (198 kB)
Collecting MarkupSafe>=2.0 (from jinja2>=3.0.3->jupyterlab) Downloading MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)
Collecting platformdirs>=2.5 (from jupyter-core->jupyterlab) Downloading platformdirs-3.8.0-py3-none-any.whl (16 kB)
Collecting anyio>=3.1.0 (from jupyter-server<3,>=2.4.0->jupyterlab) Downloading anyio-3.7.0-py3-none-any.whl (80 kB)
Collecting argon2-cffi (from jupyter-server<3,>=2.4.0->jupyterlab) Downloading argon2_cffi-21.3.0-py3-none-any.whl (14 kB)
Collecting jupyter-events>=0.6.0 (from jupyter-server<3,>=2.4.0->jupyterlab) Downloading jupyter_events-0.6.3-py3-none-any.whl (18 kB)
Collecting jupyter-server-terminals (from jupyter-server<3,>=2.4.0->jupyterlab) Downloading jupyter_server_terminals-0.4.4-py3-none-any.whl (13 kB)
Collecting nbconvert>=6.4.4 (from jupyter-server<3,>=2.4.0->jupyterlab) Downloading nbconvert-7.6.0-py3-none-any.whl (290 kB)
Collecting nbformat>=5.3.0 (from jupyter-server<3,>=2.4.0->jupyterlab) Downloading nbformat-5.9.0-py3-none-any.whl (77 kB)
Collecting overrides (from jupyter-server<3,>=2.4.0->jupyterlab) Downloading overrides-7.3.1-py3-none-any.whl (17 kB)
Collecting prometheus-client (from jupyter-server<3,>=2.4.0->jupyterlab) Downloading prometheus_client-0.17.0-py3-none-any.whl (60 kB)
Collecting send2trash (from jupyter-server<3,>=2.4.0->jupyterlab) Downloading Send2Trash-1.8.2-py3-none-any.whl (18 kB)
Collecting terminado>=0.8.3 (from jupyter-server<3,>=2.4.0->jupyterlab) Downloading terminado-0.17.1-py3-none-any.whl (17 kB)
Collecting websocket-client (from jupyter-server<3,>=2.4.0->jupyterlab) Downloading websocket_client-1.6.1-py3-none-any.whl (56 kB)
Collecting babel>=2.10 (from jupyterlab-server<3,>=2.19.0->jupyterlab) Downloading Babel-2.12.1-py3-none-any.whl (10.1 MB)
Collecting json5>=0.9.0 (from jupyterlab-server<3,>=2.19.0->jupyterlab) Downloading json5-0.9.14-py2.py3-none-any.whl (19 kB)
Collecting requests>=2.28 (from jupyterlab-server<3,>=2.19.0->jupyterlab) Downloading requests-2.31.0-py3-none-any.whl (62 kB)
Collecting contourpy>=1.0.1 (from matplotlib->jdaviz) Downloading contourpy-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (300 kB)
Collecting cycler>=0.10 (from matplotlib->jdaviz) Downloading cycler-0.11.0-py3-none-any.whl (6.4 kB)
Collecting fonttools>=4.22.0 (from matplotlib->jdaviz) Downloading fonttools-4.40.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB)
Collecting kiwisolver>=1.0.1 (from matplotlib->jdaviz) Downloading kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB)
Collecting pillow>=6.2.0 (from matplotlib->jdaviz) Downloading Pillow-9.5.0-cp311-cp311-manylinux_2_28_x86_64.whl (3.4 MB)
Collecting pyparsing>=2.3.1 (from matplotlib->jdaviz) Downloading pyparsing-3.1.0-py3-none-any.whl (102 kB)
Collecting python-dateutil>=2.7 (from matplotlib->jdaviz) Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting jupyterlab Downloading jupyterlab-3.6.5-py3-none-any.whl (8.9 MB)
Collecting jupyter-ydoc~=0.2.4 (from jupyterlab) Downloading jupyter_ydoc-0.2.4-py3-none-any.whl (5.9 kB)
Collecting jupyter-server-ydoc~=0.8.0 (from jupyterlab) Downloading jupyter_server_ydoc-0.8.0-py3-none-any.whl (11 kB)
Collecting nbclassic (from jupyterlab) Downloading nbclassic-1.0.0-py3-none-any.whl (10.0 MB)
Collecting backcall (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading backcall-0.2.0-py2.py3-none-any.whl (11 kB)
Collecting decorator (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading decorator-5.1.1-py3-none-any.whl (9.1 kB)
Collecting jedi>=0.16 (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading jedi-0.18.2-py2.py3-none-any.whl (1.6 MB)
Collecting pickleshare (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading pickleshare-0.7.5-py2.py3-none-any.whl (6.9 kB)
Collecting prompt-toolkit!=3.0.37,<3.1.0,>=3.0.30 (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading prompt_toolkit-3.0.38-py3-none-any.whl (385 kB)
Collecting pygments>=2.4.0 (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading Pygments-2.15.1-py3-none-any.whl (1.1 MB)
Collecting stack-data (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading stack_data-0.6.2-py3-none-any.whl (24 kB)
Collecting pexpect>4.3 (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Downloading pexpect-4.8.0-py2.py3-none-any.whl (59 kB)
Collecting jupyter-server-fileid<1,>=0.6.0 (from jupyter-server-ydoc~=0.8.0->jupyterlab) Downloading jupyter_server_fileid-0.9.0-py3-none-any.whl (15 kB)
Collecting ypy-websocket<0.9.0,>=0.8.2 (from jupyter-server-ydoc~=0.8.0->jupyterlab) Downloading ypy_websocket-0.8.4-py3-none-any.whl (10 kB)
Collecting y-py<0.6.0,>=0.5.3 (from jupyter-ydoc~=0.2.4->jupyterlab) Downloading y_py-0.5.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB)
Collecting ipython-genutils (from notebook>=4.0->glue-jupyter>=0.15.0->jdaviz) Downloading ipython_genutils-0.2.0-py2.py3-none-any.whl (26 kB)
Collecting synphot (from specreduce<1.4.0,>=1.3.0->jdaviz) Downloading synphot-1.2.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (915 kB)
Collecting ndcube>=2.0 (from specutils>=1.9->jdaviz) Downloading ndcube-2.1.2-py3-none-any.whl (123 kB)
Collecting freetype-py (from vispy>=0.6.5->jdaviz) Downloading freetype_py-2.4.0-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.0 MB)
Collecting hsluv (from vispy>=0.6.5->jdaviz) Downloading hsluv-5.0.3-py2.py3-none-any.whl (5.1 kB)
INFO: pip is looking at multiple versions of voila to determine which version is compatible with other requirements. This could take a while. Collecting voila>=0.4 (from jdaviz) Downloading voila-0.4.0-py3-none-any.whl (5.5 MB)
Collecting nbclassic (from jupyterlab) Downloading nbclassic-0.5.6-py3-none-any.whl (10.0 MB) Downloading nbclassic-0.5.5-py3-none-any.whl (10.0 MB) Downloading nbclassic-0.5.4-py3-none-any.whl (10.0 MB) INFO: pip is looking at multiple versions of voila to determine which version is compatible with other requirements. This could take a while. Downloading nbclassic-0.5.3-py3-none-any.whl (10.0 MB) Downloading nbclassic-0.5.2-py3-none-any.whl (10.0 MB)
(goes downhill from here)
tl;dr -- I suspect all the maxversion pins in voila is messing things up. Maybe @maartenbreddels or @mariobuikhuizen can help...
https://github.com/voila-dashboards/voila/blob/a457763bb0ef940ad37434fb14358871ba1592d1/pyproject.toml#L36-L45
It's the same on macOS. Adding "voila<0.5" in front makes it work. I think we need to add that pin to jdavis, because I don't think the voila-template in jdaviz is compatible with 0.5. Voila 0.5 started using lab extensions instead of the notebook extension.
I will also take a look at adding voila 0.5 compatibility to the template and to ipypopout
Thanks, Mario! I created https://github.com/spacetelescope/jdaviz/pull/2269 to pin the maxversion for now.
My best guess is that the pinning of voila 0.5 https://github.com/voila-dashboards/voila/blob/v0.5.0/pyproject.toml#L37C1-L37C1 interferes with a different dependency (it could be jupyterlab).
Note that regardless of this problem, I do not think jdaviz currently works with voila 0.5. This means that the current pinning in #2269 solves two problems.
But @maartenbreddels , we cannot pin voila<0.5 forever. Any timeline on when we can unpin?