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

Install Pluto.jl and jupyter-pluto-proxy #1929

Merged
merged 11 commits into from
Jul 5, 2023
Merged

Conversation

yuvipanda
Copy link
Contributor

@yuvipanda yuvipanda commented Jun 29, 2023

Describe your changes

Pluto.jl is an alternative reactive notebook frontend focused specifically on Julia. I think shipping this by default in the julia-enabled images helps serve the Julia community better, particularly when used with JupyterHub.

For context, I am working with the Julia users of the Jupyter Meets the Earth project, and trying to understand how to best serve their needs on a JupyterHub. We currently maintain a massive image that 'has everything', but I'm trying to instead work upstream wherever possible so everyone working in these subfields can benefit. Meeting Julia users where they are at seems a useful path forward here.

Checklist (especially for first-time contributors)

  • I have performed a self-review of my code
  • If it is a core feature, I have added thorough tests
  • I will try not to use force-push to make the review process easier for reviewers
  • I have updated the documentation for significant changes

[Pluto.jl](https://plutojl.org/) is an alternative reactive notebook
frontend focused specifically on Julia. I think shipping this
by default in the julia-enabled images helps serve the Julia
community better, particularly when used with JupyterHub.

For context, I am working with the Julia users of the
[Jupyter Meets the Earth](https://jupytearth.org/) project, and
trying to understand how to best serve their needs on a JupyterHub.
We currently maintain a massive image that 'has everything', but
I'm trying to instead work upstream wherever possible so everyone
working in these subfields can benefit. Meeting Julia users where
they are at seems a useful path forward here.
@yuvipanda
Copy link
Contributor Author

If this looks acceptable, I'll write a specific test for this too.

Copy link
Member

@mathbunnyru mathbunnyru left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be honest, I know nothing about Julia or Julia's infrastructure.
So, @yuvipanda, if you know someone from Julia (+Jupyter) community, who can take a look here and approve this change, this would be awesome.
As I understand - do we need to run something special to run Pluto?
If yes, maybe we should probably create a recipe with how to do that.
https://jupyter-docker-stacks.readthedocs.io/en/latest/contributing/recipes.html

docs/using/selecting.md Show resolved Hide resolved
tests/base-notebook/test_packages.py Outdated Show resolved Hide resolved
@yuvipanda
Copy link
Contributor Author

@mathbunnyru you don't need anything special to use it. You can see it in the JupyterLab launcher!

image

So I don't think a specific recipe is needed.

@yuvipanda
Copy link
Contributor Author

I'm going to add a simple test to make sure this works.

@yuvipanda
Copy link
Contributor Author

ok, I added a test to make sure this starts! I've also asked some julia users to try comment on this, just as social proof :)

Anything else you'd like me to do, @mathbunnyru?

Copy link
Member

@mathbunnyru mathbunnyru left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for adding the test.
Let's use the DRY principle and move the test code to a function in tests/julia-tests/pluto_proxy.py folder and in the julia-notebook and datascience-notebook folders add a test which will be calling this function.

@JordiBolibar
Copy link

Thanks a lot for all the efforts on building a Julia-specific image for the hub!

I've been heavily using the "massive" image from Jupyter Meets the Earth the last 2.5 years, and I can say that adding Pluto.jl would be fantastic. Having Julia + Pluto.jl + VSCode + Jupyter notebooks with CPUs is pretty much everything we could ask for 🙂

@benz0li
Copy link
Contributor

benz0li commented Jul 3, 2023

@JordiBolibar There is also the JupyterLab Julia docker stack and the Data Science Development Containers.
ℹ️ (GPU accelerated) Multi-arch (linux/amd64, linux/arm64/v8) container images

@mathbunnyru
Copy link
Member

mathbunnyru commented Jul 3, 2023

Thanks a lot for all the efforts on building a Julia-specific image for the hub!

I've been heavily using the "massive" image from Jupyter Meets the Earth the last 2.5 years, and I can say that adding Pluto.jl would be fantastic. Having Julia + Pluto.jl + VSCode + Jupyter notebooks with CPUs is pretty much everything we could ask for 🙂

Great 👍
It always feels good to make users of our images happy 🙂

@mathbunnyru
Copy link
Member

mathbunnyru commented Jul 5, 2023

I think I'll just merge this and then remove code duplication in a separate PR.
I want to put all the images to the images folder and this is blocking me a little bit.

@mathbunnyru mathbunnyru merged commit 39582f7 into jupyter:main Jul 5, 2023
@mathbunnyru
Copy link
Member

Follow-up PR: #1934

@yuvipanda
Copy link
Contributor Author

Thank you so much, @mathbunnyru! And thanks for chiming in, @JordiBolibar!

yuvipanda added a commit to yuvipanda/pilot-hubs that referenced this pull request Jul 5, 2023
kentwait pushed a commit to kentwait/docker-stacks that referenced this pull request Aug 3, 2023
* Install Pluto.jl and jupyter-pluto-proxy

[Pluto.jl](https://plutojl.org/) is an alternative reactive notebook
frontend focused specifically on Julia. I think shipping this
by default in the julia-enabled images helps serve the Julia
community better, particularly when used with JupyterHub.

For context, I am working with the Julia users of the
[Jupyter Meets the Earth](https://jupytearth.org/) project, and
trying to understand how to best serve their needs on a JupyterHub.
We currently maintain a massive image that 'has everything', but
I'm trying to instead work upstream wherever possible so everyone
working in these subfields can benefit. Meeting Julia users where
they are at seems a useful path forward here.

* Add note about Pluto.jl to selecting.md

* Default to replacing - with _ in package imports

* Add jupyter-pluto-proxy to package import mapping

* Add Pluto.jl to datascience-notebook image

* Add test for pluto proxy starting correctly

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update test_packages.py

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com>
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 this pull request may close these issues.

4 participants