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

Meta-ticket: Transition to JupyterLab #30399

Closed
mkoeppe opened this issue Aug 19, 2020 · 10 comments · Fixed by #36129
Closed

Meta-ticket: Transition to JupyterLab #30399

mkoeppe opened this issue Aug 19, 2020 · 10 comments · Fixed by #36129

Comments

@mkoeppe
Copy link
Contributor

mkoeppe commented Aug 19, 2020

The Jupyter notebook is on its way out, users are encouraged to transition to JupyterLab.

CC: @paulmasson @jcamp0x2a @slel @zerline @fchapoton

Component: notebook

Issue created by migration from https://trac.sagemath.org/ticket/30399

@mkoeppe mkoeppe added this to the sage-9.2 milestone Aug 19, 2020
@paulmasson
Copy link
Mannequin

paulmasson mannequin commented Aug 19, 2020

comment:2

Since I’m not an active !Python/Sage user, could you clarify the “on its way out” statement? Any public discussions you could reference?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Aug 19, 2020

@jcamp0x2a
Copy link
Mannequin

jcamp0x2a mannequin commented Aug 20, 2020

comment:4

I created a simple optional package with just the requirements.txt for jupyterlab 2.2.5 and spent some time playing around with some of my pre-existing notebooks. Everything seems to work fine except for cells that use interact, which I suppose is why that ticket #30246 exists.

Three.js, JSmol, rendering LaTeX using MathJax, Tachyon, 2D plots, saving plots as PNG/HTML, and tab completion work. Tried a few graphics and non-graphics examples in the console as well without issue. Documentation works as well, though I noticed that it all appears inline instead of going into a separate frame.

It seems like it's already quite usable, with the interact caveat. I think I'll start working in it almost exclusively in fact :) Would that be all that's needed for #26059 is that simple requirements.txt package?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Aug 20, 2020

comment:5

Replying to @jcamp0x2a:

I created a simple optional package with just the requirements.txt for jupyterlab 2.2.5 [...]
Would that be all that's needed for #26059 is that simple requirements.txt package?

Yes, that's the simplest way of creating an optional package.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Aug 20, 2020

comment:6

Replying to @jcamp0x2a:

Three.js, JSmol, rendering LaTeX using MathJax, Tachyon, 2D plots, saving plots as PNG/HTML, and tab completion work.

That's great news already.

Apart from fixing the interacts, what is missing is certainly documentation.

And then the next question would be regarding the Sage kernel in a system JupyterLab (as opposed to jupyterlab installed into Sage's venv) - similar to what is discussed in #30124 (and #30123) for the notebook.

@jcamp0x2a
Copy link
Mannequin

jcamp0x2a mannequin commented Aug 20, 2020

comment:7

Replying to @mkoeppe:

Replying to @jcamp0x2a:

I created a simple optional package with just the requirements.txt for jupyterlab 2.2.5 [...]
Would that be all that's needed for #26059 is that simple requirements.txt package?

Yes, that's the simplest way of creating an optional package.

Ok, thank you.

I could push that small commit to #26059 for review if you'd like, but would you prefer the normal SPKG structure instead like those I added in #26919? From what I've been reading in the developer docs, standard packages can't be just pip packages, so that might save some effort later on.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Aug 20, 2020

comment:8

Either way. I really don't know how fast jupyterlab development is moving, and whether it's expected to change its set of dependencies.

@jcamp0x2a
Copy link
Mannequin

jcamp0x2a mannequin commented Aug 29, 2020

comment:9

I've created #30462 to introduce a dark theme to the Three.js viewer to better fit in with JupyterLab's own dark theme. Not sure if relevant enough to JupyterLab itself to warrant being included in this meta-ticket.

@mkoeppe mkoeppe modified the milestones: sage-9.2, sage-9.3 Oct 24, 2020
@mkoeppe
Copy link
Contributor Author

mkoeppe commented Feb 13, 2021

comment:11

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

@mkoeppe mkoeppe modified the milestones: sage-9.3, sage-9.4 Feb 13, 2021
@mkoeppe

This comment has been minimized.

@mkoeppe mkoeppe modified the milestones: sage-9.4, sage-9.5 Jul 19, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.5, sage-9.6 Dec 14, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.6, sage-9.7 Mar 5, 2022
@mkoeppe mkoeppe modified the milestones: sage-9.7, sage-9.8 Aug 31, 2022
@mkoeppe mkoeppe modified the milestones: sage-9.8, sage-9.9 Jan 7, 2023
@mkoeppe mkoeppe removed this from the sage-10.0 milestone Mar 16, 2023
vbraun pushed a commit to vbraun/sage that referenced this issue Dec 4, 2023
    
<!-- ^^^^^
Please provide a concise, informative and self-explanatory title.
Don't put issue numbers in there, do this in the PR body below.
For example, instead of "Fixes sagemath#1234" use "Introduce new method to
calculate 1+1"
-->
<!-- Describe your changes here in detail -->

This is now based on JupyterLab. There are many changes in dependencies.

We are trying to use platform-independent wheels when available, to
avoid any Node.JS activity during our build.
Hence we remove our `nodeenv`, `nodejs`, `jupyter_packaging`,
`hatch_nodejs_version` packages.

There is trouble on the horizon regarding our model of building
everything from source: The latest versions of `jsonschema` have
switched from `pyrsistent` to a Rust-based package.
We use the newest versions that don't pull in the build dependency on
the Rust compiler.

<!-- Why is this change required? What problem does it solve? -->
<!-- If this PR resolves an open issue, please link to it here. For
example "Fixes sagemath#12345". -->
- Resolves sagemath#24904
- Resolves sagemath#30399
- Resolves sagemath#33772

<!-- If your change requires a documentation PR, please link it
appropriately. -->

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->
<!-- If your change requires a documentation PR, please link it
appropriately -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
<!-- Feel free to remove irrelevant items. -->

- [x] The title is concise, informative, and self-explanatory.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation accordingly.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on
- sagemath#12345: short description why this is a dependency
- sagemath#34567: ...
-->
- Depends on sagemath#35251 (merged here)

<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
    
URL: sagemath#36129
Reported by: Matthias Köppe
Reviewer(s): Eric Gourgoulhon, Kwankyu Lee, Matthias Köppe, Michael Orlitzky
@vbraun vbraun closed this as completed in f336f6a Dec 6, 2023
@mkoeppe mkoeppe added this to the sage-10.3 milestone Dec 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant