Skip to content

Bug: manifest preflight compares MSYS and Win32 temp paths literally #10824

Description

@tianmind-studio

Summary

make preflight cannot complete on native Windows because test_run_checks.py assumes the path passed through Bash has the same string representation as Python's Win32 temporary path.

Reproduction

  1. Run the local manifest preflight on Windows.
  2. Ensure the subprocess uses Git Bash (the bare bash executable otherwise resolves to C:\Windows\System32\bash.exe/WSL before PATH entries under Windows CreateProcess).
  3. RunnerBehaviorTests.test_release_process_guard_uses_locked_pyyaml_in_every_declared_lane reaches its final assertion and fails:
/tmp/tmpXXXX/.github/scripts/check-release-process-guards.py
!=
C:\Users\...\AppData\Local\Temp\tmpXXXX\.github\scripts\check-release-process-guards.py

The command itself succeeds; only the raw path-string comparison at .github/scripts/test_run_checks.py:435 fails. This stops check-manifest-contract, the first always-selected preflight check, so later checks never run.

Expected

The contract test should compare the same logical path across MSYS and Win32 representations (or capture a platform-neutral argument identity), and Windows subprocesses should resolve the intended Git Bash explicitly rather than relying on bare-name executable search.

Evidence

Observed while validating #10823 on Windows 11 with Python 3.11.15 and Git Bash 5.2.15. The other 29 test_run_checks.py cases and all 13 remaining checks selected for that diff passed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    In progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions