Skip to content

ci(images): bump docker CUDA to 13.1.0 and Python to 3.14.1 - #1123

Merged
rapids-bot[bot] merged 5 commits into
NVIDIA:mainfrom
ramakrishnap-nv:bump-docker-cuda-python
Apr 24, 2026
Merged

ci(images): bump docker CUDA to 13.1.0 and Python to 3.14.1#1123
rapids-bot[bot] merged 5 commits into
NVIDIA:mainfrom
ramakrishnap-nv:bump-docker-cuda-python

Conversation

@ramakrishnap-nv

Copy link
Copy Markdown
Collaborator

Summary

  • Bump CUDA image matrix: 13.0.013.1.0 (keeps 12.9.0 for CUDA 12 coverage)
  • Bump Python image matrix: 3.13.73.14.1

These are the latest CUDA and Python versions cuOpt supports per dependencies.yaml (CUDA 13.1 and Python 3.14 entries).

Only the default inputs in .github/workflows/build_test_publish_images.yaml change; the Dockerfile itself already consumes these as build args and needs no edit.

Test plan

  • Trigger the build/publish workflow and confirm images build for cuda12.9-py3.14-*, cuda13.1-py3.14-* across amd64 and arm64
  • Confirm published tags look correct (nvidia/cuopt:<tag>-cuda12.9-py3.14-<arch>, ...cuda13.1-py3.14-<arch>)
  • Confirm test_images.yaml passes against the new tags

Update the default image matrix in build_test_publish_images.yaml to ship
the latest CUDA and Python versions cuOpt supports (per dependencies.yaml):
CUDA 13.1 and Python 3.14. CUDA 12.9.0 coverage is retained.
@ramakrishnap-nv
ramakrishnap-nv requested a review from a team as a code owner April 20, 2026 15:56
@ramakrishnap-nv
ramakrishnap-nv marked this pull request as draft April 20, 2026 15:57
@copy-pr-bot

copy-pr-bot Bot commented Apr 20, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Apr 20, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 0a9e84e6-454c-44e6-bcad-bbcaa64cd784

📥 Commits

Reviewing files that changed from the base of the PR and between 4fd5696 and 7d215aa.

📒 Files selected for processing (4)
  • .github/workflows/build_test_publish_images.yaml
  • README.md
  • ci/docker/Dockerfile
  • docs/cuopt/source/_static/install-selector.js
✅ Files skipped from review due to trivial changes (2)
  • docs/cuopt/source/_static/install-selector.js
  • README.md

📝 Walkthrough

Walkthrough

Updated default version values and related references: GitHub Actions workflow default CUDA upgraded to 13.1.0 and Python to 3.14.4; README and docs strings updated to reflect new nightly image tags; Dockerfile changed to use update-alternatives for Python instead of a symlink. No behavioral workflow logic changes.

Changes

Cohort / File(s) Summary
Workflow input defaults
.github/workflows/build_test_publish_images.yaml
Default on.workflow_call.inputs.cuda_ver changed from ["12.9.0", "13.0.0"]["12.9.0", "13.1.0"]; default on.workflow_call.inputs.python_ver changed from ["3.13.7"]["3.14.4"].
Documentation / README
README.md
Added docs for nightly container images and updated example tags to include cuda12.9-py3.14 and cuda13.1-py3.14, noting alpha (a) tag suffixes.
Docker build logic
ci/docker/Dockerfile
Replaced ln -sf /usr/bin/python${PYTHON_SHORT_VER} /usr/bin/python with update-alternatives registrations for /usr/bin/python and /usr/bin/python3 pointing to /usr/bin/python${PYTHON_SHORT_VER} (priority 100).
Docs static JS
docs/cuopt/source/_static/install-selector.js
Updated generated nightly container tag strings from V_NEXT.0a-cuda12.9-py3.13 / V_NEXT.0a-cuda13.0-py3.13 to V_NEXT.0a-cuda12.9-py3.14 / V_NEXT.0a-cuda13.1-py3.14 and adjusted corresponding docker run command strings.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title refers to bumping CUDA and Python versions, which matches the main objective. However, the actual changes show Python 3.14.4 (not 3.14.1 as stated) and include additional modifications to Dockerfile and documentation beyond just workflow inputs.
Description check ✅ Passed The description is related to the changeset and explains the intent to update version matrices. It describes the main changes and their rationale, though it does not capture all file modifications (Dockerfile, README, install-selector.js).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

The deadsnakes PPA on Ubuntu 22.04 currently ships Python 3.14.4; using
that exact patch in the workflow makes the image tag match what is
actually installed in the container.
The Dockerfile only symlinked /usr/bin/python to python${PYTHON_SHORT_VER}
and left /usr/bin/python3 pointing at the ubuntu base image's python3.10,
which does not have cuopt installed. Callers using 'python3' inside the
container would therefore import-fail. Retarget /usr/bin/python3 at the
same interpreter used for the cuopt install.
Switch from direct 'ln -sf' to update-alternatives so the override for
/usr/bin/python3 -> python${PYTHON_SHORT_VER} survives future apt-get
installs of packages that depend on python3 (deadsnakes' python3.14 does
not provide the 'python3' virtual package, so apt can still pull in the
base image's python3.10). Priority 100 keeps the deadsnakes-installed
interpreter selected in auto mode.
The CUDA 13.1 / Python 3.14 image defaults ship first via nightly builds;
stable (latest) tags still use cuda13.0/py3.13 until a new release is
cut. Update the install-selector nightly branch and add a README note so
users can find nightly tags for early testing.
@ramakrishnap-nv ramakrishnap-nv self-assigned this Apr 20, 2026
@ramakrishnap-nv ramakrishnap-nv added non-breaking Introduces a non-breaking change improvement Improves an existing functionality labels Apr 20, 2026
@ramakrishnap-nv
ramakrishnap-nv marked this pull request as ready for review April 20, 2026 17:31
@ramakrishnap-nv
ramakrishnap-nv requested a review from a team as a code owner April 20, 2026 17:31
@ramakrishnap-nv
ramakrishnap-nv requested review from Iroy30 and removed request for jakirkham April 20, 2026 17:31
@ramakrishnap-nv ramakrishnap-nv added the do not merge Do not merge if this flag is set label Apr 20, 2026
@anandhkb anandhkb added this to the 26.06 milestone Apr 20, 2026
@ramakrishnap-nv ramakrishnap-nv removed the do not merge Do not merge if this flag is set label Apr 24, 2026
@ramakrishnap-nv

Copy link
Copy Markdown
Collaborator Author

/merge

@rapids-bot
rapids-bot Bot merged commit 2505189 into NVIDIA:main Apr 24, 2026
211 of 213 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improves an existing functionality non-breaking Introduces a non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants