Skip to content

Compare dist sizes vs latest PyPI release#9621

Open
hugovk wants to merge 1 commit intopython-pillow:mainfrom
hugovk:compare-dist-sizes
Open

Compare dist sizes vs latest PyPI release#9621
hugovk wants to merge 1 commit intopython-pillow:mainfrom
hugovk:compare-dist-sizes

Conversation

@hugovk
Copy link
Copy Markdown
Member

@hugovk hugovk commented May 8, 2026

This helps us keep a handle on additions such as #7848 which considerably increase the size of wheels.

It adds this extra job to the wheels run:

image

It compares the wheels just build against the last release on PyPI.

  • Wheels which are on PyPI but no longer local (such as cp313-cp313t-macosx_10_13_x86_64.whl -- experimental 3.13t wheels have been dropped Drop experimental Python 3.13 free-threaded wheels #9535) are not counted in the total.

  • Wheels that are both on PyPI and local are included in the total.

  • New wheels in local are included in the total.

For example, here's the top and bottom of the long table:

Details image ... image

Example:

The script can also be run against a local dir of wheels. For example:

Details
uv run .github/compare-dist-sizes.py dist-jxl
## Dist size comparison vs Pillow 12.2.0 on PyPI

┌──────────────────────────────────────────────────────────────────────┬─────────────┬──────────┬─────────┐
│ File                                                                 │ Size before │ Size now │  Change │
├──────────────────────────────────────────────────────────────────────┼─────────────┼──────────┼─────────┤
│ sdist (.tar.gz)                                                      │     47.0 MB │  47.4 MB │  +0.90% │
│ cp310-cp310-macosx_10_10_x86_64.whl                                  │      5.4 MB │  10.1 MB │ +89.01% │
│ cp310-cp310-macosx_11_0_arm64.whl                                    │      4.7 MB │   7.5 MB │ +59.67% │
│ cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl         │      6.3 MB │      n/a │     n/a │
│ cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl           │      8.1 MB │      n/a │     n/a │
│ cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl        │      6.4 MB │   9.6 MB │ +51.13% │
│ cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl          │      7.1 MB │  11.4 MB │ +60.83% │
│ cp310-cp310-musllinux_1_2_aarch64.whl                                │      6.5 MB │  10.8 MB │ +66.42% │
│ cp310-cp310-musllinux_1_2_x86_64.whl                                 │      7.2 MB │  12.6 MB │ +75.32% │
│ cp310-cp310-win32.whl                                                │      6.4 MB │   6.9 MB │  +7.61% │
│ cp310-cp310-win_amd64.whl                                            │      7.1 MB │   7.7 MB │  +8.76% │
│ cp310-cp310-win_arm64.whl                                            │      2.5 MB │   2.9 MB │ +19.60% │
│ cp311-cp311-macosx_10_10_x86_64.whl                                  │      5.4 MB │  10.1 MB │ +89.01% │
│ cp311-cp311-macosx_11_0_arm64.whl                                    │      4.7 MB │   7.5 MB │ +59.67% │
│ cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl         │      6.3 MB │      n/a │     n/a │
│ cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl           │      8.1 MB │      n/a │     n/a │
│ cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl        │      6.4 MB │   9.7 MB │ +51.03% │
│ cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl          │      7.1 MB │  11.4 MB │ +60.74% │
│ cp311-cp311-musllinux_1_2_aarch64.whl                                │      6.5 MB │  10.8 MB │ +66.32% │
│ cp311-cp311-musllinux_1_2_x86_64.whl                                 │      7.2 MB │  12.6 MB │ +75.23% │
│ cp311-cp311-win32.whl                                                │      6.4 MB │   6.9 MB │  +7.61% │
│ cp311-cp311-win_amd64.whl                                            │      7.1 MB │   7.7 MB │  +8.76% │
│ cp311-cp311-win_arm64.whl                                            │      2.5 MB │   2.9 MB │ +19.60% │
│ cp312-cp312-macosx_10_13_x86_64.whl                                  │      5.3 MB │  10.0 MB │ +88.05% │
│ cp312-cp312-macosx_11_0_arm64.whl                                    │      4.7 MB │   7.5 MB │ +59.68% │
│ cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl         │      6.3 MB │      n/a │     n/a │
│ cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl           │      8.1 MB │      n/a │     n/a │
│ cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl        │      6.4 MB │   9.7 MB │ +51.00% │
│ cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl          │      7.1 MB │  11.4 MB │ +60.68% │
│ cp312-cp312-musllinux_1_2_aarch64.whl                                │      6.5 MB │  10.8 MB │ +66.25% │
│ cp312-cp312-musllinux_1_2_x86_64.whl                                 │      7.2 MB │  12.6 MB │ +75.14% │
│ cp312-cp312-win32.whl                                                │      6.4 MB │   6.9 MB │  +7.60% │
│ cp312-cp312-win_amd64.whl                                            │      7.1 MB │   7.7 MB │  +8.76% │
│ cp312-cp312-win_arm64.whl                                            │      2.5 MB │   2.9 MB │ +19.60% │
│ cp313-cp313-ios_13_0_arm64_iphoneos.whl                              │      4.1 MB │   4.1 MB │  +0.08% │
│ cp313-cp313-ios_13_0_arm64_iphonesimulator.whl                       │      4.2 MB │   4.2 MB │  +0.08% │
│ cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl                      │      3.6 MB │   3.6 MB │  +0.11% │
│ cp313-cp313-macosx_10_13_x86_64.whl                                  │      5.3 MB │  10.0 MB │ +88.05% │
│ cp313-cp313-macosx_11_0_arm64.whl                                    │      4.7 MB │   7.5 MB │ +59.68% │
│ cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl         │      6.3 MB │      n/a │     n/a │
│ cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl           │      8.1 MB │      n/a │     n/a │
│ cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl        │      6.4 MB │   9.7 MB │ +51.03% │
│ cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl          │      7.1 MB │  11.4 MB │ +60.73% │
│ cp313-cp313-musllinux_1_2_aarch64.whl                                │      6.5 MB │  10.8 MB │ +66.29% │
│ cp313-cp313-musllinux_1_2_x86_64.whl                                 │      7.2 MB │  12.6 MB │ +75.18% │
│ cp313-cp313-win32.whl                                                │      6.4 MB │   6.9 MB │  +7.61% │
│ cp313-cp313-win_amd64.whl                                            │      7.1 MB │   7.7 MB │  +8.76% │
│ cp313-cp313-win_arm64.whl                                            │      2.5 MB │   2.9 MB │ +19.60% │
│ cp313-cp313t-macosx_10_13_x86_64.whl                                 │      5.3 MB │      n/a │     n/a │
│ cp313-cp313t-macosx_11_0_arm64.whl                                   │      4.7 MB │      n/a │     n/a │
│ cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl        │      6.3 MB │      n/a │     n/a │
│ cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl          │      8.1 MB │      n/a │     n/a │
│ cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl       │      6.4 MB │      n/a │     n/a │
│ cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl         │      7.1 MB │      n/a │     n/a │
│ cp313-cp313t-musllinux_1_2_aarch64.whl                               │      6.5 MB │      n/a │     n/a │
│ cp313-cp313t-musllinux_1_2_x86_64.whl                                │      7.2 MB │      n/a │     n/a │
│ cp313-cp313t-win32.whl                                               │      6.4 MB │      n/a │     n/a │
│ cp313-cp313t-win_amd64.whl                                           │      7.1 MB │      n/a │     n/a │
│ cp313-cp313t-win_arm64.whl                                           │      2.5 MB │      n/a │     n/a │
│ cp314-cp314-ios_13_0_arm64_iphoneos.whl                              │      4.1 MB │   4.1 MB │  +0.08% │
│ cp314-cp314-ios_13_0_arm64_iphonesimulator.whl                       │      4.2 MB │   4.2 MB │  +0.08% │
│ cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl                      │      3.6 MB │   3.6 MB │  +0.10% │
│ cp314-cp314-macosx_10_15_x86_64.whl                                  │      5.3 MB │  10.0 MB │ +88.02% │
│ cp314-cp314-macosx_11_0_arm64.whl                                    │      4.7 MB │   7.5 MB │ +59.68% │
│ cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl         │      6.3 MB │      n/a │     n/a │
│ cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl           │      8.1 MB │      n/a │     n/a │
│ cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl        │      6.4 MB │   9.7 MB │ +51.02% │
│ cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl          │      7.1 MB │  11.4 MB │ +60.72% │
│ cp314-cp314-musllinux_1_2_aarch64.whl                                │      6.5 MB │  10.8 MB │ +66.28% │
│ cp314-cp314-musllinux_1_2_x86_64.whl                                 │      7.2 MB │  12.6 MB │ +75.17% │
│ cp314-cp314-win32.whl                                                │      6.5 MB │   7.0 MB │  +7.66% │
│ cp314-cp314-win_amd64.whl                                            │      7.2 MB │   7.9 MB │  +8.85% │
│ cp314-cp314-win_arm64.whl                                            │      2.6 MB │   3.1 MB │ +19.76% │
│ cp314-cp314t-macosx_10_15_x86_64.whl                                 │      5.3 MB │  10.0 MB │ +87.99% │
│ cp314-cp314t-macosx_11_0_arm64.whl                                   │      4.7 MB │   7.5 MB │ +59.64% │
│ cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl        │      6.3 MB │      n/a │     n/a │
│ cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl          │      8.1 MB │      n/a │     n/a │
│ cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl       │      6.4 MB │   9.7 MB │ +50.73% │
│ cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl         │      7.1 MB │  11.4 MB │ +60.43% │
│ cp314-cp314t-musllinux_1_2_aarch64.whl                               │      6.5 MB │  10.9 MB │ +65.95% │
│ cp314-cp314t-musllinux_1_2_x86_64.whl                                │      7.2 MB │  12.7 MB │ +74.87% │
│ cp314-cp314t-win32.whl                                               │      6.5 MB │   7.0 MB │  +7.66% │
│ cp314-cp314t-win_amd64.whl                                           │      7.2 MB │   7.9 MB │  +8.85% │
│ cp314-cp314t-win_arm64.whl                                           │      2.6 MB │   3.1 MB │ +19.75% │
│ pp311-pypy311_pp73-macosx_10_15_x86_64.whl                           │      5.3 MB │   9.9 MB │ +88.65% │
│ pp311-pypy311_pp73-macosx_11_0_arm64.whl                             │      4.7 MB │   7.5 MB │ +60.13% │
│ pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl  │      5.3 MB │      n/a │     n/a │
│ pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl    │      7.0 MB │      n/a │     n/a │
│ pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl │      5.4 MB │   8.6 MB │ +60.69% │
│ pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl   │      6.0 MB │  10.3 MB │ +71.43% │
│ pp311-pypy311_pp73-win_amd64.whl                                     │      7.1 MB │   7.7 MB │  +8.76% │
├──────────────────────────────────────────────────────────────────────┼─────────────┼──────────┼─────────┤
│ wheel average (65 wheels)                                            │      5.7 MB │   8.4 MB │ +46.83% │
│ wheel total (65 wheels)                                              │    371.8 MB │ 545.9 MB │ +46.83% │
├──────────────────────────────────────────────────────────────────────┼─────────────┼──────────┼─────────┤
│ artifacts total (66 artifacts)                                       │    418.8 MB │ 593.3 MB │ +41.68% │
└──────────────────────────────────────────────────────────────────────┴─────────────┴──────────┴─────────┘

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.

2 participants