indygreg / python-build-standalone

Produce redistributable builds of Python
BSD 3-Clause "New" or "Revised" License
1.71k stars 107 forks source link

Drop support for Windows static builds #221

Closed indygreg closed 3 months ago

indygreg commented 4 months ago

I started this project in support of PyOxidizer. And one of the reasons I started PyOxidizer was to see if it was possible to achieve single file executable Python applications.

While I arguably succeeded in accomplishing that single file executable goal, it came at a prohibitively high cost of being effectively unusable in many situations. The further I diverged from common Python practices, the more difficult it was to get PyOxidizer to work.

The Windows static builds in this project are an artifact from trying to achieve the original goals of PyOxidizer.

With the benefit of hindsight, the static Windows builds are borderline unusable. They have many known (and likely several unknown) quirks. I don't believe they are providing much value.

Over the history of this project, here are download statistics for the Windows static builds:

Build Install Only Download Count
i686-pc-windows-msvc-static 668
i686-pc-windows-msvc-shared 1039
x86_64-pc-windows-msvc-static 12792
x86_64-pc-windows-msvc-shared 914998
Build Full Archive Download Count
i686-pc-windows-msvc-static-noopt 85226
i686-pc-windows-msvc-shared-pgo 91420
x86_64-pc-windows-msvc-static-noopt 83895
x86_64-pc-windows-msvc-shared-pgo 135683

I reckon PyOxidizer is the biggest driver of the full archive downloads. And there we see that the static archives are relatively popular. But probably because PyOxidizer defaulted to using the Windows static builds in various releases.

The install only archives - which customers organically adopt - tells a different story. Here, shared is getting 71x the downloads as static.

The static Windows builds constitute a non-trivial amount of complexity to continue maintaining. The distributions break tons of assumptions made by Python projects in the wild. I think they are more trouble to support than they are worth.

So I'm proposing we stop supporting the Windows static builds.

Please leave a comment with objections if you have any.

In the absence of compelling arguments to preserve them, the Windows static distributions will be removed in a future release.

charliermarsh commented 3 months ago

I'll give this a shot.