fix(kaos): detect bash when git comes from a native MSYS2 toolchain - #1580
Merged
Conversation
git --exec-path of a native MSYS2 git returns a path under the modern toolchain prefixes (ucrt64, clang64, clangarm64), but the root inference scan only covered the legacy mingw32/mingw64 prefixes, so detection fell through to KaosShellNotFoundError on hosts without Git for Windows even though MSYS2 bash exists at <root>\usr\bin. Extend the segment scan to all current MSYS2 prefixes so the MSYS2 root is inferred correctly. mingw32/mingw64 stay for Git for Windows compatibility.
🦋 Changeset detectedLatest commit: 4ab5509 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
commit: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related Issue
Fixes #1579
Problem
On Windows, the shell probe infers the bash location from
git --exec-pathby scanning the path for known mingw-w64 prefixsegments, then looks for bash at
<root>\bin\bash.exe/<root>\usr\bin\bash.exe. The scan only covered the legacymingw32/mingw64prefixes. On a host where git comes from a nativeMSYS2 environment and Git for Windows is not installed, the exec path
(e.g.
C:/msys64/ucrt64/libexec/git-core) matches nothing, sodetection throws
KaosShellNotFoundErroreven though bash exists atC:\msys64\usr\bin\bash.exe. SettingKIMI_SHELL_PATHworks aroundit; installs passed the override were not affected.
What changed
MINGW_PREFIX_SETcovering all current MSYS2 toolchain prefixes, adding
ucrt64/clang64/clangarm64next to the legacymingw32/mingw64. A native MSYS2 git's exec path now walks backto the MSYS2 root and resolves the shared bash at
usr\bin\bash.exe.mingw32/mingw64first, so resolution results are unchanged andthe legacy prefixes stay for compatibility.
three new prefixes; existing suites continue to exercise Scoop shims
and Git for Windows layouts.
Checklist
gen-changesetsskill, or this PR needs no changeset.gen-docsskill, or this PR needs no doc update.