bazel-contrib / bazel-contrib/rules_python
Bazel 7 namespace collision
- 主要言語
- Starlark
- スター
- 688
- フォーク
- 721
- 平均マージ
- 15時間 7分
- マージ済み PR(30日)
- 76
説明
# 🐞 bug report
with rules_python 0.31.0 and bazel 7.1.2, there seems to be an issue with naming certain directories with certain names. Wondering if this is expected?
### Description
There is a namespace collision with certain directories
## 🔬 Minimal Reproduction
Build file
example/time/BUILD
```
load("@rules_python//python:defs.bzl", "py_test", "py_library")
py_library(
name = "time_py",
srcs = ["py_test.py"],
)
py_test(
main = "py_test.py",
srcs = [":time_py"],
)
```
`example/time/__init__.py`
```
import time
```
`example/time/py_test.py`
```
import time
```
bazel test //example/time:all --noincompatible_default_to_explicit_init_py will result in an import error
## 🔥 Exception or Error
```
ImportError while importing test module
Hint: make sure your test modules/packages have valid Python names.
Traceback:
../pip_pytest/site-packages/_pytest/python.py:617: in _importtestmodule
mod = import_path(self.path, mode=importmode, root=self.config.rootpath)
../pip_pytest/site-packages/_pytest/pathlib.py:564: in import_path
importlib.import_module(module_name)
/home/ryang/.cache/bazel/_bazel_ryang/7071f3e24af240fa9a28f67dc16192b3/execroot/waabi-av/external/python3/lib/python310.zip/importlib/__init__.py:126: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
:1050: in _gcd_import
???
:1027: in _find_and_load
???
:1001: in _find_and_load_unlocked
???
E ModuleNotFoundError: No module named 'time.py_test'; 'time' is not a package
```
## 🌍 Your Environment
**Operating System:**
ubuntu 20.04
**Output of `bazel version`:**
7.1.2
**Rules_python version:**
0.31.0
コントリビューションガイド
調査の方向性
Start by reproducing the failure with example/time/BUILD, example/time/__init__.py, and example/time/py_test.py using the reported Bazel test command and versions. Trace how the Python test is packaged and imported, then verify the behavior around the time namespace collision and confirm that the minimal reproduction no longer raises the reported ModuleNotFoundError.
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- python
- 領域
- build-system
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 30/100