daipom opened a new issue, #2956:
URL: https://github.com/apache/arrow-adbc/issues/2956

   ### What feature or improvement would you like to see?
   
   # Current
   
   
https://github.com/apache/arrow-adbc/blob/c08fdfca8e99ff86decd00f2936c14c71c25fcf1/rust/README.md#L33-L41
   
   # Issue
   
   It would be helpful to have a note saying that a recent version of 
`protobuf` is required.
   
   Without installing `protobuf`, the build fails as follows.
   
   ```console
   $ cargo test
   ...
      Compiling datafusion-common v47.0.0
   error: failed to run custom build command for `substrait v0.55.1`
   
   Caused by:
     process didn't exit successfully: 
`/home/daipom/work/apache-arrow/arrow-adbc/rust/target/debug/build/substrait-0a2276d408d79f0a/build-script-build`
 (exit status: 1)
     --- stdout
     cargo:rerun-if-env-changed=FORCE_REBUILD
     cargo:rerun-if-changed=substrait
     cargo:rerun-if-changed=substrait/text/simple_extensions_schema.yaml
     cargo:rerun-if-changed=substrait/proto/substrait/plan.proto
     cargo:rerun-if-changed=substrait/proto/substrait/type_expressions.proto
     cargo:rerun-if-changed=substrait/proto/substrait/extended_expression.proto
     cargo:rerun-if-changed=substrait/proto/substrait/algebra.proto
     cargo:rerun-if-changed=substrait/proto/substrait/function.proto
     cargo:rerun-if-changed=substrait/proto/substrait/capabilities.proto
     
cargo:rerun-if-changed=substrait/proto/substrait/extensions/extensions.proto
     cargo:rerun-if-changed=substrait/proto/substrait/type.proto
     cargo:rerun-if-changed=substrait/proto/substrait/parameterized_types.proto
   
     --- stderr
     Error: Custom { kind: NotFound, error: "Could not find `protoc`. If 
`protoc` is installed, try setting the `PROTOC` environment variable to the 
path of the `protoc` binary. To install it on Debian, run `apt-get install 
protobuf-compiler`. It is also available at 
https://github.com/protocolbuffers/protobuf/releases  For more information: 
https://docs.rs/prost-build/#sourcing-protoc"; }
   ```
   
   In addition, if you install `protobuf-compiler` by `apt` as described in 
this error message, a very old version of `protoc` is installed, and the build 
eventually fails.
   
   ```console
   $ cargo test
   ...
   Compiling substrait v0.55.1
   error: failed to run custom build command for `substrait v0.55.1`
   Caused by:
     process didn't exit successfully: 
`/home/daipom/work/apache-arrow/arrow-adbc/rust/target/debug/build/substrait-0a2276d408d79f0a/build-script-build`
 (exit status: 1)
     --- stdout
     cargo:rerun-if-env-changed=FORCE_REBUILD
     cargo:rerun-if-changed=substrait
     cargo:rerun-if-changed=substrait/text/simple_extensions_schema.yaml
     cargo:rerun-if-changed=substrait/proto/substrait/plan.proto
     cargo:rerun-if-changed=substrait/proto/substrait/type_expressions.proto
     cargo:rerun-if-changed=substrait/proto/substrait/extended_expression.proto
     cargo:rerun-if-changed=substrait/proto/substrait/algebra.proto
     cargo:rerun-if-changed=substrait/proto/substrait/function.proto
     cargo:rerun-if-changed=substrait/proto/substrait/capabilities.proto
     
cargo:rerun-if-changed=substrait/proto/substrait/extensions/extensions.proto
     cargo:rerun-if-changed=substrait/proto/substrait/type.proto
     cargo:rerun-if-changed=substrait/proto/substrait/parameterized_types.proto
     --- stderr
     Error: Custom { kind: Other, error: "protoc failed: 
substrait/algebra.proto: This file contains proto3 optional fields, but 
--experimental_allow_proto3_optional was not set.\n" }
   ```
   
   # Improve
   
   Add the following steps:
   
   * Download a recent version of `protobuf` from the release page and add 
`protoc` to the PATH.
   
   ref:
   
   * 
https://github.com/protocolbuffers/protobuf?tab=readme-ov-file#protobuf-compiler-installation
   * 
https://github.com/apache/arrow-adbc/blob/c08fdfca8e99ff86decd00f2936c14c71c25fcf1/.github/workflows/rust.yml#L74-L85
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to