Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Base on Lumino Application #96

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

Base on Lumino Application #96

wants to merge 1 commit into from

Conversation

fcollonval
Copy link
Member

@fcollonval fcollonval commented Nov 7, 2020

This is a PoC for now.

It will be good to see if it can be made compatible with JLab extensions system so that for example theme can be dynamically installed.

@coveralls
Copy link

coveralls commented Nov 7, 2020

Pull Request Test Coverage Report for Build 358046667

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 69.731%

Totals Coverage Status
Change from base Build 358028480: 0.0%
Covered Lines: 741
Relevant Lines: 972

💛 - Coveralls

@jtpio
Copy link
Member

jtpio commented Nov 9, 2020

Thanks for exploring this.

How does this affect the size of the bundle when building in production mode?

It will be good to see if it can be made compatible with JLab extensions system so that for example theme can be dynamically installed.

Yes it's one of the main advantages of using a lab application, so that adding extensions to the list of plugins "just works". I found it quite convenient for example in this alternative notebook UI that also uses lab components and extensions:

https://github.com/jtpio/p5-notebook/blob/e72f8f9da8ac94fe368101eceb892ef207aa6ef9/src/index.ts#L70-L75

In the case of a Lumino app, plugins will be given an Application<IGatorShell> instead of a JupyterFrontEnd<IGatorShell>. So they will be missing a couple of properties like docRegistry and serviceManager. Which might be fine in the case of the navigator.

It also depends a bit on #92, as part of the JupyterLab application expects a jupyterlab_server on the backend.

@fcollonval
Copy link
Member Author

How does this affect the size of the bundle when building in production mode?

Current master:

                                     Asset      Size  Chunks             Chunk Names
                         0.gator.bundle.js   2.4 MiB       0  [emitted]  
                         1.gator.bundle.js   291 KiB       1  [emitted]  
                         2.gator.bundle.js  26.2 KiB       2  [emitted]  
      205f07b3883c484f27f40d21a92950d4.ttf   200 KiB          [emitted]  
      2f12242375edd68e9013ecfb59c672e9.svg   730 KiB          [emitted]  
      3602b7e8b2cb1462b0bef9738757ef8a.svg   141 KiB          [emitted]  
     3c6879c4f342203d099bdd66dce6d396.woff  16.4 KiB          [emitted]  
     4451e1d86df7491dd874f2c41eee1053.woff   102 KiB          [emitted]  
      49f00693b0e5d45097832ef5ea1bc541.ttf  33.3 KiB          [emitted]  
    4a74738e7728e93c4394b8604081da62.woff2  13.2 KiB          [emitted]  
      664de3932dd6291b4b8a8c0ddbcb4c61.svg   896 KiB          [emitted]  
      8300bd7f30e0a313c1d772b49d96cb8e.ttf   133 KiB          [emitted]  
      8ac3167427b1d5d2967646bd8f7a0587.eot   200 KiB          [emitted]  
    8e1ed89b6ccb8ce41faf5cb672677105.woff2  78.4 KiB          [emitted]  
     ad527cc5ec23d6da66e8a1d6772ea6d3.woff    90 KiB          [emitted]  
      b01516c1808be557667befec76cd6318.eot  33.5 KiB          [emitted]  
      e2ca6541bff3a3e9f4799ee327b28c58.eot   134 KiB          [emitted]  
    f075c50f89795e4cdb4d45b51f1a6800.woff2  76.6 KiB          [emitted]  
                           gator.bundle.js  21.5 MiB    main  [emitted]  main

This branch

                                     Asset      Size  Chunks             Chunk Names
                     0.navigator.bundle.js   291 KiB       0  [emitted]  
      205f07b3883c484f27f40d21a92950d4.ttf   200 KiB          [emitted]  
      2f12242375edd68e9013ecfb59c672e9.svg   730 KiB          [emitted]  
      3602b7e8b2cb1462b0bef9738757ef8a.svg   141 KiB          [emitted]  
     3c6879c4f342203d099bdd66dce6d396.woff  16.4 KiB          [emitted]  
     4451e1d86df7491dd874f2c41eee1053.woff   102 KiB          [emitted]  
      49f00693b0e5d45097832ef5ea1bc541.ttf  33.3 KiB          [emitted]  
    4a74738e7728e93c4394b8604081da62.woff2  13.2 KiB          [emitted]  
      664de3932dd6291b4b8a8c0ddbcb4c61.svg   896 KiB          [emitted]  
      8300bd7f30e0a313c1d772b49d96cb8e.ttf   133 KiB          [emitted]  
      8ac3167427b1d5d2967646bd8f7a0587.eot   200 KiB          [emitted]  
    8e1ed89b6ccb8ce41faf5cb672677105.woff2  78.4 KiB          [emitted]  
     ad527cc5ec23d6da66e8a1d6772ea6d3.woff    90 KiB          [emitted]  
      b01516c1808be557667befec76cd6318.eot  33.5 KiB          [emitted]  
      e2ca6541bff3a3e9f4799ee327b28c58.eot   134 KiB          [emitted]  
    f075c50f89795e4cdb4d45b51f1a6800.woff2  76.6 KiB          [emitted]  
                       navigator.bundle.js  18.1 MiB    main  [emitted]  main

The reduction comes mainly from dropping codemirror:

image

@jtpio
Copy link
Member

jtpio commented Nov 12, 2020

Thanks, it's nice to be able to compare the two bundles.

It looks like codemirror comes from the dependency on @jupyterlab/rendermime here:

https://github.com/jupyterlab/jupyterlab/blob/e4ca0a30fd6af2fa4a2b914c11f7ae8a65dc0f34/packages/application/package.json#L47

Which depends on codemirror here:

https://github.com/jupyterlab/jupyterlab/blob/e4ca0a30fd6af2fa4a2b914c11f7ae8a65dc0f34/packages/rendermime/package.json#L44

Not sure how easy it would be to change that upstream.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants