-
Notifications
You must be signed in to change notification settings - Fork 49
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
Jupyterlab 4 upgrade #83
Conversation
Jupyterlab@5 is moving to TypeScript@ 5 - jupyterlab/jupyterlab#14114. Lets bump that up too. |
abaab6c
to
1d8353e
Compare
Sounds good, I've bumped it to |
fd2f1ef
to
4c234a0
Compare
Okay, local testing is good, so this seems ready for review. |
4c234a0
to
d22d6b4
Compare
d22d6b4
to
f861d6d
Compare
@krassowski Could you retrigger the CI? I think the build was failing before because |
30578a5
to
1cd2dd4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is very close to the finish line, just two minor suggestions.
1cd2dd4
to
c5bce63
Compare
I'm surprised the build worked in the GH action as on two different OS, I get the following:
Was the lockfile updated when you did other changes? Any idea on where "workspace" imports are coming from? I had yarn@1 on these, so I wonder if there is some bug in jlpm that's not using the venv one at times? That's a shot in the dark guess with little evidence. |
Arrgh, this must be something related to the yarn update. Let me try building from scratch to see if I can't reproduce the issue. |
I just tried to reproduce this. Here's what I did, starting from a fresh python git clean -fdx # Remove all build artefacts
pip install .
pip install jupyterlab==4.0.0a37 And it seemed to build without any issues. My system is using
in case that matters. If you can't get it to build, I can also try to construct a conda environment to see if it's some other dependency issue. |
c5bce63
to
2ced9d5
Compare
@mlucool Yes, and I've also noticed that execute times fail to load for cells with import statements. Do you want to tackle these here or in a separate issue? |
This had no import statement. This seems like a regression due to this upgrade, so let's ensure this PR is updated until it works at least as good as it did for lab@3. |
Yeah, this was just something else I noticed when using the extension.
Sounds good, I'll look into it. |
Incredibly weird: I can recreate this bug, but when I put a console logging statement inside the |
2ced9d5
to
7b52dc1
Compare
For some reason, |
After a discussion with @krassowski it seems like this approach is right. This should be good to merge. |
Thanks! |
This PR adds support for Jupyterlab 4. Since we need to upgrade jupyterlab and lumino dependencies for this, I've also taken the chance to upgrade other dependencies as well. With the exception of typescript (which is set to 4.7, the version used by jupyterlab), all packages that can be bumped with a
yarn --latest upgrade-interactive
have been bumped. The Jupyterlab dependencies has been manually upgraded to4.0.0-alpha21
. I also updated the project metadata to include python3.10
and3.11
in the tags.Here's the extension running in a fresh environment with
jupyterlab==4.0.0a35
:In the process of writing this PR,
jupyterlab
switched to using yarn "berry" as the js package manger, i.e.yarn==3.5.0
. This meant that there were some additional files to be ignored that I added to.gitignore
; these have to do with the new version ofyarn
's dependency caching system. Finally, I also needed to add a.yarnrc.yml
to configureyarn
to usenode-modules
, becausejlpm
fails to build the extension otherwise.I also updated the github actions used by the project to their latest versions.
Finally, I added an additional kwarg to the the call to
npm_builder
insetup.py
to ensurejlpm
is used; by default, it uses whateveryarn
is available on the user'sPATH
, which can cause build issues in certain cases, notably whenyarn@1
is installed globally andjlpm@3
(that is,yarn@3
) is installed in the python environment.Todo