Repository navigation
ci: Fix Windows Conan build hanging on pip's git clone - #1480
Draft
cedrik-fuoco-adsk wants to merge 2 commits into
Draft
cedrik-fuoco-adsk wants to merge 2 commits into
cedrik-fuoco-adsk wants to merge 2 commits into
Conversation
pip clones git+ requirements with "git" from PATH, which inside msys2 is msys2's git, the binary that intermittently hangs on Windows. The CMAKE_PROGRAM_PATH fix only covers find_program, so pip's clone of OpenTimelineIO still used msys2's git. Prepend the directory of GIT_EXECUTABLE to PATH for the pip requirements install so it uses the same git as the rest of the build. Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Print which sh, make and awk FFmpeg's build uses, the dependency command configure wrote to ffbuild/config.mak, and a make/sh/awk backslash round trip started both from sh and from MSBuild. Remove before merge. Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
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.
Linked issues
None.
Summarize your change.
On Windows, pip's install of the Python requirements now clones
git+requirements with the git CMake found (Git for Windows on CI) instead of msys2's git.Describe the reason for the change.
The Windows Conan job still hangs after #1453, for example https://github.com/AcademySoftwareFoundation/OpenRV/actions/runs/41551959301/job/125641485096.
#1453 works for every clone CMake runs: in that run they all used
C:/Program Files/Git/cmd/git.exeand finished. The hang moved to pip. Installingrequirements.txt, pip rangit clone --filter=blob:none --quiet https://github.com/cedrik-fuoco-adsk/OpenTimelineIO.git ...and it never returned, with two orphangitprocesses left at the six-hour cancel.pip doesn't use
find_program, soCMAKE_PROGRAM_PATHhas no effect on it. It runsgitby name fromPATH, and in the msys2 shell msys2's/usr/bin/git.execomes first, which is the git that hangs.I scoped this to the pip command rather than the job's
PATH, because putting Git for Windows first on the globalPATHbroke FFmpeg's build in #1453.Describe what you have tested and on which operating system.
Not tested on Windows yet; this draft is to get the Conan Windows build to run.
cmake-formatpasses, and I checkedcmake -E env --modify PATH=path_list_prepend:with a path containing a space on macOS. The hang is intermittent, so one green run won't prove the fix. A few nightlies without a hang would.Add a list of changes, and note any that might need special attention during the review.
cmake/dependencies/python3.cmake: on Windows, prepended the directory ofGIT_EXECUTABLEtoPATHfor the pip requirements install, using the same--modify PATH=path_list_prepend:pattern already used there for cmake andcl.exe.GIT_EXECUTABLEcomes fromFIND_PACKAGE(Git)incmake/dependencies/CMakeLists.txt, which runs beforeINCLUDE(python3)and honorsCMAKE_PROGRAM_PATH. If git isn't found, nothing changes.