danielgtaylor / danielgtaylor/python-betterproto

Plugin should not compile all dependencies

オープン
#111 コメント 6 件 リアクション 0 件 担当者 0 名 GitHub で見る
enhancement medium medium priority
主要言語
Python
スター
1.8k
フォーク
234
PR マージ指標
30日以内にマージされた PR はありません

説明

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?

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、例の proto レイアウトと betterproto protoc の呼び出しを使って、説明されている生成を再現します。生成されたパスと依存関係の重複した出力を standard protoc の動作と比較します。パスをフラット化したり、依存関係を不必要に再生成したりせず、対象の RPC proto を選択的に生成できれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
tooling
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
28/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。