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

JupyterLab 1.0 strategy (now 2.0 strategy) #724

Closed
betatim opened this issue Jun 30, 2019 · 17 comments · Fixed by #933
Closed

JupyterLab 1.0 strategy (now 2.0 strategy) #724

betatim opened this issue Jun 30, 2019 · 17 comments · Fixed by #933

Comments

@betatim
Copy link
Member

betatim commented Jun 30, 2019

JupyterLab 1.0 is on PyPI: https://pypi.org/project/jupyterlab/

I think this release breaks a lot of "old" extensions, which means extension authors are going to need a moment to update.

When should we update the default jupyter lab version we ship?

Repo owners can already opt-in to the new release. So maybe we can be conservative about this.

I tried to refreeze our base environments but this fails with a "can't resolve package" error. Not quite sure why as the packages are on conda-forge already :-/

@betatim
Copy link
Member Author

betatim commented Jun 30, 2019

cc @yuvipanda @choldgraf

@choldgraf
Copy link
Member

IMO we shoudl:

  1. Add documentation somewhere like "how can I use JupyterLab 1.0" that just tells people to add it to their config files somewhere
  2. Wait at least a month or two before we're confident that most repositories won't totally break
  3. Put a banner on mybinder.org that says "hey we're switching to jupyterlab 1.0 on XXX date"
  4. Make the switch on that date.

What do you think?

(there's also a longer-term question of when to default to JupyterLab instead of the classic notebook interface...that's probably for another issue though)

@choldgraf
Copy link
Member

Hey all - it's been a few months of 1.0 being out. I believe the JLab team is also working on a 2.0 RC as well. How does that factor in to our decisions here? I don't think it's great to be 2 major versions behind the latest release - however, a recent 1.X bump caused a bunch of extensions to break in annoying ways.

Perhaps @jasongrout or @ian-r-rose could advise on the relative dangers of switching everybody's Binder JupyterLab versions to >=1.0

@yuvipanda
Copy link
Collaborator

2.0 is out now. Maybe we should just bite the bullet?

@choldgraf
Copy link
Member

Bite the bullet with 1.0 or 2.0? I think it's a good question to bring up again!

@betatim
Copy link
Member Author

betatim commented Mar 4, 2020

https://github.com/jupyter/repo2docker/blob/26542dfc85c0a9567d2f266d51810c3a85244880/repo2docker/buildpacks/conda/environment.yml#L4 makes me think we should have closed this issue a while back (or maybe now rename it).

When did 2.0 come out? It seems like there are a whole bunch of PRs/issues popping up around GitHub with "please make this extension compatible with jupyterlab 2.0" at the moment. Maybe we give extension authors time to update their packages?

We need to wait until at least server-proxy and offlinenotebook work with lab 2.0 as we ship them with repo2docker.


For my education: is there something I can read that explains why with each major release most(?) JupyterLab extensions "stop working" or need some kind of manual intervention? Seems like the highway to wearing out extension authors :-/

@betatim betatim changed the title JupyterLab 1.0 strategy JupyterLab ~1.0~ 2.0 strategy Mar 4, 2020
@betatim betatim changed the title JupyterLab ~1.0~ 2.0 strategy JupyterLab ~~1.0~~ 2.0 strategy Mar 4, 2020
@yuvipanda
Copy link
Collaborator

Aaaaaah, didn't realize we were already on 1.x! <3

@betatim betatim changed the title JupyterLab ~~1.0~~ 2.0 strategy JupyterLab 1.0 strategy (now 2.0 strategy) Mar 4, 2020
@consideRatio
Copy link
Member

If we change, we should go all the way to JupyterLab 2 i think. JupyterLab 2 was released 5 days ago, so it is a bit fresh at the moment to go to. I've made 6 PRs today to fix compatibility matters in extensions and found my way to three other already open PRs to fix others.

@consideRatio
Copy link
Member

@betatim, most npm packages that are used have dependency requirements, and jupyterlab comes with some as well. Typically, all extensions need to bump their dependencies to match whatever JupyterLab has bumped to. When JupyterLab bumps their many sub-packages a major version, the extensions cannot be installed typically, until those many PRs are made for each extension.

I'm amazed how many packages are cooperating without more breakage as it is. I'm very impressed about the core JupyterLab system to deploy new packages etc! I also think they have done a really excellent job to not make breaking changes unless they bump the major version so far since 1.0.0!

@jasongrout
Copy link

For my education: is there something I can read that explains why with each major release most(?) JupyterLab extensions "stop working" or need some kind of manual intervention? Seems like the highway to wearing out extension authors :-/

In addition to @consideRatio's comments, I'll just add that 2.0 includes a change to a critical core dependency of JupyterLab that forced all js packages to have a major update. The updates for 2.0 are generally straightforward, we think, and we hope that JupyterLab 3.0 will be much less disruptive for many extension authors.

@betatim
Copy link
Member Author

betatim commented Mar 4, 2020

Thanks for the explanations! In the cases I've seen the "fix" to make things work with 2.0 did seem to be to update some version numbers in a package.json and nothing more. Which is what made me think "why is this something a human has to do??". So spawned by the success of your efforts to make it easy :)

@manics
Copy link
Member

manics commented Mar 8, 2020

I've opened a JupyterLab 2 PR for offlinenotebook: manics/jupyter-offlinenotebook#30

Functionally it seems to be working, but the button Font-Awesome icons are missing. I've renamed iconClassName to iconClass following the example from the JupyterLab docs: jupyterlab/jupyterlab@04da52b

Does anyone have a suggestion on what to try next?

@manics
Copy link
Member

manics commented Mar 14, 2020

It's working!. I've tested in Firefox and Chome on Linux.

I made the icons visible by overriding the JupyterLab CSS: manics/jupyter-offlinenotebook@0377673
@jasongrout I didn't expect this to be necessary based on the JupyterLab example. I'm aware JupyterLab has switched to SVG icons but it seems FontAwesome icons should still work. Is this expected?

@manics
Copy link
Member

manics commented Mar 19, 2020

jupyter-offlinenotebook 0.1.0 is released. I've verified that the correct version is installed with JupyterLab 1 and 2:

$ conda create -n jl-test -c conda-forge jupyterlab=1
$ conda activate jl-test
$ pip install jupyter-offlinenotebook
$ jupyter-labextension install jupyter-offlinenotebook
$ jupyter-lab
...

$ conda install -c conda-forge jupyterlab=2
$ jupyter-labextension list
JupyterLab v2.0.1
Known labextensions:
   app dir: /anaconda3/envs/jl-test/share/jupyter/lab
        jupyter-offlinenotebook v0.0.11  enabled   X

   The following extension are outdated:
        jupyter-offlinenotebook

   Consider running "jupyter labextension update --all" to check for updates.

$ jupyter labextension update --all
Updating jupyter-offlinenotebook to version 0.1.0
Building jupyterlab assets (build:prod:minimize)
$ jupyter-lab
...

@betatim
Copy link
Member Author

betatim commented Apr 19, 2020

Should we update the version of offlinenotebook that is used by repo2docker then?

@choldgraf
Copy link
Member

We should probably open up another issue about JupyterLab 3.0?

@manics manics mentioned this issue Jul 28, 2020
4 tasks
@manics
Copy link
Member

manics commented Jul 28, 2020

Done! #935

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants