appmode icon indicating copy to clipboard operation
appmode copied to clipboard

Appmode doesn't work with recent Jupyter version

Open yakutovicha opened this issue 5 months ago • 2 comments

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:

Image

Switch to appmode

Image

yakutovicha avatar Nov 19 '25 10:11 yakutovicha

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

oschuett avatar Nov 19 '25 15:11 oschuett

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

danielhollas avatar Nov 20 '25 14:11 danielhollas