Fix tag-triggered CI by installing the cuda-python metapackage with --no-deps#2334
Merged
leofang merged 1 commit intoJul 9, 2026
Merged
Conversation
During cuda-core tag releases, pip install cuda_python*.whl re-resolves cuda-core~=1.0.0 from PyPI and fails or downgrades the artifact wheel. Subpackages are already installed from CI artifacts, so skip dependency resolution in docs build and wheel test installability checks.
leofang
approved these changes
Jul 9, 2026
This comment has been minimized.
This comment has been minimized.
Member
|
Let me just admin-merge. Discussed in the meeting, this is considered a bandaid to unblock the release. What happened in the first attempt was that
This PR effectively nukes the dependency test (as if the whole job step is removed), which is fine as a bandaid. Long-term, we probably need to consider moving cuda-python dependency test to the release workflow (though I am not a fan of it). |
|
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.
Summary
Tag-triggered CI (e.g.
cuda-core-v1.1.0) fails in the docs build and in the wheel-test "Ensure cuda-python installable" step, even though the same commit passes onmain. This installs thecuda-pythonmetapackage wheel with--no-depsin those jobs, since the subpackages are already installed from CI artifacts.Problem
The
cuda-pythonmetapackage pins its subpackages (currentlycuda-core~=1.0.0incuda_python/setup.py). CI builds and installscuda-pathfinder,cuda-bindings, andcuda-corefrom freshly built artifacts, then installs thecuda-pythonwheel on top. Because that last install is a plainpip install, pip re-resolves the pinned deps against PyPI. Onmainthe builtcuda-coreversion is a dev version that still satisfies~=1.0.0, so nothing is pulled and CI is green. On a release tag the built version is1.1.0, which does not satisfy~=1.0.0, so pip goes to PyPI. This surfaces as two distinct tag-only failures:cuda-core(e.g.1.0.1) from PyPI over the freshly built1.1.0artifact. The docs then build against the stale package and fail on modules that only exist in1.1.0.cuda-coreexists on PyPI yet, so the re-resolve fails outright withcuda-core~=1.0.0 (from versions: none)— after the actualcuda.coretests have already passed.Fix
Add
--no-depsto the metapackage wheel install in the docs build and the Linux/Windows "Ensure cuda-python installable" steps. The subpackages are already present from artifacts, so dependency resolution here only re-fetches from PyPI and masks the correct just-built wheels.--no-depsinstalls the metapackage against what's already there and keeps these jobs pinned to the artifacts under test.This intentionally skips verifying the metapackage's PyPI dependency resolution in these jobs. That check is misleading during a subpackage tag release anyway (the pins don't yet match the not-yet-published version); it belongs in a dedicated metapackage-release install test against PyPI.
Changes
.github/workflows/build-docs.yml:pip install --no-deps cuda_python*.whl.github/workflows/test-wheel-linux.yml:--no-depson both branches of "Ensure cuda-python installable".github/workflows/test-wheel-windows.yml: sameTest plan
cuda-core-v1.1.0after merge; docs build and "Ensure cuda-python installable" should pass.