bazel-contrib / bazel-contrib/rules_python
[gazelle] Adjust how `imports` is auto-generated
- Langage dominant
- Starlark
- Étoiles
- 688
- Forks
- 721
- Merge moyen
- 15 h 7 min
- PR mergées (30 j)
- 76
Description
Discussion moved from an internal doc and discussion with @rickeylev:
> Externally, the Bazel Python rules have an attribute named `imports`. This is a string list of repo-relative paths that should be added to `sys.path`.
@dougthor42 writes in a comment:
> FYI: With gazelle's `python_root` directive, these are autogenerated as package-relative paths, eg `["../../.."]`.
>
> Now that I see [that `imports` is repo-relative], I might submit a PR to change Gazelle to generate repo-relative paths.
@rickeylev replies:
> Hm. Is package-relative better than repo-relative? Quick thought is: they both have pros and cons.
> Which makes me think: is there something that has all pros and no cons?
> To which I think: maybe we can change the logic to more directly express what we're after.
> When src/my_package says "add .. to path", what it really means is: make sure sys.path has a directory with "my_package" as a sub directory.
> So maybe instead we add a top_level_package_name attribute? Under the hood, a quick implementation would be to just do "compute the correct imports attr value automatically". A better impl for the future would be to ensure that some directory with the desired name ends up in sys.path, however that may come to be.
>
> Thanks for the inspiration :)
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
L’issue mentionne les règles Python de Gazelle et l’attribut `imports` généré, mais ne fournit ni fichier, ni test, ni point d’entrée. Commencez par localiser la logique de Gazelle qui génère `imports` ainsi que les tests associés ; le travail est terminé lorsque le comportement attendu des chemins est convenu et couvert pour les cas `python_root` concernés.
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
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100