fix: build the aiconfigurator wheel as manylinux_2_28 (cherry-pick #1330)#1332
Merged
nv-nmailhot merged 1 commit intoJul 8, 2026
Merged
Conversation
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
* fix: build the aiconfigurator wheel as manylinux_2_28
The wheel carries a native Rust/PyO3 (abi3) extension but was built on
ubuntu:jammy and tagged linux_x86_64 -- a bare platform tag that PyPI
rejects and that effectively pins the wheel to the build host's glibc.
Build it as a portable manylinux_2_28_x86_64 wheel instead (glibc >= 2.28;
RHEL 8+ / Ubuntu 20.04+).
Move the build stage onto quay.io/pypa/manylinux_2_28_x86_64 (glibc 2.28)
with an explicit rustup toolchain and uv, pinned to the image's CPython
3.12. maturin's built-in auditwheel checks the manylinux_2_28 policy and
stamps the tag -- no separate auditwheel step. uv build makes maturin's
PEP517 backend force --compatibility off, so the target is re-asserted via
MATURIN_PEP517_ARGS on the build command. README notes the new tag.
Verified: auditwheel reports the wheel consistent with manylinux_2_28_x86_64
(only whitelisted libc/libm/libpthread/libgcc_s referenced, nothing bundled);
it installs and runs on the jammy runtime image; verify_release_wheels.py passes.
Signed-off-by: Anant Sharma <anants@nvidia.com>
* ci: build aiconfigurator wheels for arm64 as well as x86-64
Parameterize the wheel build stage by target architecture so it produces
both manylinux_2_28_x86_64 and manylinux_2_28_aarch64 wheels from one
Dockerfile.
BuildKit populates TARGETARCH (amd64/arm64) from --platform (default: the
build host's arch); `FROM manylinux-${TARGETARCH}` selects the matching PyPA
base (quay.io/pypa/manylinux_2_28_{x86_64,aarch64}) and only that stage is
built. MATURIN_PEP517_ARGS is unchanged -- maturin appends the arch, so the
tag resolves to _x86_64 or _aarch64 automatically. The crate is
architecture-agnostic (no target_arch code / x86 intrinsics) and the parquet
data payload is identical across arches.
Build an aarch64 wheel natively on ARM, or from an x86 host via QEMU/buildx:
docker buildx build --platform linux/arm64 --target build --load .
Also drop a stale comment that referenced a [tool.maturin] compatibility
value that is not set (the target is asserted via MATURIN_PEP517_ARGS).
amd64 build re-verified unchanged; the aarch64 base pull and rustup
toolchain install validated under buildx QEMU emulation.
Signed-off-by: Anant Sharma <anants@nvidia.com>
* fix: harden Rust bootstrap and tighten maturin pin for wheel builds
docker/Dockerfile: download the rustup installer to disk instead of piping
`curl | sh`, so a failed download aborts the build (the pipeline previously
reported only sh's exit status and silently skipped rustup). Add curl retries
for transient network blips and pin the toolchain to 1.96.0 so release wheels
build reproducibly.
pyproject.toml: require maturin>=1.5.1. 1.5.1 fixed `--compatibility` handling
when run as a PEP517 backend, which the manylinux_2_28 wheel build depends on
(MATURIN_PEP517_ARGS="--compatibility manylinux_2_28"); 1.5.0 ignored it.
Signed-off-by: Anant Sharma <anants@nvidia.com>
* docs: condense wheel-build comments in Dockerfile
Trim the verbose block comments added for the manylinux_2_28 wheel build to
their essential rationale (why manylinux/glibc 2.28, why MATURIN_PEP517_ARGS
overrides the PEP517 compatibility default, why pin the interpreter).
Signed-off-by: Anant Sharma <anants@nvidia.com>
---------
Signed-off-by: Anant Sharma <anants@nvidia.com>
(cherry picked from commit d01ce3d)
jasonqinzhou
force-pushed
the
agent/cherry-pick-pr1330-to-release-0.10.0
branch
from
July 8, 2026 23:23
a2d76e1 to
0e54146
Compare
jasonqinzhou
marked this pull request as ready for review
July 8, 2026 23:25
Contributor
AIC Accuracy Regression TestingWorkflow result: Old revision: Summary
Comparison summary table
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
d01ce3dtorelease/0.10.0aiconfiguratorwheel asmanylinux_2_28_<arch>Backport relationship
#1330 was merged directly on top of #1329 and assumes its single-wheel Docker layout. Release backport #1331 has now merged.
This branch is rebased onto #1331's
release/0.10.0merge commit (001fbdd), so the PR contains only the one-commit #1330 backport.Backport notes
Validation
d01ce3d5d4fa172ff96b4ab4b53263e2d3039ff0uv lock --checkuv build --wheelpython3 tools/verify_release_wheels.py--no-depswheel install followed byimport aiconfiguratorandimport aiconfigurator_coregit diff --checkDocker is not installed in the local environment. The source PR's complete CI suite passed; this backport's Docker/Build and Test checks are required before merge.