Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: dependency resolver on windows only works when --enable_runfiles…
… and --windows_enable_symlinks is used (#2457) `compile_pip_requirements` doesn't work as expected on Windows unless both `--enable_runfiles` and `--windows_enable_symlinks` are used. Both options default to off on Windows because the filesystem on Windows makes setting up the runfiles directories with actual files very slow. This means that anyone on Windows with a default set up has to search around the Github issues to try and figure out why things don't work as advertised. The `dependency_resolver.py` doesn't inherently require these options, it just had two bugs that prevented it from working. 1. calling pip_compile exits the whole program so it never gets to run the code that should copy the output to the source tree. Things just happen to work on linux because the runfiles are symlinks, and it does not need to copy anything. 2. it assumed the `runfiles` resolved file would be in the runfiles tree, but on Windows, when `--enable_runfiles` is not set, it actually gets resolved to a file in the source tree. Before: ```sh bazel run //third_party/python:requirements.update Starting local Bazel server and connecting to it... INFO: Invocation ID: 8aa3e832-78ce-4999-912b-c43e7ca3212b INFO: Analyzed target //third_party/python:requirements.update (129 packages loaded, 9563 targets configured). INFO: Found 1 target... Target //third_party/python:requirements.update up-to-date: bazel-bin/third_party/python/requirements.update.zip bazel-bin/third_party/python/requirements.update.exe INFO: Elapsed time: 60.964s, Critical Path: 0.77s INFO: 8 processes: 2 remote cache hit, 6 internal. INFO: Build completed successfully, 8 total actions INFO: Running command line: bazel-bin/third_party/python/requirements.update.exe '--src=_main/third_party/python/requirements.txt' _main/third_party/python/requirements_lock.txt //third_party/python:requirements.update '--resolver=backtracking' --allow-unsafe --generate-hashes '--requirements-windows=_main/third_party/python/requirements_windows.txt' --strip-extras Updating third_party/python/requirements_windows.txt Error: Could not open file 'third_party/python/requirements_windows.txt': No such file or directory ``` After: ```sh bazel run //third_party/python:requirements.update INFO: Invocation ID: 39f999a0-6c1d-4b2c-a1be-3d71e838916a INFO: Analyzed target //third_party/python:requirements.update (5 packages loaded, 45 targets configured). INFO: Found 1 target... Target //third_party/python:requirements.update up-to-date: bazel-bin/third_party/python/requirements.update.zip bazel-bin/third_party/python/requirements.update.exe INFO: Elapsed time: 5.410s, Critical Path: 4.79s INFO: 2 processes: 1 internal, 1 local. INFO: Build completed successfully, 2 total actions INFO: Running command line: bazel-bin/third_party/python/requirements.update.exe '--src=_main/third_party/python/requirements.txt' _main/third_party/python/requirements_lock.txt //third_party/python:requirements.update '--resolver=backtracking' --allow-unsafe --generate-hashes '--requirements-windows=_main/third_party/python/requirements_windows.txt' --strip-extras Updating third_party/python/requirements_windows.txt # # This file is autogenerated by pip-compile with Python 3.13 # by the following command: # # bazel run //third_party/python:requirements.update # mpmath==1.3.0 \ --hash=sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f \ --hash=sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c # via sympy sympy==1.13.3 \ --hash=sha256:54612cf55a62755ee71824ce692986f23c88ffa77207b30c1368eda4a7060f73 \ --hash=sha256:b27fd2c6530e0ab39e275fc9b683895367e51d5da91baa8d3d64db2565fec4d9 # via -r G:/projects/bedrock-engine/third_party/python/requirements.txt ``` And `//third_part/python:requirements_windows.txt` is updated. Fixes #1943 Fixes #1431 --------- Co-authored-by: Ignas Anikevicius <[email protected]>
- Loading branch information