conda-forge / conda-forge/conda-forge.github.io

Packaging JupyterLab extensions

Open
#761 18 comments 0 reactions 0 assignees View on GitHub
Discussion
Dominant language
JavaScript
Stars
170
Forks
320
Avg merge
2d 10h
Merged PRs (30d)
5

Description

What is the canonical way to provide JupyterLab extensions:
* For some extensions like jupyterlab-git, the package is a combination of a server extension written in python + frontend code in nodejs. Providing this as conda package makes the installation easier.
* other extensions like jupyterlab-plotly-extension are frontend only (contain no python part) and could instead also be installed via the JupyterLab Extension manager only...

In both cases JupyterLab requires to do a nodejs extension rebuild, which would be nice to have it already in a pre-build package, but afaik currently by design can not be done during the conda package build.

The npm stats show that many frontend extensions are installed from npm directly.

On the other side having frontend only extensions all with a version specified as part of an environment.yaml, is still appealing, even though the nodejs rebuild step+time is remaining. That is what came up during packaging and proceeding in https://github.com/conda-forge/staged-recipes/pull/8060

Already available packages:
* Server + Frontend https://github.com/conda-forge/jupyterlab-git-feedstock
* Frontend only https://github.com/conda-forge/jupyterlab-plotly-extension-feedstock

Potentially packages are e.g:
* Frontend only https://github.com/jupyterlab/jupyter-renderers (some are already integrated into default JuputerLab)
* Frontend only https://github.com/bokeh/jupyterlab_bokeh
* Server + Frontend https://github.com/dask/dask-labextension

To connect the dots, also linking to upstream https://github.com/jupyterlab/jupyterlab/issues/2065

Tagging @blink1073 @conda-forge/jupyterlab

Contributor guide

Open the contributing guide

Research direction

Review the existing jupyterlab-git-feedstock and jupyterlab-plotly-extension-feedstock, then compare the linked JupyterLab issue and staged-recipes pull request. Define whether conda-forge should standardize packaging for server-plus-frontend and frontend-only extensions, including the rebuild constraint; the work is done when an agreed canonical approach is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
nodejs, python
Domain
build-system, documentation
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.