graphprotocol / graphprotocol/graph-node

Stop generating Protobuf Rust bindings on `build.rs`

オープン
#4,305 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

area/substreams firehose Stale
主要言語
Rust
スター
3.2k
フォーク
1.1k
平均マージ
4日 1時間
マージ済み PR(30日)
1

説明

Do you want to request a feature or report a bug?

Feature

What is the current behavior?

Right now, Protobuf Rust bindings are generated via build.rs in the Cargo build pipeline. However, the Protobuf definitions are updated quite infrequently. The current build process imposes some constraints on people that want to build graph-node as they require the full toolchain to compile Protobuf to Rust so valid protoc, seems that rustfmt was required also. Lot's of issue recently (like #4240) were having problem building due to incorrect protoc version.

What is the expected behavior?

Protobuf Rust bindings generation should be an ad-hoc task that is done manually by the developer when the Protobuf definition changes. This way, only then the toolchain is required and everyone else don't need to care about this.

Some ideas (could be "mixed" together):

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

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

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、Protobuf の Rust バインディングを生成する既存の build.rs と Cargo のビルドパイプラインを調査します。提案されている手動、スクリプトベース、または専用タスクによるアプローチを比較し、定義が変更されたときにバインディングをどのように再生成するかを定めたうえで、通常の graph-node ビルドでは Protobuf ツールチェーンが不要になっていることを確認します。

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

評価

技術スタック
rust
領域
build-system, developer-experience
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

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

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