Skip to content

Announce deprecation of 32-bit Git for Windows, define a timeline #4279

Closed
@dscho

Description

@dscho

Cygwin v3.4.0 already dropped support for i686, and hence Git for Windows won't be able to provide newer 32-bit builds of the MSYS2 runtime as soon as switching away from the v3.3.x train to the v3.4.x train.

This was coming for a long time, and I thought a lot about the best way to keep i686 support in Git for Windows, but I failed to open a ticket to communicate my plans. This is that ticket.

As of time of writing, Git for Windows v2.39.1's 64-bit installer (i.e. targeting x86_64) has been downloaded a little over 1.6 million times, while the 32-bit installer (i.e. targeting i686) has been downloaded just over 80 thousand times. While download numbers do not correspond exactly 1:1 with user numbers, absent any telemetry they are the best indicator we have for assessing what Windows versions Git for Windows' users need to see supported.

Git for Windows does not have telemetry

Why? Well, we cannot do that. Even if it would be really helpful, e.g. to assess what features to focus on.

But there are a few very, very loud opponents to such a thing who always make a right mess whenever an Open Source project tries to even so much as provide an opt-in way to gather some dependable usage numbers. Even if those numbers would help the Open Source projects a lot. But those opponents think they help the Open Source projects better by making loud noises about privacy concerns.

To stave off such totally unproductive exchanges, Git for Windows simply does not have telemetry, not even opt-in, and won't ever have it. And whenever questions come up like "how many users still need 32-bit support, or support for Windows Vista?" we have to guess. Unsatisfying, but it is what it is.

So roughly speaking, we must assume that one i686 version of Git for Windows is installed for every twenty installed x86_64 versions.

This would suggest that it would be premature to completely drop supporting i686 installers. But once we switch to MSYS2 runtime v3.4.x, as mentioned earlier we won't be able to move the i686 variant of Git for Windows along, we will eternally leave those variants with v3.3.x of the MSYS2 runtime.

Proposed timeline

There are four phases to this:

  1. Announce the deprecation
  2. Move the x86_64-variant of Git for Windows over to MSYS2 runtime v3.4.x, leaving the i686-variant lagging behind
  3. Stop providing i686 builds of Git for Windows, except for MinGit
  4. Stop providing i686 builds of Git for Windows altogether

For phase 2, I propose to declare Git for Windows v2.40.x to be the last to fully support i686 builds. I will try my best to determine whether this serves Git for Windows' users well enough.

The need for phase 3 (build only 32-bit MinGit but no other official 32-bit artifacts) arises due to some applications bundling 32-bit MinGit, such as Visual Studio 2019, which is supported until April 10th, 2029.

With this information, I intend to announce the deprecation as soon as possible.

As to phases 3/4: I do not want to render myself into a corner by setting a fixed date prematurely, but my gut feeling is that for the start of phase 3, "some time in 2025" should sound like a sensible timeline to aim for.

Action items

  • Find the best venue to figure out how many users actually need i686 support
    ↳ We heard back from Visual Studio, who need to service Visual Studio 2019 (that ships with a 32-bit MinGit) until April 10th 2029
    ↳ Our best bet is probably the announcement in the release notes combined with the warning in the installer
  • Phase 1 (leading up to Git for Windows v2.40.0)
  • Phase 2 (after Git for Windows v2.40.0)
  • Phase 3 (some time in 2025)
    • We will want to limit the git-artifacts workflow for the i686 architecture to build only MinGit (not even BusyBox-based MinGit)
    • We will want to adjust Git for Windows' home page to no longer suggest downloading the 32-bit installer.
    • The check-for-missing-dlls workflows in build-extra and git-sdk-32 need to run only for MinGit
  • Phase 4 (some time in 2029)
    • We will need to drop the 32-bit parts of the check-for-missing-dlls and main workflows in build-extra
    • we will need to stop building i686 variants of all packages, i.d. once again modify the /deploy command
    • We will want to drop i686 support from git-for-windows-automation's workflows
    • We will need to stop setup-git-for-windows-sdk from supporting the i686 architecture altogether
    • We will want to retire (read: archive) the git-sdk-32 repository

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions