ci: Refactor wheel packaging workflows#24
Merged
zhanglei1949 merged 42 commits intomainfrom Mar 19, 2026
Merged
Conversation
Collaborator
Author
|
@greptile review this PR and update the PR summary |
Collaborator
Author
|
@greptile |
Collaborator
Author
|
TODO: @zhanglei1949 Remove the |
bbf0467 to
74765c9
Compare
longbinlai
reviewed
Mar 13, 2026
third_party/brpc_cmake.patch
Outdated
| #define nullptr NULL | ||
| #endif | ||
|
|
||
| +#ifndef HAVE_DLADDR |
Collaborator
There was a problem hiding this comment.
@zhanglei1949 py14 have defined this HAVE_DLADDR macro which blocks building wheel for py14. AI proposes to add this macro guard. Could you help check whether this is okay,
aa0d249 to
de003fa
Compare
Collaborator
|
Resolve the conflicts. Any, if possible, make this pr-triggered wheel packaging only for linux arm64, and left all platform packaging into nightly trigger. |
* support varchar(max_length) in NeuG type system Committed-by: Xiaoli Zhou from Dev container * skip specific regex when comparing physical plans Committed-by: Xiaoli Zhou from Dev container * minor fix according to review Committed-by: Xiaoli Zhou from Dev container * fix ci Committed-by: xiaolei.zl from Dev container Committed-by: xiaolei.zl from Dev container * avoid change func api Committed-by: xiaolei.zl from Dev container * ci strange failure Committed-by: xiaolei.zl from Dev container --------- Co-authored-by: xiaolei.zl <xiaolei.zl@alibaba-inc.com> Committed-by: nengli.ln from Dev container
Committed-by: xiaolei.zl from Dev container Committed-by: xiaolei.zl from Dev container minor Committed-by: xiaolei.zl from Dev container fix Committed-by: xiaolei.zl from Dev container Committed-by: xiaolei.zl from Dev container Committed-by: nengli.ln from Dev container
Committed-by: xiaolei.zl from Dev container Committed-by: nengli.ln from Dev container
Committed-by: xiaolei.zl from Dev container Committed-by: xiaolei.zl from Dev container Committed-by: nengli.ln from Dev container
Committed-by: nengli.ln from Dev container
Committed-by: nengli.ln from Dev container
Committed-by: nengli.ln from Dev container Committed-by: nengli.ln from Dev container
Committed-by: nengli.ln from Dev container Committed-by: nengli.ln from Dev container
Committed-by: nengli.ln from Dev container Committed-by: nengli.ln from Dev container
Committed-by: nengli.ln from Dev container
Committed-by: nengli.ln from Dev container
Committed-by: xiaolei.zl from Dev container Committed-by: nengli.ln from Dev container
Collaborator
Author
|
@greptile |
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Collaborator
Author
|
@greptile |
Collaborator
Author
|
@greptile |
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Collaborator
Author
|
@greptile |
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Collaborator
Author
|
@greptile |
Contributor
There was a problem hiding this comment.
zhanglei1949 has reached the 50-review limit for trial accounts. To continue receiving code reviews, upgrade your plan.
Collaborator
Author
|
@CodiumAI-Agent Review |
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.
Greptile Summary
This PR refactors the wheel-packaging CI by extracting all build logic into a new reusable workflow (
wheels-common.yml) that is called by both the release (build-wheel.yml) and nightly (build-nightly-wheel.yml) callers. It also bumps cibuildwheel to 3.4.0 across all workflows, adds Python 3.14 pre-release support, resolves several macOS arm64 and Python 3.14 build compatibility issues in CMake, and fixes a bash array syntax bug ininstall_deps.sh.Key changes:
wheels-common.yml: Single source of truth for wheel builds across all platforms; exposesmode,python_versions,cibuildwheel_version, and platform-enable flags as inputs to callers.pyproject.tomladdscp314-*withenable = ["cpython-prerelease"];BuildBRPCAsThirdParty.cmakepatches brpc'sHAVE_DLADDRredefinition error;BuildAbseilThirdParty.cmakestrips x86-only Abseil flags on Apple Silicon.build_wheels_linux_arm64nightly job is missing thegithub.repository == 'alibaba/neug'guard present in the equivalent x86_64 and macOS aarch64 jobs. Becausebuild-nightly-wheel.ymltriggers onpull_requestwith no repository filter, a fork PR will dispatch this job to the self-hosted arm64 Linux runner and execute untrusted code on it.Confidence Score: 3/5
github.repositoryguard inbuild_wheels_linux_arm64's nightlyifcondition is a meaningful security issue — fork PRs can trigger untrusted code execution on the self-hosted arm64 runner — and should be fixed before merging..github/workflows/wheels-common.yml— specifically thebuild_wheels_linux_arm64job's nightlyifcondition (lines ~247–261).Important Files Changed
github.repositoryguard allows fork PRs to run on the self-hosted runner.wheels-common.yml; addsNEUG_VERSIONto paths filter andv*tag trigger as requested; bumps cibuildwheel to 3.4.0 and runner Python to 3.14 for x86 and macOS.wheels-common.yml; adds optionalpython_versionsdispatch input and aligns cibuildwheel version to 3.4.0, resolving the previous nightly/release version mismatch.rm -rf /__w/_tool/Pythonpre-cleanup step to the two self-hosted Linux jobs beforesetup-python; appropriate here since both jobs explicitly target self-hosted runners.graphscope/neugtoneug/neug; verified correct —docker/Makefilealready builds the image asneug/neug:${ARCH}._neug_strip_absl_randen_flagshelper to remove x86-only flags (-msse4.1,-maes,-Xarch_x86_64) from Abseil Randen targets when building for Apple Silicon; fix is correctly scoped toAPPLE+arm64detection.third_party/brpc/src/butil/build_config.hat configure time to add a#ifndefguard aroundHAVE_DLADDR, fixing a macro-redefinition error with Python 3.14+; idempotent thanks to the existing-guard check.INTERACTIVE_MACOS) and adds anOPENSSL_ROOT_DIRexport for macOS to the generated env config.cp314-*to the cibuildwheel build target list and enablescpython-prereleaseto support building Python 3.14 wheels.Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[build-wheel.yml\nmode: release] -->|workflow_call| C B[build-nightly-wheel.yml\nmode: nightly] -->|workflow_call| C C[wheels-common.yml\nwheels-common.yml] C --> D[determine_python_versions\nubuntu-latest] D --> E[build_wheels_linux_x86_64\nself-hosted / linux / x64] D --> F[build_wheels_linux_arm64\nself-hosted / linux / arm64] D --> G[build_wheels_macos_x86_64\nmacos-15-intel\nenable_macos_x86=false] D --> H[build_wheels_macos_aarch64\nmacos-15] E -->|on tag or dispatch| E1[Upload artifact] E -->|on tag or main push| E2[Publish to PyPI] F -->|on tag or dispatch| F1[Upload artifact] F -->|on tag or main push| F2[Publish to PyPI] H --> H1[test_wheels_macos_aarch64\nmacos-15] G -.->|disabled| G1[test_wheels_macos_x86_64\nmacos-15-intel] style F fill:#ffcccc,stroke:#cc0000 style G fill:#eeeeee,stroke:#999999,stroke-dasharray:5Last reviewed commit: "Merge branch 'main' ..."