conda-forge / conda-forge/conda-forge.github.io
Packaging JupyterLab extensions
- 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
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