Bug 258704

Summary: [Win] "git-webkit pr" reports "FileNotFoundError: [WinError 2] The system cannot find the file specified"
Product: WebKit Reporter: Fujii Hironori <Hironori.Fujii>
Component: Tools / TestsAssignee: Fujii Hironori <Hironori.Fujii>
Status: RESOLVED FIXED    
Severity: Normal CC: webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=239730

Description Fujii Hironori 2023-06-29 17:21:13 PDT
[Win] "git-webkit pr" reports "FileNotFoundError: [WinError 2] The system cannot find the file specified"

PS C:\home\webkit\ga> python .\Tools\Scripts\git-webkit pr
Traceback (most recent call last):
  File "C:\home\webkit\ga\Tools\Scripts\git-webkit", line 82, in <module>
    sys.exit(program.main(
             ^^^^^^^^^^^^^
  File "C:\home\webkit\ga\Tools\Scripts\libraries\webkitscmpy\webkitscmpy\program\__init__.py", line 183, in main
    return parsed.main(
           ^^^^^^^^^^^^
  File "C:\home\webkit\ga\Tools\Scripts\libraries\webkitscmpy\webkitscmpy\program\pull_request.py", line 721, in main
    return cls.create_pull_request(repository, args, branch_point)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\home\webkit\ga\Tools\Scripts\libraries\webkitscmpy\webkitscmpy\program\pull_request.py", line 388, in create_pull_request
    if args.checks and not cls.pre_pr_checks(repository):
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\home\webkit\ga\Tools\Scripts\libraries\webkitscmpy\webkitscmpy\program\pull_request.py", line 319, in pre_pr_checks
    command = run(path.split(' '), cwd=repository.root_path)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\home\webkit\ga\Tools\Scripts\libraries\webkitcorepy\webkitcorepy\subprocess_utils.py", line 52, in run
    return subprocess.run(*popenargs, timeout=timeout, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\subprocess.py", line 548, in run
    with Popen(*popenargs, **kwargs) as process:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\subprocess.py", line 1024, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Program Files\Python311\Lib\subprocess.py", line 1509, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 2] The system cannot find the file specified
Comment 1 Fujii Hironori 2023-06-29 17:22:39 PDT
"python3" is hard-coded. But, no python3.exe on Windows.
https://github.com/WebKit/WebKit/blob/73b58272b44dbb9c6edfec221839210a04d7f92c/metadata/git_config_extension#L21
Comment 2 Fujii Hironori 2023-06-29 17:24:12 PDT
There are two ways to work around.

Adding git config:

> git config --add webkitscmpy.pre-pr.style-checker "python Tools/Scripts/check-webkit-style"

Creating a symlink in the directory of python.exe:

> mklink python3.exe python.exe
Comment 3 Radar WebKit Bug Importer 2023-07-06 17:22:17 PDT
<rdar://problem/111878804>
Comment 4 Fujii Hironori 2023-10-15 21:47:03 PDT
Pull request: https://github.com/WebKit/WebKit/pull/19102
Comment 5 EWS 2023-10-16 13:24:10 PDT
Committed 269375@main (3e52075ba71d): <https://commits.webkit.org/269375@main>

Reviewed commits have been landed. Closing PR #19102 and removing active labels.