widgetti / widgetti/ipyvuetify

Shrink Python package size (wheel and tar.gz.)

Open
#312 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
355
Forks
61
PR merge metrics
No merged PRs in 30d

Description

I think if we remove the source maps files from the nbextension, we save a few MB:

 ls -alhSr ./ipyvuetify-1.9.4.data/data/share/jupyter/nbextensions/jupyter-vuetify
total 19848
drwxr-xr-x@  3 maartenbreddels  wheel    96B Apr  8 13:11 ..
-rw-r--r--@  1 maartenbreddels  wheel   1.1K Apr  8 10:56 extension.js
drwxr-xr-x@ 39 maartenbreddels  wheel   1.2K Apr  8 13:11 .
-rw-r--r--@  1 maartenbreddels  wheel    15K Apr  8 10:57 987b84570ea69ee660455b8d5e91f5f1.woff2
-rw-r--r--@  1 maartenbreddels  wheel    15K Apr  8 10:57 19b7a0adfdd4f808b53af7e2ce2ad4e5.woff2
-rw-r--r--@  1 maartenbreddels  wheel    15K Apr  8 10:57 5d4aeb4e5f5ef754e307d7ffaef688bd.woff2
-rw-r--r--@  1 maartenbreddels  wheel    15K Apr  8 10:57 037d830416495def72b7881024c14b7b.woff2
-rw-r--r--@  1 maartenbreddels  wheel    15K Apr  8 10:57 55536c8e9e9a532651e3cf374f290ea3.woff2
-rw-r--r--@  1 maartenbreddels  wheel    15K Apr  8 10:57 285467176f7fe6bb6a9c6873b3dad2cc.woff2
-rw-r--r--@  1 maartenbreddels  wheel    16K Apr  8 10:57 010c1aeee3c6d1cbb1d5761d80353823.woff2
-rw-r--r--@  1 maartenbreddels  wheel    16K Apr  8 10:57 6232f43d15b0e7a0bf0fe82e295bdd06.woff2
-rw-r--r--@  1 maartenbreddels  wheel    17K Apr  8 10:57 510dec37fa69fba39593e01a469ee018.woff2
-rw-r--r--@  1 maartenbreddels  wheel    17K Apr  8 10:57 d8bcbe724fd6f4ba44d0ee6a2675890f.woff2
-rw-r--r--@  1 maartenbreddels  wheel    17K Apr  8 10:57 d69924b98acd849cdeba9fbff3f88ea6.woff2
-rw-r--r--@  1 maartenbreddels  wheel    17K Apr  8 10:57 7b770d6c53423deb1a8e49d3c9175184.woff2
-rw-r--r--@  1 maartenbreddels  wheel    19K Apr  8 10:57 bafb105baeb22d965c70fe52ba6b49d9.woff
-rw-r--r--@  1 maartenbreddels  wheel    19K Apr  8 10:57 cf6613d1adf490972c557a8e318e0868.woff
-rw-r--r--@  1 maartenbreddels  wheel    19K Apr  8 10:57 a1471d1d6431c893582a5f6a250db3f9.woff
-rw-r--r--@  1 maartenbreddels  wheel    19K Apr  8 10:57 e9dbbe8a693dd275c16d32feb101f1c1.woff
-rw-r--r--@  1 maartenbreddels  wheel    19K Apr  8 10:57 8c2ade503b34e31430d6c98aa29a52a3.woff
-rw-r--r--@  1 maartenbreddels  wheel    20K Apr  8 10:57 de8b7431b74642e830af4d4f4b513ec9.woff
-rw-r--r--@  1 maartenbreddels  wheel    21K Apr  8 10:57 846d1890aee87fde5d8ced8eba360c3a.woff
-rw-r--r--@  1 maartenbreddels  wheel    21K Apr  8 10:57 d704bb3d579b7d5e40880c75705c8a71.woff
-rw-r--r--@  1 maartenbreddels  wheel    21K Apr  8 10:57 9680d5a0c32d2fd084e07bbc4c8b2923.woff
-rw-r--r--@  1 maartenbreddels  wheel    21K Apr  8 10:57 ffcc050b2d92d4b14a4fcb527ee0bcc8.woff
-rw-r--r--@  1 maartenbreddels  wheel    21K Apr  8 10:57 210a7c781f5a354a0e4985656ab456d9.woff
-rw-r--r--@  1 maartenbreddels  wheel    21K Apr  8 10:57 bc833e725c137257c2c42a789845d82f.woff
-rw-r--r--@  1 maartenbreddels  wheel    59K Apr  8 10:57 0509ab09c1b0d2200a4135803c91d6ce.woff2
-rw-r--r--@  1 maartenbreddels  wheel    68K Apr  8 10:57 96c476804d7a788cc1c05351b287ee41.eot
-rw-r--r--@  1 maartenbreddels  wheel    78K Apr  8 10:57 29b882f018fa6fe75fd338aaae6235b8.woff
-rw-r--r--@  1 maartenbreddels  wheel   170K Apr  8 10:57 da4ea5cdfca6b3baab285741f5ccb59f.ttf
-rw-r--r--@  1 maartenbreddels  wheel   247K Apr  8 10:56 nodeps.js
-rw-r--r--@  1 maartenbreddels  wheel   276K Apr  8 10:57 d0066537ab6a4c6f8285a5aeb3ba5f09.woff2
-rw-r--r--@  1 maartenbreddels  wheel   395K Apr  8 10:57 b4917be25082eb793b5363f2fdb5f282.woff
-rw-r--r--@  1 maartenbreddels  wheel   825K Apr  8 10:57 f51112347be6b44f9ef46151a971430d.ttf
-rw-r--r--@  1 maartenbreddels  wheel   825K Apr  8 10:57 2d0a0d8f5f173be15a67aa084db94fe6.eot
-rw-r--r--@  1 maartenbreddels  wheel   892K Apr  8 10:56 nodeps.js.map
-rw-r--r--@  1 maartenbreddels  wheel   1.8M Apr  8 10:57 index.js
-rw-r--r--@  1 maartenbreddels  wheel   3.6M Apr  8 10:57 index.js.map

When manually inspecting nodeps.js.map it seems to include vue sourcecode, which it should not. Also, we should be able to have the common code between index.js and nodeps.js be a shared chunk, which might save the 247k (the size of nodeps.js).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting the generated nbextension files under ipyvuetify-1.9.4.data/data/share/jupyter/nbextensions/jupyter-vuetify, especially index.js.map and nodeps.js.map, and trace them back to the package build configuration. Compare the wheel and tar.gz contents and sizes; done means unnecessary source maps are excluded, duplicated bundle output is reduced where appropriate, and the nbextension still works.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, python
Domain
build-system, frontend, performance
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.