Skip to content
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

Compatibility with Notebook 7 #58

Closed
casparvl opened this issue Aug 28, 2023 · 8 comments
Closed

Compatibility with Notebook 7 #58

casparvl opened this issue Aug 28, 2023 · 8 comments
Assignees
Labels
bug Something isn't working waiting for response

Comments

@casparvl
Copy link

I was trying to install jupyter-matlab-proxy, and saw that it lists a dependency on jupyter-contrib-nbextensions. It turns out that jupyter-contrib-nbextensions is incompatible with Notebook 7 (see here). Furthermore, jupyter-contrib-nbextensions hasn't been updated in 8 months.

I was wondering: does jupyter-matlab-proxy really need jupyter-contrib-nbextensions? I couldn't find any reference to e.g. imports, but I guess it could be used in different ways. In any case, considering the limited maintenance that seems to be happening on jupyter-contrib-nbextensions, it might be good to consider if jupyter-matlab-proxy could somehow be altered to avoid needing that dependency.

@prabhakk-mw prabhakk-mw self-assigned this Sep 1, 2023
@prabhakk-mw prabhakk-mw added the bug Something isn't working label Sep 1, 2023
@prabhakk-mw
Copy link
Member

Hi @casparvl
Thank you for reporting this issue.

You are right, jupyter-matlab-proxy does not technically depend on jupyter-contrib-nbextensions.

Installing this package seemed to fix issues that some users were facing where the icons related to our integration would not be displayed on their JupyterLab interface.

So we decided to place a dependency on this package to reduce the incidence of this issue.

Given this failure with Notebook 7, I'm convinced that this package has outlived its intended purpose, and will remove it from the dependency list shortly.

@casparvl
Copy link
Author

casparvl commented Sep 5, 2023

Thanks @prabhakk-mw for that response. Until there is a new release: I guess I can just remove this line before installing, and that should be sufficient, right? Or do you know of more places where changes would be needed?

@prabhakk-mw
Copy link
Member

That's probably all you need to change.
Let us know if that didn't resolve it, or if there are new issues that come up after you've installed for use with Notebook 7.

I haven't explicitly tested against Notebook 7 yet.

Thanks @casparvl

@casparvl
Copy link
Author

casparvl commented Sep 5, 2023

Ok, thanks again! It might be a while before I get back on this (I have a few other priorities right now), but if I do, I'll definitely let you know here.

@casparvl
Copy link
Author

casparvl commented Sep 5, 2023

Hm, I actually found a minute to try this out, but got a ton of errors:

      INFO:hatch_jupyter_builder.utils:> /scratch-nvme/1/casparl/generic/software/JupyterLab/4.0.5-GCCcore-12.3.0/bin/jlpm run build:prod
      node_modules/@jupyterlab/apputils/node_modules/@types/react/ts5.0/index.d.ts(3208,14): error TS2300: Duplicate identifier 'LibraryManagedAttributes'.
      node_modules/@jupyterlab/apputils/node_modules/@types/react/ts5.0/index.d.ts(3219,13): error TS2717: Subsequent property declarations must have the same type.  Property 'a' must be of type 'DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>', but here has type 'DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>'.
...
      node_modules/vscode-languageserver-types/lib/umd/main.d.ts(893,10): error TS1336: An index signature parameter type cannot be a type alias. Consider writing '[uri: string]: TextEdit[]' instead.
      node_modules/vscode-languageserver-types/lib/umd/main.d.ts(917,10): error TS1336: An index signature parameter type cannot be a type alias. Consider writing '[id: string]: ChangeAnnotation' ins
tead.
      src/matlab_browser_button.ts(53,56): error TS2345: Argument of type 'MatlabToolbarButtonExtension' is not assignable to parameter of type 'WidgetExtension'.
        Types of property 'createNew' are incompatible.
          Type '(panel: NotebookPanel, context: IContext<INotebookModel>) => IDisposable' is not assignable to type '(widget: Widget, context: IContext<IModel>) => void | IDisposable'.
            Types of parameters 'panel' and 'widget' are incompatible.
              Type 'Widget' is missing the following properties from type 'NotebookPanel': _onSave, sessionContext, model, setConfig, and 31 more.
      src/matlab_files.ts(74,9): error TS2322: Type 'import("/gpfs/nvme1/1/casparl/ebbuildpath/jupytermatlabproxy/0.7.1/GCCcore-12.3.0/jupyter-matlab-proxy-0.7.1/src/jupyter_matlab_labextension/node_
