[Task]: Investigate native ARM runners for Python aarch64 wheels
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 70/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 冷清
- 技术栈
- github-actions, python
调研方向
从 .github/workflows/build_wheels.yml 和其中链接的当前 aarch64 job 开始,然后查阅 GitHub runner 和 cibuildwheel 的 ARM 指南。确认 ubuntu-24.04-arm 是否可用于此矩阵行,并使用平台标签、auditwheel show、安装/导入冒烟测试、现有 wheel 测试和实际耗时,对比一次有界的原生 ARM 运行与 QEMU。
由索引模型根据 Issue 内容生成。
描述
What needs to happen?
Python wheel workflow currently builds Linux aarch64 wheel on an ubuntu-22.04 x64 GitHub-hosted runner through QEMU.
In a representative PR run, aarch64 Python 3.14 leg took 91 minutes and determined almost all workflow latency. Other active legs took 5 to 26 minutes:
- Beam run: https://github.com/apache/beam/actions/runs/30917964633
- aarch64 job: https://github.com/apache/beam/actions/runs/30917964633/job/92021083741
- workflow configuration: https://github.com/apache/beam/blob/master/.github/workflows/build_wheels.yml
GitHub provides standard ubuntu-24.04-arm runners for public repositories. Other Apache projects already use them for native wheel builds. For example, Arrow Nanoarrow runs cibuildwheel on ubuntu-24.04-arm; a recent Linux ARM64 job completed successfully in about 11 minutes:
- GitHub runner documentation: https://docs.github.com/en/actions/reference/runners/github-hosted-runners
- cibuildwheel native ARM guidance: https://cibuildwheel.pypa.io/en/stable/faq/
- Arrow Nanoarrow workflow: https://github.com/apache/arrow-nanoarrow/blob/main/.github/workflows/python-wheels.yaml
- Example job: https://github.com/apache/arrow-nanoarrow/actions/runs/30664577816/job/91268851254
Could someone familiar with Beam Infra or Apache runner constraints confirm whether this wheel leg can use ubuntu-24.04-arm, or whether current QEMU path is intentional?
A bounded experiment could switch only aarch64 matrix row to native ARM, use CIBW_ARCHS_LINUX=auto, and skip QEMU for that row. Validation should compare wheel platform tags, auditwheel show, installation/import smoke tests, existing wheel tests, and wall-clock time against current QEMU job.
Issue Priority
Priority: 2 (default / most normal work should be filed as P2)
Issue Components
- Component: Python SDK
- Component: Java SDK
- Component: Go SDK
- Component: Typescript SDK
- Component: IO connector
- Component: Beam YAML
- Component: Beam examples
- Component: Beam playground
- Component: Beam katas
- Component: Website
- Component: Infrastructure
- Component: Spark Runner
- Component: Flink Runner
- Component: Prism Runner
- Component: Twister2 Runner
- Component: Hazelcast Jet Runner
- Component: Google Cloud Dataflow Runner
- 主要语言
- Java
- 星标
- 8.7k
- 派生
- 4.7k
- 平均合并
- 2 天 16 小时
- 30 天内合并 PR
- 253
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/beam 的其他 Issue
-
[Bug]: Row.toString throws for an ITERABLE field that is not backed by a List可能已有人在做 @PDGGK 于 60 天前认领。 未关闭java P3
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
apache/beam#39624 · 2 个 reaction ·
维护者通常 1 天内回复
-
[Bug]: PubsubIO used in batch incorrect batch cutoff size可能已有人在做 @1fanwang 于 49 天前认领。 未关闭bug io P3 pinned pubsub
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
build P3 sub-task
难度 1/5 1 小时以内 新手友好度 68/100
维护者通常 1 天内回复
-
bug gcp io java P3
难度 1/5 1 小时以内 新手友好度 65/100
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 68/100
objectionary/lints#1556 ·
维护者通常 3 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
wildfly/wildfly-launcher#99 ·
-
难度 2/5 1-3 小时 新手友好度 65/100
apache/rocketmq#11427 · 2 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
-
难度 1/5 1 小时以内 新手友好度 88/100
objectionary/phino#1884 · 1 条评论 ·
维护者通常 1 天内回复