✨ Migrating away from $BITNESS
in favor of architecture names
#4203
Replies: 3 comments 3 replies
-
Hmm. I am still not quite happy with deviating so much from MSYS2, at least when it comes to tooling. The end-user facing artifacts, sure, I get that |
Beta Was this translation helpful? Give feedback.
-
@dscho assuming that we'll finally get some stable ARM64 pipelines soon, I'd like to revive this discussion around the naming of the architectures. I'd like to specifically discuss the release artifact names. May I suggest the following three-step approach:
I'd be happy to update the release scripts, and will go with whatever suffixes you prefer ( WDYT? |
Beta Was this translation helpful? Give feedback.
-
After thinking about this for a good while, I think that I would prefer to keep calling the x86_64 installer Maybe a note in each GitHub Release's description ("Note: For historical reasons, the artifacts for Intel/AMD have a |
Beta Was this translation helpful? Give feedback.
-
Historically, Git for Windows has been using the
$BITNESS
variable in quite a few places in its tooling. It was used for things like:/mingw$BITNESS
would resolve to/mingw32
andmingw64
)Git-2.39.0.2-$BITNESS-bit.exe
andPortableGit-2.39.0.2-$BITNESS-bit.7z.exe
.This was helpful, because Git for Windows has been supporting both 32-bit (
x86
) and 64-bit (amd64
) Windows for quite a while.However, now that
arm64
is coming into the mix, this approach no longer works. After some discussion on how to move forward, it was decided to use the following naming for the various architectures:x86
amd64
arm64
This has implications for multiple aspects of Git for Windows's tooling and artifacts. This discussion aims to provide clarity on when to use which names.
Artifact names
The will be a transition period for the new artifact names, as some downstream projects depend on Git for Windows having certain artifact names. Git for Windows will publish binaries both with the old and the new names for the next two releases after 2.39.0. This means that a single GitHub release will contain both artifact names, which are the exact same binaries in the background.
The transition period mentioned above is preliminary and might be changed if there are any blockers in the release process.
MINGW prefixes
/mingw$BITNESS
can no longer be used as the prefix forarm64
is/clangarm64
. A different approach is needed.In most cases, you can use the predefined
$MINGW_PREFIX
. It resolves to/mingw32
,/mingw64
and/clangarm64
, which is consistent with MSYS2's environment naming. Whenever an$MSYSTEM
is set in the shell (which is true when using thesetup-git-for-windows
GitHub action for example), you can expect$MSYSTEM_PREFIX
to be set as well. Please double-check this in your scripts.Pacman
This affects all packages that start with
mingw-w64-*
. As Git for Windows uses the same Pacman package names as upstream MSYS2, no major changes are needed here. Use the predefined$MINGW_PACKAGE_PREFIX
whenever possible. It resolves tomingw-w64-x86_64
,mingw-w64-i686
andmingw-w64-clang-aarch64
.Note that MSYS2 uses
aarch64
andclang-aarch64
for package names. This means that Pacman packages are the only exception to the architectures mentioned at the beginning of this post (amd64
,x86
,arm64
).A new Pacman repository has been created for arm64, meaning the list of Git for Windows's repositories now looks as follows:
SDKs
The Git for Windows SDKs will be renamed to be in line with the architectures mentioned at the beginning of this discussion:
Please let us know if you have any questions or feedback about this! ✨
CC @dscho @rimrul
Beta Was this translation helpful? Give feedback.
All reactions