modules/@jupyterlab/ui-components/lib/icon/labicon").LabIcon' is not assignable to type 'import("/gpfs/nvme1/1/casparl/ebbuildpath/jupytermatlabproxy/0.7.1/GCCcore-12.3.0/jupyter-matlab-proxy-0.7.1/s
rc/jupyter_matlab_labextension/node_modules/@jupyterlab/application/node_modules/@jupyterlab/ui-components/lib/icon/labicon").LabIcon'.
        Property 'svgElement' is protected but type 'LabIcon' is not a class derived from 'LabIcon'.
      src/matlab_files.ts(81,16): error TS2322: Type 'Token<ILauncher>' is not assignable to type 'Token<any>'.
        Types have separate declarations of a private property '_tokenStructuralPropertyT'.
      src/matlab_files.ts(81,27): error TS2322: Type 'Token<ICommandPalette>' is not assignable to type 'Token<any>'.
        Types have separate declarations of a private property '_tokenStructuralPropertyT'.
      Traceback (most recent call last):
        File "/scratch-nvme/1/casparl/generic/software/Python/3.11.3-GCCcore-12.3.0/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/scratch-nvme/1/casparl/generic/software/Python/3.11.3-GCCcore-12.3.0/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/scratch-nvme/1/casparl/generic/software/Python/3.11.3-GCCcore-12.3.0/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 152, in prepare_metadata
_for_build_wheel
          whl_basename = backend.build_wheel(metadata_directory, config_settings)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/scratch-nvme/1/casparl/generic/software/hatchling/1.18.0-GCCcore-12.3.0/lib/python3.11/site-packages/hatchling/build.py", line 56, in build_wheel
          return os.path.basename(next(builder.build(wheel_directory, ['standard'])))
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/scratch-nvme/1/casparl/generic/software/hatchling/1.18.0-GCCcore-12.3.0/lib/python3.11/site-packages/hatchling/builders/plugin/interface.py", line 150, in build
          build_hook.initialize(version, build_data)
        File "/scratch-nvme/1/casparl/generic/software/jupyter-server/2.7.2-GCCcore-12.3.0/lib/python3.11/site-packages/hatch_jupyter_builder/plugin.py", line 87, in initialize
          raise e
        File "/scratch-nvme/1/casparl/generic/software/jupyter-server/2.7.2-GCCcore-12.3.0/lib/python3.11/site-packages/hatch_jupyter_builder/plugin.py", line 82, in initialize
          build_func(self.target_name, version, **build_kwargs)
        File "/scratch-nvme/1/casparl/generic/software/jupyter-server/2.7.2-GCCcore-12.3.0/lib/python3.11/site-packages/hatch_jupyter_builder/utils.py", line 115, in npm_builder
          run([*npm_cmd, "run", build_cmd], cwd=str(abs_path))
        File "/scratch-nvme/1/casparl/generic/software/jupyter-server/2.7.2-GCCcore-12.3.0/lib/python3.11/site-packages/hatch_jupyter_builder/utils.py", line 229, in run
          return subprocess.check_call(cmd, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/scratch-nvme/1/casparl/generic/software/Python/3.11.3-GCCcore-12.3.0/lib/python3.11/subprocess.py", line 413, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['/scratch-nvme/1/casparl/generic/software/JupyterLab/4.0.5-GCCcore-12.3.0/bin/jlpm', 'run', 'build:prod']' returned non-zero exit status 1.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

 Encountered error while generating package metadata.

Then, I checked your pyproject.toml again and saw jupyterhub<4.0.0 ... I'm guessing that is my problem here, I have 4.0.5, right?

I have a different software environment with a JupyterHub 3.X where I could give it a try, but I'll need to look into what dependencies I have available there, so it's a bit more work.

@prabhakk-mw prabhakk-mw assigned rashedmyt and unassigned prabhakk-mw Oct 31, 2023
@rashedmyt
Copy link
Member

Hi @casparvl

We haven't been able to reproduce the issue at our end. Can you confirm if you are still able to reproduce the issue in a fresh environment and with latest versions of packages?

Here is what I've tried:

  1. Created a new python environment using conda create -n jmp-gh-58 python=3.11.
  2. Installed Jupyter Notebook and jupyter-matlab-proxy using python -m pip install --no-cache notebook jupyter-matlab-proxy. (using --no-cache flag to force python to download latest packages)
  3. Installation of both packages work fine and I was able to launch Jupyter Notebook 7 and use MATLAB from Jupyter.

@prabhakk-mw
Copy link
Member

@casparvl , We are closing this issue until we hear from you with responses to @rashedmyt 's questions.
Thank you for using the MATLAB Integration for Jupyter!

@casparvl
Copy link
Author

@prabhakk-mw yeah, sorry for not being able to follow up on this. I was looking into this in September, when we got a request from a teacher to facilitate a MATLAB based course in our Jupyter environment. Since then, my priorities have shifted to other things. Sorry I wasn't able to test your suggestion, but in all honesty, it is unlikely that I can do so in the foreseable future. So closing the ticket is fine by me.

If, in the future, I do find the time, I'll report back. Thanks for the help in any case!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working waiting for response
Projects
None yet
Development

No branches or pull requests

3 participants