This is an automated email from the ASF dual-hosted git repository.

yuxia pushed a commit to branch release-0.1
in repository https://gitbox.apache.org/repos/asf/fluss-rust.git

commit 6f35de9f49d09f5ef1276f44cd261c1d375c8952
Author: luoyuxia <[email protected]>
AuthorDate: Tue Mar 3 17:47:29 2026 +0800

    ci: use grpcio-tools for protoc in manylinux containers
    
    Revert protox approach and use grpcio-tools to install protoc in
    manylinux containers. Only install when manylinux is used (not needed
    for Linux host builds).
    
    Changes:
    - Revert build.rs to use prost-build with protoc
    - Revert Cargo.toml to prost-build 0.14
    - Add protoc installation via grpcio-tools for manylinux containers only
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 .github/workflows/release_python.yml | 14 ++++++++++++++
 crates/fluss/Cargo.toml              |  4 +---
 crates/fluss/build.rs                | 11 +----------
 3 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/.github/workflows/release_python.yml 
b/.github/workflows/release_python.yml
index 69ea108..3a2d3b2 100644
--- a/.github/workflows/release_python.yml
+++ b/.github/workflows/release_python.yml
@@ -52,6 +52,13 @@ jobs:
       - name: Generate Python README
         run: python bindings/python/generate_readme.py
 
+      - name: Install protoc via grpcio-tools (manylinux)
+        if: matrix.manylinux != ''
+        run: |
+          pip install grpcio-tools
+          PROTOC=$(python -c "import grpc_tools, os; 
print(os.path.join(os.path.dirname(grpc_tools.__file__), 'protoc'))")
+          echo "PROTOC=$PROTOC" >> $GITHUB_ENV
+
       - uses: PyO3/maturin-action@v1
         with:
           working-directory: bindings/python
@@ -81,6 +88,13 @@ jobs:
       - name: Generate Python README
         run: python3 bindings/python/generate_readme.py
 
+      - name: Install protoc via grpcio-tools (manylinux)
+        if: matrix.manylinux != ''
+        run: |
+          pip install grpcio-tools
+          PROTOC=$(python -c "import grpc_tools, os; 
print(os.path.join(os.path.dirname(grpc_tools.__file__), 'protoc'))")
+          echo "PROTOC=$PROTOC" >> $GITHUB_ENV
+
       - uses: PyO3/maturin-action@v1
         with:
           working-directory: bindings/python
diff --git a/crates/fluss/Cargo.toml b/crates/fluss/Cargo.toml
index 7d0979f..6b19f99 100644
--- a/crates/fluss/Cargo.toml
+++ b/crates/fluss/Cargo.toml
@@ -82,6 +82,4 @@ test-env-helpers = "0.2.2"
 
 
 [build-dependencies]
-prost-build = { version = "0.12" }
-prost-types = "0.12"
-protox = "0.6.0"
+prost-build = { version = "0.14" }
diff --git a/crates/fluss/build.rs b/crates/fluss/build.rs
index fc4cf13..265208a 100644
--- a/crates/fluss/build.rs
+++ b/crates/fluss/build.rs
@@ -18,20 +18,11 @@
 use std::io::Result;
 
 fn main() -> Result<()> {
-    // Use protox to parse proto files (pure Rust, no protoc needed)
-    let file_descriptor_set = 
protox::compile(&["src/proto/fluss_api.proto"],&["src/proto"])
-        .expect("Failed to parse proto files");
-
     let mut config = prost_build::Config::new();
     config.bytes([
         ".proto.PbProduceLogReqForBucket.records",
         ".proto.PbPutKvReqForBucket.records",
     ]);
-
-    // Compile using the parsed file descriptor set
-    config
-        .compile_fds(file_descriptor_set)
-        .expect("Failed to compile proto files");
-
+    config.compile_protos(&["src/proto/fluss_api.proto"], &["src/proto"])?;
     Ok(())
 }

Reply via email to