Appmode doesn't work with recent Jupyter version
Here is a small Docker container to test the behaviour:
# Start from the latest Jupyter minimal-notebook image
FROM quay.io/jupyter/minimal-notebook:python-3.12 # <<<<<<<<< Works with 3.11, doesn't work with 3.12, 3.13 :(
# Install Appmode + nbclassic explicitly into the same conda environment
RUN mamba install -y nbclassic appmode && \
mamba clean -afy
# Enable the Appmode extension for nbclassic (not for Jupyter Server)
RUN jupyter nbclassic-extension enable --py --sys-prefix appmode
# Optional: make nbclassic the default front-end instead of Notebook 7
# and point to the file browser on startup
CMD ["jupyter", "nbclassic", "--NotebookApp.default_url=/tree", "--ServerApp.token="]
To test:
docker build -t nbclassic-appmode .
docker run -p 8888:8888 nbclassic-appmode
Open nbclassic:
Switch to appmode
Thanks for reporting!
The problem is with the Jupyter version. I don't know when exactly it started, but it's definitely broken with Jupyter 7.4.5.
The root-cause is a change to how server extensions should be packaged. They now need to include a specific json file:
https://jupyter-server.readthedocs.io/en/latest/developers/extensions.html#migrating-an-extension-to-use-jupyter-server
Did a quick test, it seems that things work with Jupyter 7.4.0 (python-3.12.9 image), but they are broken with 7.4.3 (python-3.12.10).
So I guess until this is fixed @yakutovicha you can test 3.12 by specifying the patch version in the tag python-3.12.9
More version information
python-3.12.10 (not working)
❯ docker run nbclassic-appmode:3.12.10 jupyter --version
IPython : 9.3.0
ipykernel : 6.29.5
ipywidgets : not installed
jupyter_client : 8.6.3
jupyter_core : 5.8.1
jupyter_server : 2.16.0
jupyterlab : 4.4.3
nbclient : 0.10.2
nbconvert : 7.16.6
nbformat : 5.10.4
notebook : 7.4.3
qtconsole : not installed
traitlets : 5.14.3
❯ docker run nbclassic-appmode:3.12.10 jupyter nbclassic --version
1.3.1
python-3.12.9 (working)
❯ docker run nbclassic-appmode:3.12.9 jupyter --version
IPython : 9.1.0
ipykernel : 6.29.5
ipywidgets : not installed
jupyter_client : 8.6.3
jupyter_core : 5.7.2
jupyter_server : 2.15.0
jupyterlab : 4.4.0
nbclient : 0.10.2
nbconvert : 7.16.6
nbformat : 5.10.4
notebook : 7.4.0
qtconsole : not installed
traitlets : 5.14.3
❯ docker run nbclassic-appmode:3.12.9 jupyter nbclassic --version
1.2.0