Repository navigation
dockerfiles: update manylinux for Python 3.15 - #8460
Conversation
Use the upstream manylinux image that provides the cp315 interpreter required by Python 3.15 wheel builds.
✅ All Checks Passed — Ready for Review
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🎉 All checks passed! This PR is ready for review. |
|
@ScottTodd @ethanwee1 This new image SHA doesn't have our required iconv entries (iconv -l), which leads to ROCgdb building with a default handling that makes a number of our tests fail: ROCm/ROCgdb#374 I tried the latest manylinux image and it is missing entries:
I'm not sure how this update relates to that, but we might need a revert here or a fix. |
|
It could also be related to #8246, but I'm not sure that has the same breadth of change as this one. |
|
Also, it seems we did not test the stack with this change. Since this is changing the image used for all builds, it should at least make sure the builds + tests work OK. |
|
I'm not sure why, but the new SHA doesn't have the required glibc-gconv-extra package installed, while the old working SHA had. |
Ah, the pytorch build on its own was probably not sufficient. See the docs at https://github.com/ROCm/TheRock/tree/main/dockerfiles#updating-images-used-by-github-actions-workflows. We typically recommend running a full CI source build of ROCm with major updates to the containers (as was done on #8246). What I think we can do once we have #7683 is have the CI workflows run for changes to the dockerfiles, first building the dockerfiles and then using the new sha dynamically.
|
Reverts #8460 The new SHA of the manylinux image breaks ROCgdb testing due to lack of libiconv and a shorter than required list of "iconv -l", causing spurious warnings of encoding conversion failures and, as a consequence, leading to failed tests. ``` 2026-09-28 07:54:17,118 - INFO: (gdb) p main 2026-09-28 07:54:17,118 - INFO: warning: could not convert 'main' from the host encoding (ISO-8859-1) to UTF-32. ``` See https://github.com/ROCm/ROCgdb/actions/runs/36374594147/job/108836154137?pr=374 for instance.
## Problem The merged TheRock manylinux image does not contain CPython 3.15, so TheRock #8394 cannot configure or build its cp315 Linux artifacts from merged code. ## Changes - Move to the current `manylinux_2_28_x86_64` base digest containing CPython 3.15. - Build shared Python 3.15 for embedded consumers such as ROCgdb. - Install `glibc-gconv-extra` so the refreshed image retains the iconv conversion coverage needed by ROCgdb tests. ## Sequencing - Merge this image change and wait for the main-branch image publication. - Then update the published image digest across all consumers in [TheRock #8394](#8394). - [TheRock #8460](#8460) and [#8565](#8565) are the earlier image update and revert; this replaces that reverted image with the current base and the missing shared-runtime setup. ## Validation - `bash -n dockerfiles/install_shared_pythons.sh` passed. - `git diff --check` passed. - Local Docker image build passed from commit `74266a11`. - The built image contains regular CPython 3.15.2 and shared CPython 3.15.0. - `glibc-gconv-extra` is installed and `iconv -l` reports 1,180 entries. Tracked in AIPYTORCH-1241.
## Summary Enable Python 3.15 PyTorch release builds in TheRock, including regular/shared CPython paths and all portable manylinux consumers. Unsupported PyTorch `release/2.12` combinations remain excluded. ## Risk Assessment Level 3 (`build/ci`): release matrices, reusable workflows, dependency mirroring, and portable wheel packaging change across Linux and Windows; ROCm runtime code is unchanged. ## Related - GitHub issue: [TheRock #5400](#5400) - Published image: [TheRock #9633](#9633), digest `sha256:f1f9dd9b20404c239f01a02ffec61d6c2e80abcafe7fdac854f06169828e53ce` - Release/2.14 Triton dependency: [ROCm/pytorch #3677](ROCm/pytorch#3677) - Nightly Triton dependency: [triton-lang/triton #11433](triton-lang/triton#11433) - Historical image update/revert: [TheRock #8460](#8460), [#8565](#8565) ## Device / Architecture Coverage - Local: gfx942 / gfx94X-dcgpu. - CI: Linux gfx94X-dcgpu plus the existing multi-arch Linux and Windows matrices. - Current-head manual builds: [Linux 41900743552](https://github.com/ROCm/TheRock/actions/runs/41900743552) and [Windows 41900748079](https://github.com/ROCm/TheRock/actions/runs/41900748079). ## Testing Checklist - [x] Full TheRock CI — [run 41900730317](https://github.com/ROCm/TheRock/actions/runs/41900730317); Python 3.15-relevant gates passed. - [x] Current-head Linux and Windows cp315 wheel builds — [Linux build](https://github.com/ROCm/TheRock/actions/runs/41900743552/job/126822172802) and [Windows build](https://github.com/ROCm/TheRock/actions/runs/41900748079/job/126822187993). - [ ] Current-head wheel tests — [Linux test](https://github.com/ROCm/TheRock/actions/runs/41900743552/job/126855957814) and [Windows test](https://github.com/ROCm/TheRock/actions/runs/41900748079/job/126856857568) are blocked by missing `filelock-4.0.8` in the dev index. ## Flags / Guardrails No new runtime feature flag. Python 3.15 is included only in release matrices; CI defaults remain unchanged. ## Technical Changes - Add cp315 to release matrix, dependency mirror policy, portable build arguments, shared-Python configuration, and release-copy inputs. - Pin all manylinux consumers to the merged Python 3.15-capable image. - Enable prerelease-aware Python setup for wheel workflows. Closes #5400 Tracked in AIPYTORCH-1241.
Problem
The current TheRock manylinux build image does not include CPython 3.15, so it cannot produce cp315 wheels from merged code.
Changes
Update the upstream
manylinux_2_28_x86_64digest to an image containing/opt/python/cp315-cp315.Sequencing
Validation
ghcr.io/rocm/therock_build_manylinux_x86_64@sha256:dac9a32afb1eb77e4ea424031823d9322387a89620bd239a1e4860d03295a6c6.docker manifest inspectandgit diff --checkpassed.JIRA ID: AIPYTORCH-1241