Skip to content

Use runner-provided Git for Windows now that it's 2.49.0 #1920

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

Merged

Conversation

EliahKagan
Copy link
Member

@EliahKagan EliahKagan commented Apr 4, 2025

Closes #1849

Because #1849 (git-for-windows/git#5436) caused some incorrect test failures in test-fixtures-windows, we have been upgrading Git for Windows on the runner for that job:

  • We starting doing that in of 4237e5a (#1870). At that time, we upgraded it to the most recent tag, to select the latest release even though it was a release candiate, because Git for Windows 2.49.0 had not yet had a stable release.

  • Then Git for Windows 2.49.0 got a stable release, and starting in ddef6d3 (#1892) we have upgraded to the release marked "latest" (which in Git for Windows is always the latest stable release).

More recently, the Windows Server 2022 runner image (which the windows-latest label we use currently selects) has upgraded its Git for Windows installation from 2.48.1 to 2.49.0: https://github.com/actions/runner-images/releases/tag/win22%2F20250330.1

It is therefore no longer necessary for the test-fixtures-windows job to upgrade Git for Windows on the runner. This removes the step that did that. (Either version of the step could be brought back from the history if ever needed again.)

This is as planned in #1849 (comment).

@EliahKagan EliahKagan force-pushed the test-fixtures-windows-default branch from f951866 to c5d3793 Compare April 4, 2025 04:39
Copy link
Member Author

@EliahKagan EliahKagan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although the new runner image is a stable release and it's been a few days, it is apparently not yet in use on the GitHub-hosted runners. When CI runs on this PR, the runner has has Git 2.48.1. The runner image here is 20250309.1.0 while the version with Git 2.49.0 is 20250330.1.1. I think this can probably be kept open until the GitHub-hosted runners use the new image, then merged. (If that doesn't happen soon, then this PR could be closed and reopened later.)

@EliahKagan EliahKagan force-pushed the test-fixtures-windows-default branch from c5d3793 to c206852 Compare April 5, 2025 03:02
Because GitoxideLabs#1849 (git-for-windows/git#5436)
caused some incorrect test failures in `test-fixtures-windows`, we
have been upgrading Git for Windows on the runner for that job:

- We starting doing that in of 4237e5a (GitoxideLabs#1870). At that time, we
  upgraded it to the most recent tag, to select the latest release
  even though it was a release candiate, because Git for Windows
  2.49.0 had not yet had a stable release.

- Then Git for Windows 2.49.0 got a stable release, and starting in
  ddef6d3 (GitoxideLabs#1892) we have upgraded to the release marked "latest"
  (which in Git for Windows is always the latest stable release).

More recently, the Windows Server 2022 runner image (which the
`windows-latest` label we use currently selects) has upgraded its
Git for Windows installation from 2.48.1 to 2.49.0:
https://github.com/actions/runner-images/releases/tag/win22%2F20250330.1

It is therefore no longer necessary for the `test-fixtures-windows`
job to upgrade Git for Windows on the runner. This removes the step
that did that. (Either version of the step could be brought back
from the history if ever needed again.)

This closes GitoxideLabs#1849, per the plan in:
GitoxideLabs#1849 (comment)
@EliahKagan EliahKagan force-pushed the test-fixtures-windows-default branch from c206852 to 3501e82 Compare April 8, 2025 06:35
@EliahKagan
Copy link
Member Author

EliahKagan commented Apr 10, 2025

It turns out that what happened is that, due to regressions with Rust and CMake in the image (actions/runner-images#11941), the image was rolled back soon after being deployed (actions/runner-images#11953).

Since then, a newer image 20250406.1.1 is being used. I've observed it to use that newer image in all of a number of re-runs here and in my fork. Still, when it first started being used this morning, it was labeled as a pre-release in runner-images, so I held off on merging this PR in case the image was undergoing A/B testing such that we might still get the older one (though I don't think that was the case). More recently, it is no longer labeled a pre-release. So I think this is ready to merge now.

Edit: I think this further indicates that the upgrade is well in place and can be relied on: actions/runner-images#11953 (comment)

@EliahKagan EliahKagan marked this pull request as ready for review April 10, 2025 02:31
@EliahKagan EliahKagan merged commit 35a9950 into GitoxideLabs:main Apr 10, 2025
77 of 79 checks passed
@EliahKagan EliahKagan deleted the test-fixtures-windows-default branch April 10, 2025 02:31
EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Jul 13, 2025
The `windows-11-arm` runner still has Git for Windows 2.48.1. It
thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now.
This is responsible for failures seen so far on `windows-11-arm`,
other than the failures that appear to be related to performance.

This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for
Windows installation on the runner, but does so *only* in the
`windows-11-arm` job, and *not* in the `windows-latest` job. The
code is modified to download the ARM64 installer rather than the
x86-64 installer.

Besides being only done for `windows-11-arm` and installing an
ARM64 build, this is the same as the code in GitoxideLabs#1892 (building
on GitoxideLabs#1870). It thus attempts to install the latest stable release,
but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background.

Especially in view of the preview status of the `windows-11-arm`
image, it may be a good idea to inspect and report the status of
the Git for Windows installation before and after the upgrade. But
this commit does not add such functionality.
EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Jul 13, 2025
The `windows-11-arm` runner still has Git for Windows 2.48.1. It
thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now.
This is responsible for failures seen so far on `windows-11-arm`,
other than the failures that appear to be related to performance.

This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for
Windows installation on the runner, but does so *only* in the
`windows-11-arm` job, and *not* in the `windows-latest` job. The
code is modified to download the ARM64 installer rather than the
x86-64 installer.

Besides being only done for `windows-11-arm` and installing an
ARM64 build, this is the same as the code in GitoxideLabs#1892 (building
on GitoxideLabs#1870). It thus attempts to install the latest stable release,
but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background.

Especially in view of the preview status of the `windows-11-arm`
image, it may be a good idea to inspect and report the status of
the Git for Windows installation before and after the upgrade. But
this commit does not add such functionality.
EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Jul 13, 2025
The `windows-11-arm` runner still has Git for Windows 2.48.1. It
thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now.
This is responsible for failures seen so far on `windows-11-arm`,
other than the failures that appear to be related to performance.

This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for
Windows installation on the runner, but does so *only* in the
`windows-11-arm` job, and *not* in the `windows-latest` job. The
code is modified to download the ARM64 installer rather than the
x86-64 installer.

Besides being only done for `windows-11-arm` and installing an
ARM64 build, this is the same as the code in GitoxideLabs#1892 (building
on GitoxideLabs#1870). It thus attempts to install the latest stable release,
but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background.

Especially in view of the preview status of the `windows-11-arm`
image, it may be a good idea to inspect and report the status of
the Git for Windows installation before and after the upgrade. But
this commit does not add such functionality.
EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Jul 14, 2025
The `windows-11-arm` runner still has Git for Windows 2.48.1. It
thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now.
This is responsible for failures seen so far on `windows-11-arm`,
other than the failures that appear to be related to performance.

This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for
Windows installation on the runner, but does so *only* in the
`windows-11-arm` job, and *not* in the `windows-latest` job. The
code is modified to download the ARM64 installer rather than the
x86-64 installer.

Besides being only done for `windows-11-arm` and installing an
ARM64 build, this is the same as the code in GitoxideLabs#1892 (building
on GitoxideLabs#1870). It thus attempts to install the latest stable release,
but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background.

Especially in view of the preview status of the `windows-11-arm`
image, it may be a good idea to inspect and report the status of
the Git for Windows installation before and after the upgrade. But
this commit does not add such functionality.
EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Jul 14, 2025
Although this is (currently, and in the immediately foreseeable
future) only used in one place, it's cumbersome and also something
that we've removed and reintroduced before. Making it a composite
action may make it reasonable to keep it around for next time it is
needed.

It had previously been removed based on the idea that it wasn't
clear what form it would need to be in if needed again. Now that it
is needed again, the current form as well as the form that seems
most likely for future needs is to install the latest stable
release of Git for Windows (rather than a release candidate, hard
coded version, etc.).

Note that this should still not be used habitually, as the Git for
Windows installation that ships preinstalled on a runner image
should be preferred except when insufficient.

See GitoxideLabs#1870, GitoxideLabs#1892, GitoxideLabs#1920, and the recent commit that reintroduced
this logic, for background.
EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Jul 14, 2025
Although this is -- currently, and in the immediately foreseeable
future -- only used in one place, it's cumbersome and also
something that we've removed and reintroduced before. Making it a
composite action may make it reasonable to keep it around for next
time it is needed.

It had previously been removed based on the idea that it wasn't
clear what form it would need to be in if needed again. Now that it
is needed again, the current form as well as the form that seems
most likely for future needs is to install the latest stable
release of Git for Windows -- rather than a release candidate, hard
coded version, etc.

Note that this should still not be used habitually, as the Git for
Windows installation that ships preinstalled on a runner image
should be preferred except when insufficient.

See GitoxideLabs#1870, GitoxideLabs#1892, GitoxideLabs#1920, and the recent commit that reintroduced
this logic, for background.

This may be a bit complicated to get working, because we want to
run the composite action before we have used `actions/checkout`.
This is so `actions/checkout` can use and therefore verify that
the new Git for Windows version works, and so we don't leave any
dangling subprocesses or otherwise open files that would keep the
new Git for Windows's Inno Setup installer from removing or
replacing the old Git for Windows. But to run a composite action
from a`./` path, one ordinarily needs to have checked out the
repository already.

A composite action can of course be run from a specified ref on a
specified repository. But unless we're actually spinning it out to
be a general reusable action that versions separately from
workflows here such as `ci.yml`, we would always want to run the
composite action as defined at the same commit we are at. (The
effect of modifying it on a feature branch is othewise cumbersome
and unintuitive.) This same commit is often pointed to by the same
remote ref -- but not always, because the `pull_request` trigger
runs workflows on a temporary merge commit.
EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Jul 15, 2025
Extract "Upgrade Git for Windows" to a composite action

Although this is -- currently, and in the immediately foreseeable
future -- only used in one place, it's cumbersome and also
something that we've removed and reintroduced before. Making it a
composite action may make it reasonable to keep it around for next
time it is needed.

It had previously been removed based on the idea that it wasn't
clear what form it would need to be in if needed again. Now that it
is needed again, the current form as well as the form that seems
most likely for future needs is to install the latest stable
release of Git for Windows -- rather than a release candidate, hard
coded version, etc.

Note that this should still not be used habitually, as the Git for
Windows installation that ships preinstalled on a runner image
should be preferred except when insufficient.

See GitoxideLabs#1870, GitoxideLabs#1892, GitoxideLabs#1920, and the recent commit that reintroduced
this logic, for background.
EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Jul 15, 2025
The `windows-11-arm` runner still has Git for Windows 2.48.1. It
thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now.
This is responsible for failures seen so far on `windows-11-arm`,
other than the failures that appear to be related to performance.

This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for
Windows installation on the runner, but does so *only* in the
`windows-11-arm` job, and *not* in the `windows-latest` job. The
code is modified to download the ARM64 installer rather than the
x86-64 installer.

Besides being only done for `windows-11-arm` and installing an
ARM64 build, this is the same as the code in GitoxideLabs#1892 (building
on GitoxideLabs#1870). It thus attempts to install the latest stable release,
but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background.

Especially in view of the preview status of the `windows-11-arm`
image, it may be a good idea to inspect and report the status of
the Git for Windows installation before and after the upgrade. But
this commit does not add such functionality.
EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Jul 19, 2025
The `windows-11-arm` runner still has Git for Windows 2.48.1. It
thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now.
This is responsible for failures seen so far on `windows-11-arm`,
other than the failures that appear to be related to performance.

This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for
Windows installation on the runner, but does so *only* in the
`windows-11-arm` job, and *not* in the `windows-latest` job. The
code is modified to download the ARM64 installer rather than the
x86-64 installer.

Besides being only done for `windows-11-arm` and installing an
ARM64 build, this is the same as the code in GitoxideLabs#1892 (building
on GitoxideLabs#1870). It thus attempts to install the latest stable release,
but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background.

Especially in view of the preview status of the `windows-11-arm`
image, it may be a good idea to inspect and report the status of
the Git for Windows installation before and after the upgrade. But
this commit does not add such functionality.
EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Jul 19, 2025
The `windows-11-arm` runner still has Git for Windows 2.48.1. It
thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now.
This is responsible for failures seen so far on `windows-11-arm`,
other than the failures that appear to be related to performance.

This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for
Windows installation on the runner, but does so *only* in the
`windows-11-arm` job, and *not* in the `windows-latest` job. The
code is modified to download the ARM64 installer rather than the
x86-64 installer.

Besides being only done for `windows-11-arm` and installing an
ARM64 build, this is the same as the code in GitoxideLabs#1892 (building
on GitoxideLabs#1870). It thus attempts to install the latest stable release,
but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background.

Especially in view of the preview status of the `windows-11-arm`
image, it may be a good idea to inspect and report the status of
the Git for Windows installation before and after the upgrade. But
this commit does not add such functionality.
EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Jul 19, 2025
The `windows-11-arm` runner still has Git for Windows 2.48.1. It
thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now.
This is responsible for failures seen so far on `windows-11-arm`,
other than the failures that appear to be related to performance.

This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for
Windows installation on the runner, but does so *only* in the
`windows-11-arm` job, and *not* in the `windows-latest` job. The
code is modified to download the ARM64 installer rather than the
x86-64 installer.

Besides being only done for `windows-11-arm` and installing an
ARM64 build, this is the same as the code in GitoxideLabs#1892 (building
on GitoxideLabs#1870). It thus attempts to install the latest stable release,
but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background.

Especially in view of the preview status of the `windows-11-arm`
image, it may be a good idea to inspect and report the status of
the Git for Windows installation before and after the upgrade. But
this commit does not add such functionality.
EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Jul 19, 2025
The `windows-11-arm` runner still has Git for Windows 2.48.1. It
thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now.
This is responsible for failures seen so far on `windows-11-arm`,
other than the failures that appear to be related to performance.

This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for
Windows installation on the runner, but does so *only* in the
`windows-11-arm` job, and *not* in the `windows-latest` job. The
code is modified to download the ARM64 installer rather than the
x86-64 installer.

Besides being only done for `windows-11-arm` and installing an
ARM64 build, this is the same as the code in GitoxideLabs#1892 (building
on GitoxideLabs#1870). It thus attempts to install the latest stable release,
but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background.

Especially in view of the preview status of the `windows-11-arm`
image, it may be a good idea to inspect and report the status of
the Git for Windows installation before and after the upgrade. But
this commit does not add such functionality.
EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Jul 22, 2025
The `windows-11-arm` runner still has Git for Windows 2.48.1. It
thus remains affected by GitoxideLabs#1849 (git-for-windows/git#5436) for now.
This is responsible for failures seen so far on `windows-11-arm`,
other than the failures that appear to be related to performance.

This commit restores the pre-GitoxideLabs#1920 logic for upgrading the Git for
Windows installation on the runner, but does so *only* in the
`windows-11-arm` job, and *not* in the `windows-latest` job. The
code is modified to download the ARM64 installer rather than the
x86-64 installer.

Besides being only done for `windows-11-arm` and installing an
ARM64 build, this is the same as the code in GitoxideLabs#1892 (building
on GitoxideLabs#1870). It thus attempts to install the latest stable release,
but not pre-releases. See 3501e82 (GitoxideLabs#1920) for further background.

Especially in view of the preview status of the `windows-11-arm`
image, it may be a good idea to inspect and report the status of
the Git for Windows installation before and after the upgrade. But
this commit does not add such functionality.
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.

3 new Windows GIX_TEST_IGNORE_ARCHIVES=1 failures with Git 2.48.1
1 participant