Problem
During the v0.57.0-rc.1 release, Release Python Binding failed on the armv7 wheel job:
The failing build used Python binding services-all, which included the foyer service at the time:
foyer depends on the foyer crate:
That dependency path pulls in io-uring v0.7.12. On armv7, io-uring rejects its prebuilt sys.rs bindings unless either bindgen is used or --cfg=io_uring_skip_arch_check is passed. The release log reported:
The prebuilt `sys.rs` may not be compatible with your target,
please use bindgen feature to generate new `sys.rs` of your arch
or use `--cfg=io_uring_skip_arch_check` to skip the check.
Release mitigation
For the 0.57.0 release, we should avoid bypassing io-uring's arch check. The release fix is to remove foyer from Python binding services-all instead of passing --cfg=io_uring_skip_arch_check.
Related PR:
Follow-up
We need to decide the long-term Python wheel policy for services that depend on platform-sensitive native Linux APIs.
Possible options:
- Keep
foyer out of Python services-all.
- Add a separate opt-in Python feature for
foyer.
- Build Python wheels with different service sets per target.
- Investigate enabling
io-uring bindgen for affected targets, if the manylinux build environment can support it reliably.
The key requirement is that Python release wheels should not depend on bypassing native binding compatibility checks for unsupported architectures.
Problem
During the
v0.57.0-rc.1release,Release Python Bindingfailed on the armv7 wheel job:v0.57.0-rc.1Release Python Bindingwheels (ubuntu-latest, armv7l)The failing build used Python binding
services-all, which included thefoyerservice at the time:bindings/python/Cargo.tomlinv0.57.0-rc.1foyerdepends on thefoyercrate:core/services/foyer/Cargo.tomlinv0.57.0-rc.1That dependency path pulls in
io-uring v0.7.12. On armv7,io-uringrejects its prebuiltsys.rsbindings unless either bindgen is used or--cfg=io_uring_skip_arch_checkis passed. The release log reported:Release mitigation
For the
0.57.0release, we should avoid bypassingio-uring's arch check. The release fix is to removefoyerfrom Python bindingservices-allinstead of passing--cfg=io_uring_skip_arch_check.Related PR:
Follow-up
We need to decide the long-term Python wheel policy for services that depend on platform-sensitive native Linux APIs.
Possible options:
foyerout of Pythonservices-all.foyer.io-uringbindgen for affected targets, if the manylinux build environment can support it reliably.The key requirement is that Python release wheels should not depend on bypassing native binding compatibility checks for unsupported architectures.