danielgtaylor / danielgtaylor/python-betterproto
Plugin should not compile all dependencies
- Langage dominant
- Python
- Étoiles
- 1.8k
- Forks
- 234
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
Right now I have a lot of library protos and grpc protos living in one place, the library protos are cross-used by multiple rpc protos, but they seem to not follow the output standard that protoc has for other languages.
Example:
```
root
├── util
│ ├── resource.proto
│ └── someotherutil.proto
├── boxes
│ ├── box_schematic_schemas.proto
│ └── boxes.proto
├── some_rpc
│ └── some.rpc.proto
├── box_rpc
│ └── box.rpc.proto
├── quadcopters_rpc
│ └── quadcopters.rpc.proto
```
the example above is made up on the fly, but this is similar to what I have today in my environment to work with (the server impls are written in golang using grpc) Now I want to make python libraries for the above, but when i call protoc betterproto generation on "bpx.rpc.proto" two problems happen:
1) betterproto doesn't generate paths, it sticks everything in root (other protoc plugins use . as reletive to the file)
2) all the utils are re-generated for each proto as opposed to use the ones that had been generated prior (my guess is because of 1
This is the real issue here is that we have a LOT of proto files and sometimes only generate some (e.g.: I've updated quadcopters, just want to re-generate that, not all the dependancies. Is this a missing features or am i missing something in betterproto that allows for doing standard generation w/o generating dependancies like in the other language examples?
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par reproduire la génération décrite avec la structure proto d’exemple et une invocation de betterproto protoc. Comparez les chemins générés et la sortie répétée des dépendances avec le comportement de standard protoc ; c’est terminé lorsqu’un RPC proto cible est généré sélectivement sans aplatir les chemins ni régénérer inutilement ses dépendances.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 28/100