bazel-contrib / bazel-contrib/rules_python
Gazelle generates py_proto_library with imports attribute when in a non-root python_root
- Ngôn ngữ chính
- Starlark
- Star
- 688
- Fork
- 721
- Merge trung bình
- 15 giờ 7 phút
- Pull request đã merge (30 ngày)
- 76
Mô tả
# 🐞 bug report
### Affected Rule
`gazelle`
### Is this a regression?
No, I believe it's a new feature introduced by https://github.com/bazel-contrib/rules_python/issues/2994 and it seems to be not working as expected in the specific situation of this report.
### Description
When using gazelle to generate [`py_proto_library`](https://github.com/bazel-contrib/rules_python/issues/2994), it doesn't work as expected when the proto file is in a subfolder of a python root that differs from the repo root (specified with the directive `# gazelle:python_root`).
Gazelle generates the target with an `imports` attribute, which is not supported and thus the target fails to build.
## 🔬 Minimal Reproduction
https://github.com/regb/issue-reports/tree/main/rules_python/py_proto_imports
## 🔥 Exception or Error
Gazelle runs smoothly but generates the invalid targets, then running build generate this error:
$ bazel build ...
ERROR: /home/regb/vcs/issue-reports/rules_python/py_proto_imports/src/mypackage/BUILD.bazel:10:17: //src/mypackage:example_py_pb2: no such attribute 'imports' in 'py_proto_library' rule
ERROR: package contains errors: src/mypackage
ERROR: package contains errors: src/mypackage: //src/mypackage:example_py_pb2: no such attribute 'imports' in 'py_proto_library' rule
WARNING: Target pattern parsing failed.
ERROR: Skipping '...': Error evaluating '...': error loading package 'src/mypackage': Package 'src/mypackage' contains errors
ERROR: Error evaluating '...': error loading package 'src/mypackage': Package 'src/mypackage' contains errors
INFO: Elapsed time: 0.136s
INFO: 0 processes.
ERROR: Build did NOT complete successfully
## 🌍 Your Environment
**Operating System:**
Ubuntun 22.04
**Output of `bazel version`:**
8.5.0
**Rules_python version:**
1.7.0 (also tested 1.6.3)
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu với bản tái hiện tối thiểu tại regb/issue-reports/rules_python/py_proto_imports và kiểm tra BUILD.bazel được tạo trong src/mypackage, tập trung vào chỉ thị # gazelle:python_root và target py_proto_library được tạo. Chạy Gazelle, sau đó chạy bazel build ...; được xem là hoàn tất khi target được tạo không còn chứa thuộc tính imports không được hỗ trợ và quá trình build thành công.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- build-system, tooling
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100