Repository navigation
Conversation
|
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. |
97d969c to
afe9fc9
Compare
|
/ok to test afe9fc9 |
|
afe9fc9 to
40bc259
Compare
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
40bc259 to
24d485d
Compare
mdboom
left a comment
There was a problem hiding this comment.
This PR is a bit of a special case to call it out. It adds things that we wouldn't want permanently that subsequence steps remove, really to just "bootstrap" the wheels into the right place. It would be better if there were a way to bootstrap in a single step because this will put us on a path to merge each of these individually.
I think a better arrangement would be to have a lower-level wheel-building workflow for specific wheels that could be triggered manually. Then for bootstrapping, we kick it off directly, and otherwise it would just be used in various configurations from the existing build-wheel.yml script. But that's probably not worth it.
🔴 JUST AN IMPORTANT NOTE TO MAKE SURE THE STACK ABOVE THIS IS APPROVED BEFORE MERGING THIS SO WE DON'T GET STUCK IN THIS BAD INTERMEDIATE STATE.
| - name: Prepare local maintenance SCM milestone | ||
| if: ${{ !inputs.single-cuda-major && (env.BUILD_BINDINGS == 'true' || env.TEST_BINDINGS == 'true') }} | ||
| run: | | ||
| python -m ci.tools.bindings_scm_version \ |
There was a problem hiding this comment.
See my previous comments in #3315 and #3316 about bindings_scm_version.
| - name: Set up Python for CI tools | ||
| uses: ./.github/actions/setup-hardened-python | ||
| with: | ||
| python-version: "3.12" |
There was a problem hiding this comment.
Again, 3.12 is an odd choice. 3.11 would be better.
| bindings-only: | ||
| description: Test this run's maintenance bindings wheel and Cython extensions. | ||
| type: boolean | ||
| default: false |
There was a problem hiding this comment.
bindings-only is a confusing name for this variable (if the comment is correct). Maybe maintenance-bindings?
— codex GPT-6 on behalf of Ralf —
Layer 3 of 7 of the staged "CUDA 12 bindings on
main" stack. Previous: #3315. Next: #3318. Stack map at the bottom.What this PR does
mainstarts building the CUDA 12 bindings wheel itself and running its GPU test suite, next to the existing CUDA 13 pipeline. Nothing else moves yet:cuda.coreand the metapackage keep consuming the12.9.x-branch artifacts (that cord is cut in #3318).build-wheel.yml: after the CUDA 13 work, switch to the maintenance mini-CTK (already fetched for Core's cu12 half), build thecuda_bindings_12wheel with the same cibuildwheel environment (shared through a YAML anchor),twine checkit, upload it, and build and upload its Cython test extensions.ci.yml: three new jobs,Maintenance bindings (linux-64 / linux-aarch64 / win-64), call the existing test workflows withbindings-only: true. Only matrix rows withCUDA_VER == 12.9.1run, and only the bindings suite.test-wheel-linux.yml,test-wheel-windows.yml: new inputsbindings-configandbindings-only; rows gainBINDINGS_ROOT.ci/tools/env-vars,ci/tools/run-tests:CUDA_BINDINGS_ROOTreplaces the hard-codedcuda_bindings_13.cuda_bindings_12/pyproject.toml: wheel payload policy copied from CUDA 13 (include-package-data = false: wheels ship.pxd/.pxiand headers, not.pyxsources or.intemplates; sdists keep everything) and cibuildwheel settings. Recorded in the upcoming release notes.Temporary scaffolding: the artifact name
maintenance-bindings-python<py>-cuda12.9.1-<platform>-<sha>and the three jobs exist only in this layer. #3318 folds the tests into the regular jobs and #3319 renames the artifacts to the finalcuda-bindings-python<py>-cuda<toolkit>-...scheme.After this merges
cuda.core, the metapackage, releases, and nightly are unchanged.Where to look
.github/workflows/build-wheel.yml: the "maintenance cuda.bindings" steps near the bottom and the&bindings-wheel-envanchor..github/workflows/test-wheel-linux.yml: thebindings-onlymatrix filter (the Windows file mirrors it).cuda_bindings_12/pyproject.toml: the payload policy, a deliberate product decision.All changes (8 files, +254 / -19)
.github/workflows/build-wheel.yml: maintenance wheel build/check/upload, Cython test build/upload,pip install -e ./ci, SCM preview bootstrap step, mini-CTK gating..github/workflows/ci.yml:ci-varsexports the registry JSON; threetest-maintenance-bindings-*jobs; thechecksaggregator expects them..github/workflows/test-wheel-linux.yml,test-wheel-windows.yml:bindings-config/bindings-onlyinputs, matrix filter, artifact prefix.ci/tools/env-vars:MAINTENANCE_*build variables,CUDA_BINDINGS_ROOT, artifact prefix.ci/tools/run-tests: bindings suite runs fromCUDA_BINDINGS_ROOT.cuda_bindings_12/pyproject.toml,docs/source/release/12.X.Y-notes.rst: payload policy and its note.Validation
afe9fc9e(run 41185002774), including the three new maintenance-bindings jobs.24d485d405ec1b9fb82d061abd57666e03825e81includes the follow-up fixes. Local validation: 303 CI-tool tests, actionlint passed. Full CI and native Pixi source/GPU checks have not been rerun for it.Stack map: what
maincan do after each layer mergesmain...v12.*tagcuda_bindings_12/; the PR-time CPU source-build smoke covers both roots; three CUDA 12 runtime fixes are incuda.coreand the metapackage still consume12.9.xartifacts12.9.xbranchv12.9.Ntag onmain; CUDA 13 releases are unchanged12.9.xis frozenEvery layer was designed to be mergeable on its own and had a green full CI run at its pre-rebase head on 2026-10-31. The stack is the "individually mergeable pieces" alternative to #3174-#3182; both stacks reach the same end state except that this one keeps compatibility routes for older artifact sources and retained CUDA 13 tags.