bazel-contrib / bazel-contrib/rules_python
Gazelle generates py_proto_library with imports attribute when in a non-root python_root
- Langage dominant
- Starlark
- Étoiles
- 688
- Forks
- 721
- Merge moyen
- 15 h 7 min
- PR mergées (30 j)
- 76
Description
# 🐞 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)
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par la reproduction minimale dans regb/issue-reports/rules_python/py_proto_imports et examinez le BUILD.bazel généré sous src/mypackage, en vous concentrant sur la directive # gazelle:python_root et la cible py_proto_library générée. Exécutez Gazelle, puis bazel build ... ; c’est terminé lorsque la cible générée ne contient plus l’attribut imports non pris en charge et que le build réussit.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- build-system, tooling
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100