From d509bcb8a518498353be7ed4d186bf708564e4d2 Mon Sep 17 00:00:00 2001 From: c-node Date: Mon, 30 Sep 2024 15:24:42 -0700 Subject: [PATCH 01/11] protox --- Cargo.lock | 109 +++++++++++++++++++++++++++++++++++++++++++++++ proto/Cargo.toml | 1 + proto/build.rs | 36 ++++++++-------- 3 files changed, 129 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4b256da5..3c1eb7cf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -515,6 +515,12 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" + [[package]] name = "beetswap" version = "0.4.0" @@ -721,6 +727,7 @@ dependencies = [ "prost", "prost-build", "prost-types", + "protox", "serde", "serde_json", "wasm-bindgen-test", @@ -3191,6 +3198,39 @@ version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +[[package]] +name = "logos" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c6b6e02facda28ca5fb8dbe4b152496ba3b1bd5a4b40bb2b1b2d8ad74e0f39b" +dependencies = [ + "logos-derive", +] + +[[package]] +name = "logos-codegen" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b32eb6b5f26efacd015b000bfc562186472cd9b34bdba3f6b264e2a052676d10" +dependencies = [ + "beef", + "fnv", + "lazy_static", + "proc-macro2", + "quote", + "regex-syntax 0.8.4", + "syn 2.0.66", +] + +[[package]] +name = "logos-derive" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e5d0c5463c911ef55624739fc353238b4e310f0144be1f875dc42fec6bfd5ec" +dependencies = [ + "logos-codegen", +] + [[package]] name = "lru" version = "0.12.3" @@ -3342,6 +3382,29 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "miette" +version = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4edc8853320c2a0dab800fbda86253c8938f6ea88510dc92c5f1ed20e794afc1" +dependencies = [ + "cfg-if", + "miette-derive", + "thiserror", + "unicode-width", +] + +[[package]] +name = "miette-derive" +version = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "mime" version = "0.3.17" @@ -4063,6 +4126,19 @@ dependencies = [ "syn 2.0.66", ] +[[package]] +name = "prost-reflect" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f5eec97d5d34bdd17ad2db2219aabf46b054c6c41bd5529767c9ce55be5898f" +dependencies = [ + "logos", + "miette", + "once_cell", + "prost", + "prost-types", +] + [[package]] name = "prost-types" version = "0.12.6" @@ -4072,6 +4148,33 @@ dependencies = [ "prost", ] +[[package]] +name = "protox" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac532509cee918d40f38c3e12f8ef9230f215f017d54de7dd975015538a42ce7" +dependencies = [ + "bytes", + "miette", + "prost", + "prost-reflect", + "prost-types", + "protox-parse", + "thiserror", +] + +[[package]] +name = "protox-parse" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6c33f43516fe397e2f930779d720ca12cd057f7da4cd6326a0ef78d69dee96" +dependencies = [ + "logos", + "miette", + "prost-types", + "thiserror", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -5492,6 +5595,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + [[package]] name = "unicode-xid" version = "0.2.4" diff --git a/proto/Cargo.toml b/proto/Cargo.toml index 78e67267..4ab2dee1 100644 --- a/proto/Cargo.toml +++ b/proto/Cargo.toml @@ -22,6 +22,7 @@ serde = { version = "1.0.203", features = ["derive"] } [build-dependencies] anyhow = "1.0.86" prost-build = "0.12.6" +protox = "0.6.1" [target.'cfg(target_arch = "wasm32")'.dev-dependencies] wasm-bindgen-test = "0.3.42" diff --git a/proto/build.rs b/proto/build.rs index 3a7e5529..2616cf91 100644 --- a/proto/build.rs +++ b/proto/build.rs @@ -64,6 +64,24 @@ static CUSTOM_FIELD_ATTRIBUTES: &[(&str, &str)] = &[ ]; fn main() -> Result<()> { + + println!("protox::compile_fds..."); + let fds = protox::compile(&[ + "vendor/celestia/da/data_availability_header.proto", + "vendor/celestia/blob/v1/tx.proto", + "vendor/header/pb/extended_header.proto", + "vendor/share/eds/byzantine/pb/share.proto", + "vendor/share/shwap/pb/shwap.proto", + "vendor/share/shwap/p2p/bitswap/pb/bitswap.proto", + "vendor/cosmos/base/v1beta1/coin.proto", + "vendor/cosmos/base/abci/v1beta1/abci.proto", + "vendor/cosmos/crypto/multisig/v1beta1/multisig.proto", + "vendor/cosmos/staking/v1beta1/query.proto", + "vendor/cosmos/tx/v1beta1/tx.proto", + "vendor/go-header/p2p/pb/header_request.proto", + ], &["vendor", "vendor/nmt"]).expect("protox faild to build"); + println!("protox done"); + let mut config = prost_build::Config::new(); for (type_path, attr) in CUSTOM_TYPE_ATTRIBUTES { @@ -87,23 +105,7 @@ fn main() -> Result<()> { ) // Comments in Google's protobuf are causing issues with cargo-test .disable_comments([".google"]) - .compile_protos( - &[ - "vendor/celestia/da/data_availability_header.proto", - "vendor/celestia/blob/v1/tx.proto", - "vendor/header/pb/extended_header.proto", - "vendor/share/eds/byzantine/pb/share.proto", - "vendor/share/shwap/pb/shwap.proto", - "vendor/share/shwap/p2p/bitswap/pb/bitswap.proto", - "vendor/cosmos/base/v1beta1/coin.proto", - "vendor/cosmos/base/abci/v1beta1/abci.proto", - "vendor/cosmos/crypto/multisig/v1beta1/multisig.proto", - "vendor/cosmos/staking/v1beta1/query.proto", - "vendor/cosmos/tx/v1beta1/tx.proto", - "vendor/go-header/p2p/pb/header_request.proto", - ], - &["vendor", "vendor/nmt"], - )?; + .compile_fds(fds).expect("prost failed"); Ok(()) } From 388f1132e58789e5f1f0d7e9451057153cbc2f97 Mon Sep 17 00:00:00 2001 From: c-node Date: Mon, 30 Sep 2024 16:06:11 -0700 Subject: [PATCH 02/11] clippy, fmt --- proto/build.rs | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/proto/build.rs b/proto/build.rs index 2616cf91..e62223b9 100644 --- a/proto/build.rs +++ b/proto/build.rs @@ -64,22 +64,25 @@ static CUSTOM_FIELD_ATTRIBUTES: &[(&str, &str)] = &[ ]; fn main() -> Result<()> { - println!("protox::compile_fds..."); - let fds = protox::compile(&[ - "vendor/celestia/da/data_availability_header.proto", - "vendor/celestia/blob/v1/tx.proto", - "vendor/header/pb/extended_header.proto", - "vendor/share/eds/byzantine/pb/share.proto", - "vendor/share/shwap/pb/shwap.proto", - "vendor/share/shwap/p2p/bitswap/pb/bitswap.proto", - "vendor/cosmos/base/v1beta1/coin.proto", - "vendor/cosmos/base/abci/v1beta1/abci.proto", - "vendor/cosmos/crypto/multisig/v1beta1/multisig.proto", - "vendor/cosmos/staking/v1beta1/query.proto", - "vendor/cosmos/tx/v1beta1/tx.proto", - "vendor/go-header/p2p/pb/header_request.proto", - ], &["vendor", "vendor/nmt"]).expect("protox faild to build"); + let fds = protox::compile( + [ + "vendor/celestia/da/data_availability_header.proto", + "vendor/celestia/blob/v1/tx.proto", + "vendor/header/pb/extended_header.proto", + "vendor/share/eds/byzantine/pb/share.proto", + "vendor/share/shwap/pb/shwap.proto", + "vendor/share/shwap/p2p/bitswap/pb/bitswap.proto", + "vendor/cosmos/base/v1beta1/coin.proto", + "vendor/cosmos/base/abci/v1beta1/abci.proto", + "vendor/cosmos/crypto/multisig/v1beta1/multisig.proto", + "vendor/cosmos/staking/v1beta1/query.proto", + "vendor/cosmos/tx/v1beta1/tx.proto", + "vendor/go-header/p2p/pb/header_request.proto", + ], + ["vendor", "vendor/nmt"], + ) + .expect("protox faild to build"); println!("protox done"); let mut config = prost_build::Config::new(); @@ -105,7 +108,8 @@ fn main() -> Result<()> { ) // Comments in Google's protobuf are causing issues with cargo-test .disable_comments([".google"]) - .compile_fds(fds).expect("prost failed"); + .compile_fds(fds) + .expect("prost failed"); Ok(()) } From 25602871b366d6940e5d566539e2a7a27d963487 Mon Sep 17 00:00:00 2001 From: c-node Date: Tue, 1 Oct 2024 14:42:49 -0700 Subject: [PATCH 03/11] Update proto/build.rs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Maciej Zwoliński Signed-off-by: c-node --- proto/build.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/proto/build.rs b/proto/build.rs index e62223b9..b2169154 100644 --- a/proto/build.rs +++ b/proto/build.rs @@ -83,7 +83,6 @@ fn main() -> Result<()> { ["vendor", "vendor/nmt"], ) .expect("protox faild to build"); - println!("protox done"); let mut config = prost_build::Config::new(); From 7dcfc3083576279b1a371b052aeafde513e0bbb5 Mon Sep 17 00:00:00 2001 From: c-node Date: Tue, 1 Oct 2024 14:42:59 -0700 Subject: [PATCH 04/11] Update proto/build.rs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Maciej Zwoliński Signed-off-by: c-node --- proto/build.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/proto/build.rs b/proto/build.rs index b2169154..7522ca08 100644 --- a/proto/build.rs +++ b/proto/build.rs @@ -64,7 +64,6 @@ static CUSTOM_FIELD_ATTRIBUTES: &[(&str, &str)] = &[ ]; fn main() -> Result<()> { - println!("protox::compile_fds..."); let fds = protox::compile( [ "vendor/celestia/da/data_availability_header.proto", From 7dd13ea0aaa17510d545a173733941b2103237e0 Mon Sep 17 00:00:00 2001 From: c-node Date: Tue, 1 Oct 2024 14:56:26 -0700 Subject: [PATCH 05/11] remove protoc install from all actions --- .github/workflows/ci.yml | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b010a666..1f74e593 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,11 +10,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - - name: Install Protoc - uses: arduino/setup-protoc@v2 - with: - version: "23.3" - repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Install wasm Rust uses: actions-rs/toolchain@v1 @@ -38,12 +33,6 @@ jobs: - name: Install toolchain uses: dtolnay/rust-toolchain@nightly - - name: Install Protoc - uses: arduino/setup-protoc@v2 - with: - version: "23.3" - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Run rustdoc check env: RUSTDOCFLAGS: --cfg docsrs -D warnings @@ -65,12 +54,6 @@ jobs: steps: - uses: actions/checkout@v1 - - name: Install Protoc - uses: arduino/setup-protoc@v2 - with: - version: "23.3" - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Install Rust uses: actions-rs/toolchain@v1 with: @@ -123,12 +106,6 @@ jobs: cargo-${{ hashFiles('**/Cargo.lock') }} cargo- - - name: Install Protoc - uses: arduino/setup-protoc@v2 - with: - version: "23.3" - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Install Rust uses: actions-rs/toolchain@v1 with: @@ -202,12 +179,6 @@ jobs: - name: Checkout sources uses: actions/checkout@v3 - - name: Install Protoc - uses: arduino/setup-protoc@v2 - with: - version: "23.3" - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Install toolchain uses: dtolnay/rust-toolchain@nightly From 65c5d9c35700386647dffb671e2e90fa98cb829c Mon Sep 17 00:00:00 2001 From: c-node Date: Tue, 1 Oct 2024 14:58:17 -0700 Subject: [PATCH 06/11] readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c46f0c5f..821a325c 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Install common dependencies ```bash # install dependencies -sudo apt-get install -y build-essential curl git protobuf-compiler +sudo apt-get install -y build-essential curl git # install rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh From 1a6a6dccc043fa82913df32a47f5d820e1b0178e Mon Sep 17 00:00:00 2001 From: c-node Date: Fri, 4 Oct 2024 14:51:20 -0700 Subject: [PATCH 07/11] Update proto/build.rs Co-authored-by: Yiannis Marangos Signed-off-by: c-node --- proto/build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/build.rs b/proto/build.rs index 7522ca08..bc2bd71e 100644 --- a/proto/build.rs +++ b/proto/build.rs @@ -81,7 +81,7 @@ fn main() -> Result<()> { ], ["vendor", "vendor/nmt"], ) - .expect("protox faild to build"); + .expect("protox failed to build"); let mut config = prost_build::Config::new(); From cf69d40169cd11fde2705e6d33f0ff94069342ac Mon Sep 17 00:00:00 2001 From: c-node Date: Fri, 4 Oct 2024 14:54:02 -0700 Subject: [PATCH 08/11] remove result from signature --- proto/build.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/proto/build.rs b/proto/build.rs index bc2bd71e..fa06c0a4 100644 --- a/proto/build.rs +++ b/proto/build.rs @@ -63,7 +63,7 @@ static CUSTOM_FIELD_ATTRIBUTES: &[(&str, &str)] = &[ (".shwap.Share", BASE64STRING), ]; -fn main() -> Result<()> { +fn main() { let fds = protox::compile( [ "vendor/celestia/da/data_availability_header.proto", @@ -109,5 +109,4 @@ fn main() -> Result<()> { .compile_fds(fds) .expect("prost failed"); - Ok(()) } From 8a1328bba58066797437e276b0d523e7c280c34f Mon Sep 17 00:00:00 2001 From: c-node Date: Fri, 4 Oct 2024 16:32:23 -0700 Subject: [PATCH 09/11] fmt --- proto/build.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/proto/build.rs b/proto/build.rs index fa06c0a4..60543999 100644 --- a/proto/build.rs +++ b/proto/build.rs @@ -108,5 +108,4 @@ fn main() { .disable_comments([".google"]) .compile_fds(fds) .expect("prost failed"); - } From 7f48eb4f6107346e1fee466e04357bb9bb46e6ca Mon Sep 17 00:00:00 2001 From: c-node Date: Fri, 4 Oct 2024 16:36:15 -0700 Subject: [PATCH 10/11] remove unused dep --- proto/build.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/proto/build.rs b/proto/build.rs index 60543999..c76fb5b6 100644 --- a/proto/build.rs +++ b/proto/build.rs @@ -1,7 +1,5 @@ //! A build script generating rust types from protobuf definitions. -use anyhow::Result; - const SERIALIZED: &str = r#"#[derive(::serde::Deserialize, ::serde::Serialize)]"#; const SERIALIZED_DEFAULT: &str = r#"#[derive(::serde::Deserialize, ::serde::Serialize)] #[serde(default)]"#; From cb0b769747ba1b67e6ce1dff7fdcdcd9c2bad40e Mon Sep 17 00:00:00 2001 From: c-node Date: Fri, 4 Oct 2024 16:38:26 -0700 Subject: [PATCH 11/11] remove another unused dep --- proto/Cargo.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/proto/Cargo.toml b/proto/Cargo.toml index 85ceaa19..28ddaeea 100644 --- a/proto/Cargo.toml +++ b/proto/Cargo.toml @@ -20,7 +20,6 @@ prost-types = "0.12.6" serde = { version = "1.0.203", features = ["derive"] } [build-dependencies] -anyhow = "1.0.86" prost-build = "0.12.6" protox = "0.6.1"