You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
bazel-runfiles library is unable to properly locate runfiles root when running under rules_py
Version
Development (host) and target OS/architectures: macOS aarch64, also seen on Linux x86_64
Output of bazel --version: bazel 7.2.1
Version of the Aspect rules, or other relevant rules from your WORKSPACE or MODULE.bazel file: 0.7.4
Language(s) and/or frameworks involved: None
How to reproduce
git clone https://github.com/dizzy57/bazel_py_minimal
cd bazel_py_minimal
bazel test //runfiles_from_pipy_do_not_work/...
Expected result: all tests pass
Actual result: //runfiles_from_pipy_do_not_work:runfiles_test fails with a message
ValueError: [PREFIX]/runfiles_test.runfiles/_main/runfiles_from_pipy_do_not_work/test_runfiles.py does not lie under the runfiles root [PREFIX]/runfiles_test.runfiles/.runfiles_test.venv/lib
Any other information?
Same test passes with rules_python: see bazel test //runfiles_from_pipy_do_not_work:runfiles_rp_test
The python.runfiles package from @rules_python//python/runfiles works, see bazel test //runfiles_from_pipy_do_not_work:runfiles_rfrp_test //runfiles_from_pipy_do_not_work:runfiles_rp_rfrp_test
This problem was introduced in rules_py v0.7.2
The text was updated successfully, but these errors were encountered:
This is a rules_python issue I think, as the runfiles helper is walking up the directory structure to attempt to determine the runfiles root, which under the venv (or any other layout) is not correct. The diff here shows a potential solution, but I'm not clear if this is correct, or what repercussions this has, I imagine Windows will have something to say about it.
Traceback (most recent call last):
File "/private/var/tmp/_bazel_tshadwell/f7d9bb6f07b31d1ba7eb0c999b8bb37b/execroot/_main/bazel-out/darwin_arm64-fastbuild/bin/py/ibazel/ibazel_bin.runfiles/_main/py/ibazel/__main__.py", line 18, in <module>
ibazel_binary_path = path = r.Rlocation(environ["IBAZEL_BINARY"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/private/var/tmp/_bazel_tshadwell/f7d9bb6f07b31d1ba7eb0c999b8bb37b/execroot/_main/bazel-out/darwin_arm64-fastbuild/bin/py/ibazel/ibazel_bin.runfiles/.ibazel_bin.venv/lib/python3.11/site-packages/runfiles/runfiles.py", line 175, in Rlocation
source_repo = self.CurrentRepository(frame=2)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/private/var/tmp/_bazel_tshadwell/f7d9bb6f07b31d1ba7eb0c999b8bb37b/execroot/_main/bazel-out/darwin_arm64-fastbuild/bin/py/ibazel/ibazel_bin.runfiles/.ibazel_bin.venv/lib/python3.11/site-packages/runfiles/runfiles.py", line 264, in CurrentRepository
raise ValueError(
ValueError: /private/var/tmp/_bazel_tshadwell/f7d9bb6f07b31d1ba7eb0c999b8bb37b/execroot/_main/bazel-out/darwin_arm64-fastbuild/bin/py/ibazel/ibazel_bin.runfiles/_main/py/ibazel/__main__.py does not lie under the runfiles root /private/var/tmp/_bazel_tshadwell/f7d9bb6f07b31d1ba7eb0c999b8bb37b/execroot/_main/bazel-out/darwin_arm64-fastbuild/bin/py/ibazel/ibazel_bin.runfiles/.ibazel_bin.venv/lib
What happened?
bazel-runfiles
library is unable to properly locate runfiles root when running underrules_py
Version
Development (host) and target OS/architectures: macOS aarch64, also seen on Linux x86_64
Output of
bazel --version
:bazel 7.2.1
Version of the Aspect rules, or other relevant rules from your
WORKSPACE
orMODULE.bazel
file:0.7.4
Language(s) and/or frameworks involved: None
How to reproduce
Any other information?
Same test passes with
rules_python
: seebazel test //runfiles_from_pipy_do_not_work:runfiles_rp_test
Exception source in runfiles.py (
rules_python
v0.34.0)The
python.runfiles
package from@rules_python//python/runfiles
works, seebazel test //runfiles_from_pipy_do_not_work:runfiles_rfrp_test //runfiles_from_pipy_do_not_work:runfiles_rp_rfrp_test
This problem was introduced in rules_py v0.7.2
The text was updated successfully, but these errors were encountered: