compile_pip_requirements on Windows (GitHub workers) fails; bug is probably in the runfiles library
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- github-actions, python
- Ambito
- build-system, ci-cd
Direzione di ricerca
Inizia da python/runfiles/runfiles.py, in particolare CurrentRepository e Rlocation, poi esamina private/pypi/dependency_resolver/dependency_resolver.py e riproduci il failure dell’esempio Windows collegato. Il lavoro è completato quando compile_pip_requirements ha esito positivo sui worker Windows di GitHub quando la root di runfiles e il chiamante si trovano su unità diverse, con coverage per questo caso.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
🐞 bug report
Affected Rule
The issue is caused by the rule: compile_pip_requirements (but probably an issue in the runfiles library)
Is this a regression?
Yes, the previous version in which this bug was not present was: 1.7.0
Description
On the GitHub workers on MS-Windows, compile_pip_requirements rules fail with an error such as
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\rules_python+\python\runfiles\runfiles.py", line 306, in Rlocation
source_repo = self.CurrentRepository(frame=2)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\rules_python+\python\runfiles\runfiles.py", line 384, in CurrentRepository
caller_runfiles_path = os.path.relpath(caller_path, self._python_runfiles_root)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen ntpath>", line 777, in relpath
ValueError: path is on mount 'C:', start on mount 'D:'
🔬 Minimal Reproduction
https://github.com/phst/rules_python-bug-runfiles-windows
See e.g. the action logs at https://github.com/phst/rules_python-bug-runfiles-windows/actions/runs/22157518229
🔥 Exception or Error
==================== Test output for //:requirements.test:
Traceback (most recent call last):
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\_main\_requirements.test_stage2_bootstrap.py", line 499, in
main()
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\_main\_requirements.test_stage2_bootstrap.py", line 493, in main
_run_py_path(main_filename, args=sys.argv[1:])
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\_main\_requirements.test_stage2_bootstrap.py", line 287, in _run_py_path
runpy.run_path(main_filename, run_name="__main__")
File "", line 291, in run_path
File "", line 98, in _run_module_code
File "", line 88, in _run_code
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\rules_python+\python\private\pypi\dependency_resolver\dependency_resolver.py", line 270, in
main()
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\rules_python++config+pypi__click\click\core.py", line 1157, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\rules_python++config+pypi__click\click\core.py", line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\rules_python++config+pypi__click\click\core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\rules_python++config+pypi__click\click\core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\rules_python+\python\private\pypi\dependency_resolver\dependency_resolver.py", line 111, in main
resolved_srcs = [_locate(bazel_runfiles, src) for src in srcs]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\rules_python+\python\private\pypi\dependency_resolver\dependency_resolver.py", line 111, in
resolved_srcs = [_locate(bazel_runfiles, src) for src in srcs]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\rules_python+\python\private\pypi\dependency_resolver\dependency_resolver.py", line 82, in _locate
return bazel_runfiles.Rlocation(file)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\rules_python+\python\runfiles\runfiles.py", line 306, in Rlocation
source_repo = self.CurrentRepository(frame=2)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\RUNNER~1\AppData\Local\Temp\Bazel.runfiles_flx90ick\runfiles\rules_python+\python\runfiles\runfiles.py", line 384, in CurrentRepository
caller_runfiles_path = os.path.relpath(caller_path, self._python_runfiles_root)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 777, in relpath
ValueError: path is on mount 'C:', start on mount 'D:'
================================================================================
🌍 Your Environment
Operating System:
Windows
Output of bazel version:
Bazelisk version: 1.28.1
INFO: Invocation ID: 0c29aa33-c4d6-490c-ae50-a131af7e76a6
Build label: 9.0.0
Build target: @@//src/main/java/com/google/devtools/build/lib/bazel:BazelServer
Build time: Tue Jan 20 18:20:43 2026 (1768933243)
Build timestamp: 1768933243
Build timestamp as int: 1768933243
Rules_python version:
1.8.4
Anything else relevant?
See https://github.com/bazel-contrib/rules_python/pull/3086#issuecomment-3765803662 for the initial report.
Locally rolling back https://github.com/bazel-contrib/rules_python/commit/a506d774dd60eedf6fce94dcccd2c233553b06d4 fixes the issue.
Back-porting the fix to https://github.com/bazel-contrib/rules_python/issues/3579 locally does not fix the issue.
- Lingua principale
- Starlark
- Stelle
- 690
- Fork
- 722
- Merge medio
- 1g 55m
- PR unite (30g)
- 38
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di bazel-contrib/rules_python
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
bazel-contrib/rules_python#4179 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
bazel-contrib/rules_python#4164 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
bazel-contrib/rules_python#3821 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
bazel-contrib/rules_python#4181 ·
-
Release 2.4.0 Apertatype: release
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
bazel-contrib/rules_python#4175 · 3 commenti ·
Tutte le issue di bazel-contrib/rules_python
Issue simili
-
nix: vendorHash is outdated Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
typelevel/sbt-typelevel#929 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
openSUSE/python-rpm-macros#219 ·
-
HMR stops working Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
Qiskit/mcp-servers#221 ·