Skip to content

Migrate JupyterLab sidepanel extension to prebuilt package distribution#38044

Closed
Eliaaazzz wants to merge 2 commits intoapache:masterfrom
Eliaaazzz:users/elia/jupyterlab-sidepanel-prebuilt-pr
Closed

Migrate JupyterLab sidepanel extension to prebuilt package distribution#38044
Eliaaazzz wants to merge 2 commits intoapache:masterfrom
Eliaaazzz:users/elia/jupyterlab-sidepanel-prebuilt-pr

Conversation

@Eliaaazzz
Copy link
Copy Markdown
Contributor

@Eliaaazzz Eliaaazzz commented Apr 2, 2026

Addresses #37977.

Summary

  • migrate the Jupyter Sidepanel extension to the pip-based JupyterLab 4 prebuilt installation flow
  • add the missing packaging metadata and CSS entrypoints required for prebuilt extension discovery
  • remove deprecated jupyter labextension install/link guidance and update interactive docs to use the modern pip-based flow

What Changed

  • add install.json so JupyterLab recognizes the extension as Python-managed
  • add style/index.js and styleModule so stylesheet assets are bundled correctly for the prebuilt extension
  • update package.json packaging globs so the new style entrypoint is included in published artifacts
  • add JupyterLab prebuilt-extension classifiers to pyproject.toml
  • include src/yaml/* in tsconfig.json so the YAML panel sources are compiled
  • update the sidepanel extension README to document the prebuilt pip install workflow and remove unnecessary legacy jupyter lab build steps
  • update the interactive Beam README to replace jupyter labextension install @jupyter-widgets/jupyterlab-manager with pip install ipywidgets

Testing

  • jlpm run build:lib
  • jlpm run build:prod
  • jlpm jest --runInBand
  • python -m pip install -e .
  • jupyter labextension list
  • python -m build --sdist --wheel

Context

  • JupyterLab 4 favors prebuilt extensions distributed through Python packages instead of the legacy labextension install/link workflow.
  • This change makes the sidepanel extension discoverable and installable through the expected Python packaging path, and aligns the docs with the supported installation flow.

Please add a meaningful description for your change here

Provide a way to keep certain images consumed by Dataflow managed transform upgrade test from getting deleted


Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

  • Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
  • Update CHANGES.md with noteworthy changes.
  • If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md

GitHub Actions Tests Status (on master branch)

Build python source distribution and wheels
Python tests
Java tests
Go tests

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

Replace deprecated jupyter labextension install/link workflow with
pip-installable prebuilt extension for JupyterLab 4+ compatibility.

- Add install.json for prebuilt extension discovery metadata
- Add style/index.js CSS entry point and styleModule field in package.json
- Include js in package.json files glob so style/index.js is published
- Add Extensions and Extensions :: Prebuilt classifiers to pyproject.toml
- Add missing src/yaml/* to tsconfig.json includes
- Remove deprecated labextension install/link/build instructions from READMEs
- Replace ipywidgets labextension install with pip install in Interactive README
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request modernizes the JupyterLab sidepanel extension by transitioning it to a prebuilt Python package distribution. This change simplifies the installation process for end-users by removing the need for manual build steps and aligns the project with current JupyterLab best practices for extension management.

Highlights

  • JupyterLab Extension Migration: Migrated the sidepanel extension to the JupyterLab 4 prebuilt Python package distribution model.
  • Packaging Metadata: Added necessary packaging metadata, CSS entrypoints, and installation instructions to support prebuilt extension discovery.
  • Documentation Cleanup: Removed deprecated labextension installation guidance and simplified the setup process for users.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@Eliaaazzz
Copy link
Copy Markdown
Contributor Author

./gemini-review

@Eliaaazzz Eliaaazzz closed this Apr 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant