question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Support federated extensions

See original GitHub issue

Problem

The webpack build(s) already take(s) a long time. As a site publisher adds additional extensions, this will take longer until it just doesn’t work anymore: for example, while published on npm, ipydrawio doesn’t reliably work as a source extension because… 5000 files. Further, and for the reason above, unless they really need it, I don’t think a lot of extension authors will even be testing source installs.

Proposed Solution

Add federated_extensions to pageInfo and the machinery to load them.

Indeed, the jupyterlite kernels, etc. would likely be useful outside of a jupyterlite install, e.g. when someone is building content, so they gain access to things like jupyter-lsp, etc. but that’s probably for another day, and maybe counterfeited by a preview mode on #41, if the complexity is too high (because patching ServiceManager).

Additional context

For pure js builds, provide some mechanism to get sdists from pypi.io by URL (or locally), unpack them, copy the files into lab/labextensions/.

For python-driven builds (#41), be able to copy things from $PREFIX/share/jupyter/labextensions to lab/labextensions (https://github.com/jtpio/jupyterlite/issues/16#issuecomment-821980005).

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Reactions:1
  • Comments:7 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
jtpiocommented, May 7, 2021

Some ideas for having server extensions as federated extensions:

  • a cookiecutter-jupyterlite repo similar to https://github.com/jupyterlab/extension-cookiecutter-ts (maybe a fork?), but for JupyterLiteServerPlugin plugins (example: https://github.com/jtpio/jupyterlite/blob/main/packages/javascript-kernel-extension/src/index.ts)
  • distributed as a Python package, with the prebuilt assets going under $PREFIX/share/jupyter/liteextensions
  • the jupyterlite cli would also be able to install these extensions from $PREFIX/share/jupyter/liteextensions by moving them to lite/extensions
  • extension authors use the same workflow as for normal jupyterlab extensions, with @jupyterlab/builder under the hood. Maybe we can even leverage the --core-path option to not have to add another lite layer on top of it.
  • extension authors can then publish their server extension to PyPI, and simply pip install it when they follow a Python drivn deployment
0reactions
bollwyvlcommented, May 22, 2021

I think we’re pretty good here, I’ll open (ha) the OpenAPI thing as a separate issue.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Extensions | Federated Search Developer Guide
The Salesforce extensions support Salesforce-specific search features, and use the Salesforce Federated Search namespace, ...
Read more >
Extension Developer Guide - JupyterLab Documentation
JupyterLab supports several types of plugins: Application plugins: Application ... The prebuilt extension system uses the Webpack Module Federation System.
Read more >
Introduction to Apollo Federation - Apollo GraphQL Docs
Federation supports a free managed mode with Apollo GraphOS, ... An instance of Apollo Server using special extensions from the @apollo/gateway library.
Read more >
DSS Extension for Federated Central Signing Services
These extensions to the DSS protocols provide essential protocol elements in a scenario where: The user's signature is requested by a service ......
Read more >
Extensions > FEDERATED - Manticore Search Manual
Row-wise storage. Traditional row-wise storage for small, medium and big size datasets. Column-oriented storage. Columnar storage support via the Manticore ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found