Skip to content

dockerfiles: update manylinux for Python 3.15 - #8460

Merged
ethanwee1 merged 1 commit into
mainfrom
users/ethanwee/python315-manylinux
Sep 23, 2026
Merged

ethanwee1 merged 1 commit into
mainfrom
users/ethanwee/python315-manylinux

Conversation

@ethanwee1

@ethanwee1 ethanwee1 commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

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_64 digest to an image containing /opt/python/cp315-cp315.

Sequencing

Validation

JIRA ID: AIPYTORCH-1241

Use the upstream manylinux image that provides the cp315 interpreter required by Python 3.15 wheel builds.
@therock-pr-bot

therock-pr-bot Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

✅ All Checks Passed — Ready for Review

Check Status Details
📝 PR Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ✅ Pass PR does not contain code files — Unit Test auto-passed
🔎 pre-commit ✅ Pass —
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —
🤖 therock-pr-bot ✅ Pass —

🎉 All checks passed! This PR is ready for review.

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

🙋 Wish to Override Policy?

@therock-pr-bot therock-pr-bot Bot added the Not ready to Review PR has unresolved policy failures — reviews blocked label Sep 23, 2026
@therock-pr-bot

therock-pr-bot Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

🎉 All checks passed! This PR is ready for review.

@therock-pr-bot therock-pr-bot Bot removed the Not ready to Review PR has unresolved policy failures — reviews blocked label Sep 23, 2026
@ethanwee1
ethanwee1 merged commit 8b502b8 into main Sep 23, 2026
28 of 33 checks passed
@ethanwee1
ethanwee1 deleted the users/ethanwee/python315-manylinux branch September 23, 2026 20:29
@github-project-automation github-project-automation Bot moved this from TODO to Done in TheRock Triage Sep 23, 2026
@jplehr jplehr mentioned this pull request Sep 24, 2026
1 task done
@lumachad

lumachad commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

@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:

ghcr.io/rocm/therock_build_manylinux_x86_64@sha256:b7ad2b4a8eeb903b359ef68004e727c1904632e1f29e11af39542e522a0a700b

I'm not sure how this update relates to that, but we might need a revert here or a fix.

@lumachad

Copy link
Copy Markdown
Contributor

It could also be related to #8246, but I'm not sure that has the same breadth of change as this one.

@lumachad

Copy link
Copy Markdown
Contributor

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.

@lumachad

Copy link
Copy Markdown
Contributor

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.

@ScottTodd

Copy link
Copy Markdown
Member

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.

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.

  • If a workflow run is not a pull request, always use the pinned versions
  • If a workflow run is a pull request and it modifies dockerfiles, build the dockerfiles then use the built sha values for the rest of the jobs

lumachad added a commit that referenced this pull request Sep 28, 2026
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.
ethanwee1 added a commit that referenced this pull request Oct 30, 2026
## 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.
ethanwee1 added a commit that referenced this pull request Nov 5, 2026
## 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants