bazel-contrib / bazel-contrib/rules_python

Gazelle generates py_proto_library with imports attribute when in a non-root python_root

Đang mở
#3,494 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
gazelle
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

Mở 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

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.