yihua opened a new pull request, #751:
URL: https://github.com/apache/hudi-rs/pull/751

   ## Description
   
   closes #750
   
   The manylinux `before-script-linux` installed protoc with `yum install -y 
protobuf-compiler`, which on the CentOS 7 base resolves to protoc 2.5.0. That 
predates `--experimental_allow_proto3_optional`, the flag prost-build passes 
when compiling lance-encoding's protos, so the publish step fails now that 
lance is a hard dependency of hudi-core. This installs a pinned official protoc 
release instead, on both the x86_64 and aarch64 steps (the latter had the same 
latent bug and only escaped because the x86_64 step aborts the job first).
   
   Regular CI runs on ubuntu-latest, whose apt protoc is current, so nothing 
exercised the container until a tag was pushed and the crates.io version was 
already burnt. The new `manylinux-wheel-build` job runs the same maturin-action 
against the same image with the same before-script, differing only in `build` 
instead of `publish`, so the break shows up on the pull request. It is 
deliberately not path-gated: no lockfile is committed, so dependency versions 
resolve fresh on every run and a break can arrive with no file in the repo 
changing.
   
   Verified against `quay.io/pypa/manylinux2014`: the yum package gives 
`libprotoc 2.5.0` and rejects the flag, while the new script gives `libprotoc 
36.1` and `lance-encoding v11.0.0` then compiles cleanly.
   
   ## How are the changes test-covered
   
   - [ ] N/A
   - [x] Automated tests (unit and/or integration tests)
   - [x] Manual tests
     - [x] Details are described below
   
   The `manylinux-wheel-build` CI job added here is itself the automated 
coverage: it fails on this change's `main` parent and passes with it.
   
   Manually, in the release container (`quay.io/pypa/manylinux2014`):
   
   | step | result |
   | --- | --- |
   | `yum install protobuf-compiler` then `protoc --version` | `libprotoc 
2.5.0` |
   | that protoc with `--experimental_allow_proto3_optional` | rejected, 
`Missing value for flag` |
   | this change's script, then `protoc --version` | `libprotoc 36.1` |
   | `cargo build` of `lance-encoding v11.0.0` | finished, exit 0 |
   


-- 
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