Skip to content

Prepare for the architecture split between MSYS2 runtime 3.3.* vs 3.4.*#33

Merged
dscho merged 6 commits into
git-for-windows:mainfrom
dscho:msys2-runtime-3.3-vs-3.4
May 12, 2023
Merged

Prepare for the architecture split between MSYS2 runtime 3.3.* vs 3.4.*#33
dscho merged 6 commits into
git-for-windows:mainfrom
dscho:msys2-runtime-3.3-vs-3.4

Conversation

@dscho

@dscho dscho commented May 12, 2023

Copy link
Copy Markdown
Member

From here on out, we will build msys2-runtime-3.3 only for i686, and msys2-runtime only for x86_64. This is a necessary prerequisite for upgrading msys2-runtime to the current version, v3.4.6, because that simply does not support i686 anymore (and to accommodate for that, we move git-sdk-32 to using msys2-runtime-3.3 instead of msys2-runtime).

dscho added 6 commits May 12, 2023 11:57
This is incredibly helpful because it allows for setting breakpoints,
watches, single-stepping and more.

Signed-off-by: Johannes Schindelin <[email protected]>
Git Credential Manager is special in that we do not actually _build_ the
program, we simply re-bundle whatever the project published at
https://github.com/git-ecosystem/git-credential-manager.

Therefore, we can get away with _not_ triggering a separate aarch64
run, but we can bundle i686, x86_64 and aarch64 packages in a single
workflow run.

Verify that this is actually what happens.

Signed-off-by: Johannes Schindelin <[email protected]>
Regular MINGW-packages (i.e. packages where the programs _have_ to be
built, unlike, say, Git Credential Manager) need to be deployed in
separate workflow runs for the i686/x86_64 and for the aarch64
architectures, as packages cannot be cross-compiled for different
architectures (except for i686 and x86_64).

Signed-off-by: Johannes Schindelin <[email protected]>
We are about to change for which architectures the two separate MSYS2
runtime packages are built: the v3.3.* legacy package will be built only
for i686, the regular package only for x86_64.

To ensure that those changes are done correctly, let's document the
current behavior first.

Signed-off-by: Johannes Schindelin <[email protected]>
There was a lot of copy/edited code in that part, owing to the fact that
it is not _completely_ trivial to generalize adding the intended Check
Runs, triggering the intended workflow runs, updating the PR comment
with said information, and then updating the Check Runs, too.

Unfortunately, there is no really good way to present this refactoring,
as it collapses the separate MSYS2/MINGW code paths into a single one.

The end result looks a lot cleaner, though, with the only tricky bit
being how the comment is constructed (since there is now a variable
number of workflow runs that may need to be listed).

Signed-off-by: Johannes Schindelin <[email protected]>
…tures

The purpose of introducing a separate `msys2-runtime-3.3` package is to
allow supporting Git for Windows on i686 setups, even though it cannot
receive updates to the latest MSYS2 runtime versions any longer because
the MSYS2 project dropped i686 support a long time ago.

To that end, let's actually build `msys2-runtime-3.3` _only_ for i686,
and `msys2-runtime` _only_ for x86_64.

That split will allow us to change the `msys2-runtime-3.3` package
definition so that it supersedes ("replaces") `msys2-runtime` and
automagically updates the 32-bit Git for Windows SDKs out there.

This is a step toward phasing out i686 support of Git for Windows, see:
git-for-windows/git#4279 (comment) for
more details about that plan.

Signed-off-by: Johannes Schindelin <[email protected]>
@dscho
dscho requested a review from rimrul May 12, 2023 10:09
@dscho
dscho marked this pull request as ready for review May 12, 2023 10:17
@dscho dscho self-assigned this May 12, 2023
@dscho
dscho merged commit e98b5a2 into git-for-windows:main May 12, 2023
@dscho
dscho deleted the msys2-runtime-3.3-vs-3.4 branch May 12, 2023 20:42
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.

1 participant