support glibc2.28#386
Merged
Merged
Conversation
27e2469 to
9a3addf
Compare
152a178 to
71c13fd
Compare
- Switch CI to manylinux_2_28 Docker image (glibc 2.28 compat) - Support Python 3.10/3.11/3.12/3.13/3.14 wheel builds with parallel compilation - Remove NVPTX from LLVM targets (FlyDSL only needs X86+AMDGPU) - Fix auditwheel --exclude: detect SONAMEs dynamically instead of hardcoded globs (libamdhip64.so.* never matched, causing 82MB wheels) - Strip shared libs and remove duplicate libFlyPythonCAPI.so symlink before packaging (327MB -> 219MB raw, 82MB -> 69MB compressed) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The build-whl.yaml "Build manylinux Docker image" step references flydsl/docker/Dockerfile.manylinux_2_28 but the file was never committed, causing CI to fail with "lstat flydsl/docker: no such file or directory". Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Use flydsl/docker as build context instead of entire repo (Dockerfile uses no files from context, avoids sending full checkout to daemon) - Add egg_info --egg-base to isolate per-version egg-info directories during parallel wheel builds (prevents race on shared python/flydsl.egg-info/) - Move SUMMARY_LLVM_COMMIT to shell run block — $() in GH Actions env: is a literal string, not shell expansion Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Wheels link against libamdhip64.so.7 (ROCm 7 SONAME) and are not compatible with ROCm 6.x. Update all docs to reflect ROCm 7.x only. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tag push: validate_tag → release version (e.g. 0.1.3) Manual dispatch: skip tag validation, use devreleases version (e.g. 0.1.3.dev20260413+abcdef), with optional skip_tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
devreleases now produces {base}.dev{commit_count} (e.g. 0.1.3.dev479)
instead of {base}.dev{date}+{hash}. PyPI rejects local version
segments (+hash), and commit count is monotonically increasing.
Also set fetch-depth: 0 in build-whl.yaml so git rev-list --count
returns the full commit count instead of 1 (shallow clone default).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
MLIR_ENABLE_ROCM_RUNNER triggers find_package(hip) which calls amdgpu-arch for GPU detection. In headless build containers this fails with GPU_TARGETS=NOTFOUND, crashing MLIR's CMake. FlyDSL provides its own ROCm runtime (mgpuModuleLoad, mgpuLaunchKernel etc. in FlyRocmRuntimeWrappers.cpp) and does not use MLIR's rocm_runner. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Multiple parallel setup.py invocations each trigger git submodule update --init, causing race conditions on the git state (fatal: Unable to find current revision in submodule path). Initialize submodules once in build_wheels.sh before spawning parallel build_one processes. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add `packages: write` to ci.yaml and publish-pypi.yaml callers so GHCR docker push actually succeeds (was silently failing) - Remove workflow YAML from MLIR cache key — editing the YAML should not trigger a 30-60 min LLVM rebuild - Stop suppressing docker pull stderr so failures are visible - Add `|| true` to flydsl.yaml cleanup step to avoid masking real errors Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CI pipeline always uses nightlies format (0.1.3.1+YYYYMMDD.hash) for both scheduled and manual dispatch runs. Output goes to S3, not PyPI, so local version identifiers (+) are fine. PyPI pipeline (publish-pypi.yaml) keeps release + devreleases (commit count) which are PEP 440 / PyPI compatible. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Keep the PR focused on manylinux_2_28 wheel support now that main already handles multi-version Python builds. Made-with: Cursor
Keep the manylinux builder Dockerfile at the repo root and avoid sending the checkout as Docker build context. Made-with: Cursor
dbd4ce6 to
8e87d10
Compare
Make the manylinux wheel job use an explicit Python for LLVM setup and keep the CI docker image input scoped to tests. Made-with: Cursor
Use the wheel payload's DT_NEEDED entries to exclude ROCm runtime SONAMEs instead of probing host library paths. Made-with: Cursor
152a178 to
a6f835e
Compare
Keep the wheel-builder Dockerfile next to the workflow that consumes it. Made-with: Cursor
Keep the manylinux PR focused on the glibc 2.28 build environment and avoid changing the existing ROCm runtime exclude behavior. Made-with: Cursor
omuhamma
pushed a commit
that referenced
this pull request
May 8, 2026
--------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5 tasks
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.
support glibc2.28 and python 3.10~3.14