Status: In Progress · Proposal
August 2026¶
Summary of Work Completed¶
This time:
We released v1.1 and v1.2 along with three patch releases (CHANGELOG.md)
We made multiple improvements to facilitate the transition, fixing issues reported by the community of extension developers and packagers:
thanks to the jupyter-builder switch we were able to fix a severe regression in the build system promptly: the rspack 2.0 transition that happened in parallel to the jupyter-builder work inadvertently switched to Module Federation v2, subtly changing the semantics of requirement specification; this broke extensions that depended on older versions of packages that were not marked as singletons (e.g.
@jupyterlab/docprovider). We quickly released a new minor version switching back to MF v1. Before the jupyter-builder introduction, this switch would have required a JupyterLab release and longer deliberation on the impact on all consumers, but thanks to this work we were able to roll out a fix within 24 hours of the report, because we can now make major changes to the build system and downstreams can defer upgrades as they see fit (jupyterlab/jupyter -builder #155). We discovered the root cause after debugging an issue reported by @jupyter/chatmaintainerswe improved error messages shown for users who try to compile with an unsupported Node.js version (jupyterlab
/jupyter -builder #135) - based on feedback from an extension developer we improved performance of package discovery (jupyterlab
/jupyter -builder #138) - addressing feedback from a UC Berkeley extension developer we improved support for incomplete version specifiers for legacy
@jupyterlab/buildershim (jupyterlab/jupyter -builder #159) - after debugging an issue reported by the jupytergismaintainerswe improved fallback resolution (jupyterlab
/jupyter -builder #153) - after debugging an issue encountered by a developer at the Space Telescope Science Institute we fixed Windows support which regressed after dependency updates contributed by the community (jupyterlab
/jupyter -builder #164) - based on feedback from two extension developers using Windows; this also led to fixing a pre-existing issue preventing watch compilation from working in editable builds on Windows we fixed silent fallback when a version specifier could not be matched (jupyterlab
/jupyter -builder #121)
We reviewed the pull requests contributed by packagers and extension developers:
updating multiple dependencies (jupyterlab
/jupyter -builder #130, jupyterlab /jupyter -builder #132, jupyterlab /jupyter -builder #134, jupyterlab /jupyter -builder #136) improving symlink resolution (jupyterlab
/jupyter -builder #149) adding typing marker (jupyterlab
/jupyter -builder #147) updating licence metadata (jupyterlab
/jupyter -builder #168)
We worked on reducing the maintenance cost to make it easy to self-sustain beyond the time of this funded work:
adding linting to ensure minimum and sufficient dependency coverage (jupyterlab
/jupyter -builder #150) improving coverage reporting and speeding up the tests (jupyterlab
/jupyter -builder #144) fixing flaky tests (jupyterlab
/jupyter -builder #151)
We track most of the issues and pull requests associated with this proposal in this public GitHub project.
Deliverables/Milestones¶
We continue working on the final metric:
Metric 3. Feedback sought from maintainers, packagers and extension developers confirms that they are willing to use the new builder package and they are satisfied by migration guidelines with the advantages of the solution outweighing the cost of migration (which we will aim to minimize by clear and helpful documentation).
At this point we see a clear indication of the community using and benefiting from the jupyter-builder package. We see the packagers trying to nudge the ecosystem towards adoption (e.g. jupyter/nbdime#820), and we continue working on addressing any issues they may encounter.
Challenges or Risks¶
None
Budget Update¶
As of 25th August 2026 we used 9,755.50 USD out of 14,904 USD budget.
Next Steps¶
Address the remaining feedback from extension developers and packagers, support both Module Federation v1 and v2.
June 2026¶
Summary of Work Completed¶
The first stable version, v1.0 was published, along with two patch releases (CHANGELOG.md)
Rspack version was updated to 2.0 (jupyterlab
/jupyter -builder #93) Downstream tests were added (jupyterlab
/jupyter -builder #91) Linters were set up for code quality enforcement (jupyterlab
/jupyter -builder #96) Core-metadata automatic updates were set up (jupyterlab
/jupyter -builder #119) The set of dependencies was further reduced and set of network calls restricted (jupyterlab
/jupyter -builder #102, jupyterlab /jupyter -builder #108, jupyterlab /jupyter -builder #118) Compatibility with old
@jupyterlab/builderwas improved for smoother transition (jupyterlab/jupyter -builder #98) We investigated and patched the breakage to builder packages due to a new webpack release which affected both
@jupyterlab/builderand the newjupyter-builderbefore rspack transition (webpack/webpack #20860, https:// github .com /krassowski /webpack -licence -repro, jupyterlab /jupyterlab #18929, jupyterlab /jupyterlab #19021)
We track most of the issues and pull requests associated with this proposal in this public GitHub project.
Deliverables/Milestones¶
Documentation
We added migration documentation:
in JupyterLab extension migration guide https://
jupyterlab .readthedocs .io /en /latest /extension /extension _migration .html #migrating -to -jupyter -builder in a dedicated blog post https://
blog .jupyter .org /announcing -jupyter -builder -a -standalone -build -system -for -jupyterlab -extensions -c3d4cc06fa95
Metric 3. Feedback sought from maintainers, packagers and extension developers confirms that they are willing to use the new builder package
We received feedback from multiple extension developers and packages and are working to address it:
Challenges or Risks¶
None
Budget Update¶
As of 23rd June we used 6,740.50 USD out of 14,904 USD budget.
Next Steps¶
Address the feedback from extension developers and packagers.
April 2026¶
Summary of Work Completed¶
The npm package was renamed to jupyter/builder (jupyterlab
/jupyter -builder #60) The webpack bundler was replaced with rspack as per direction set earlier by JupyterLab (jupyterlab
/jupyter -builder #54) The core dependency metadata handling was implemented using npm-versioned core metadata package (jupyterlab
/jupyter -builder #57) The builder was integrated into JupyterLab (jupyterlab
/jupyterlab #18723) The builder package was published on conda-forge (conda
-forge /staged -recipes #32925) Documentation was added (jupyterlab
/jupyter -builder #69) Dependency and packaging issues were ironed out (jupyterlab
/jupyter -builder #72, jupyterlab /jupyter -builder #75, jupyterlab /jupyter -builder #74, jupyterlab /jupyter -builder #79) We investigated future direction for reducing the complexity for downstream users (e.g. not requiring a Node.js, bundling required dependencies, etc)
We track some of the issues and pull requests associated with this proposal in this public GitHub project.
Deliverables/Milestones¶
Documentation
Initial documentation done
Metric 2. JupyterLab and at least one extension successfully migrates to using jupyter-builder
Done for JupyterLab
Metric 3. Feedback sought from maintainers, packagers and extension developers confirms that they are willing to use the new builder package
Community adapted the builder in:
Notebook (jupyter
/notebook #7893) JupyterLite (jupyterlite
/jupyterlite #1932)
Challenges or Risks¶
None
Budget Update¶
As of 26th April 2026 we used 3,545.50 USD out of 14,904 USD budget.
Next Steps¶
Documenting migration in JupyterLab documentation
Migration to rspack 2.0 from 1.x series
Add downstream tests
Improve code quality from pre-existing code
Publish
v1.0pre-release
February 2026¶
Summary of Work Completed¶
CI was updated and bundled package manager issues were fixed
The PyPI package was transferred to Project Jupyter
A new version of the jupyter-builder was released
Initial support for full decoupling from JupyterLab dependency was merged
Future directions were agreed with the community feedback on:
naming of the package
transition to rspack
the way of obtaining the core metadata required for build
We track some of the issues and pull requests associated with this proposal in this public GitHub project.
Deliverables/Milestones¶
A stable version of jupyter-builder is published: first functional (although not yet stable) version was published
Integrating into the JupyterLab core and extension template: a draft PR was opened against the extension-template repository
Challenges or Risks¶
Since the proposal was written the bundler in core JupyterLab was swapped from webpack to rspack. This requires additional work to catch up and (potentially) support both bundlers initially.
Budget Update¶
As of 20th Feb 2026 we used 817 USD out of 14,904 USD budget.
Next Steps¶
Creation of documentation for jupyter-builder and documenting migration in JupyterLab documentation
Migration to rspack
Publishing core package metadata for future and past supporter JupyterLab releases