danielgtaylor / danielgtaylor/python-betterproto
Plugin should not compile all dependencies
- 主要言語
- 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