Skip to content

Migrate Jupyter Sidepanel extension to pip-based installation#38045

Open
Eliaaazzz wants to merge 1 commit intoapache:masterfrom
Eliaaazzz:users/Eliaaazzz/37977-jupyter-sidepanel-pip-install
Open

Migrate Jupyter Sidepanel extension to pip-based installation#38045
Eliaaazzz wants to merge 1 commit intoapache:masterfrom
Eliaaazzz:users/Eliaaazzz/37977-jupyter-sidepanel-pip-install

Conversation

@Eliaaazzz
Copy link
Copy Markdown
Contributor

Addresses #37977.

Summary

This PR migrates the Jupyter Sidepanel extension to the pip-based JupyterLab 4
prebuilt installation 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
  • make the prebuilt style entrypoint explicitly import the YAML panel styles to avoid ambiguity about whether they are included in the bundle
  • 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.

Checklist

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 installation and packaging of the Jupyter Sidepanel extension by adopting the JupyterLab 4 prebuilt extension standard. By moving away from the legacy 'labextension install' workflow, the extension is now more easily discoverable and installable as a standard Python package. These changes streamline the development and deployment process while ensuring that all necessary assets, including styles, are correctly bundled for the end user.

Highlights

  • JupyterLab Extension Migration: Migrated the Jupyter Sidepanel extension to the modern JupyterLab 4 prebuilt extension flow, enabling installation via pip.
  • Build and Packaging Configuration: Added 'install.json', updated 'package.json' with 'styleModule' and packaging globs, and included prebuilt-extension classifiers in 'pyproject.toml' to support the new installation method.
  • Style Management: Introduced 'style/index.js' as an explicit style entrypoint to ensure YAML panel styles are correctly bundled, and updated 'style/index.css' accordingly.
  • Documentation Updates: Updated README files to reflect the new pip-based installation workflow and removed legacy 'jupyter lab build' instructions.

🧠 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.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

Checks are failing. Will not request review until checks are succeeding. If you'd like to override that behavior, comment assign set of reviewers

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