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(()) }
