Skip to content

ci: bump pixi to v0.73.0 to fix per-run Cython rebuild (#2138)#2396

Merged
kkraus14 merged 1 commit into
NVIDIA:mainfrom
rparolin:fix/2138-bump-pixi-0.73
Jul 21, 2026
Merged

ci: bump pixi to v0.73.0 to fix per-run Cython rebuild (#2138)#2396
kkraus14 merged 1 commit into
NVIDIA:mainfrom
rparolin:fix/2138-bump-pixi-0.73

Conversation

@rparolin

Copy link
Copy Markdown
Collaborator

Summary

Fixes #2138. Pixi <0.71.0 re-ran the editable source build on every pixi run, recompiling all ~29 Cython extensions in cuda_bindings (~27s of C++) even when nothing changed — setuptools' editable_wheel uses fresh temp build dirs each run, so build_ext always sees each .so as older than its source and recompiles.

Pixi 0.71.0 fixed this upstream:

  • prefix-dev/pixi#6285 — content-addressed source-build cache (keyed by backend, platform, variants, deps, config; returns cached artifacts without starting the build backend).
  • prefix-dev/pixi#6123 — separate Cython input tracking so .pyx/.pxd/.pxi edits still invalidate correctly.

This PR bumps the CI pin v0.66.0v0.73.0 and regenerates the committed lock files.

Validation (local, cuda_bindings -e cu13, same command run twice)

pixi version 2nd no-op run extensions rebuilt fresh /tmp/*.build-temp lock format
0.66.0 (old) rebuild ~27s 29 yes v6
0.71.3 instant 0 no v7
0.73.0 (new) instant 0 no v7

Baseline reproduced the exact symptom (fresh /tmp/tmp78sr7y3a.build-temp, 29 extensions rebuilt on an unchanged 2nd run). After the bump, build + import succeeds and the 2nd run rebuilds nothing.

⚠️ Contributor impact — coordinated pixi upgrade

The fix unavoidably bumps the pixi.lock format from v6 → v7, which pixi 0.66 cannot read. Every fix-carrying pixi (0.71.x and 0.73.0 alike) produces v7 — there is no version that fixes the rebuild while keeping v6.

Consequently:

  • All contributors must upgrade to pixi ≥0.71 (pixi self-update) before running against this branch.
  • All six committed pixi.lock files are regenerated to v7 in this PR (root, cuda_bindings, cuda_core, cuda_pathfinder, benchmarks/cuda_bindings, benchmarks/cuda_core). The large lock diffs reflect the v6→v7 rewrite plus routine conda-forge/pypi drift since they were last solved.

Files changed

  • .github/workflows/ci-pixi-source-test.ymlPIXI_VERSION v0.66.0v0.73.0 + explanatory comment.
  • 6 × pixi.lock — regenerated to format v7.

🤖 Generated with Claude Code

Pixi <0.71.0 re-ran the editable source build on every `pixi run`,
recompiling all ~29 Cython extensions in cuda_bindings (~27s) even when
nothing changed, because setuptools' editable_wheel uses fresh temp
build dirs so build_ext always sees the .so as older than its source.

Pixi 0.71.0 fixed this upstream with a content-addressed source-build
cache (prefix-dev/pixi#6285) plus separate Cython input tracking
(prefix-dev/pixi#6123). Locally verified: under 0.66 the 2nd no-op run
rebuilds 29 extensions with a fresh /tmp/*.build-temp; under 0.73 it
rebuilds nothing and returns instantly.

The fix also bumps the pixi.lock format from v6 to v7 (unreadable by
pixi 0.66), so this requires all contributors to move to pixi >=0.71.
Regenerated all six committed lock files to v7 accordingly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@rparolin rparolin added this to the cuda.bindings next milestone Jul 21, 2026
@rparolin rparolin added bug Something isn't working CI/CD CI/CD infrastructure labels Jul 21, 2026
@github-actions github-actions Bot added cuda.bindings Everything related to the cuda.bindings module cuda.core Everything related to the cuda.core module cuda.pathfinder Everything related to the cuda.pathfinder module labels Jul 21, 2026
@rparolin
rparolin requested a review from leofang July 21, 2026 00:41
@rparolin rparolin self-assigned this Jul 21, 2026
@rparolin
rparolin requested a review from kkraus14 July 21, 2026 00:41
@github-actions

This comment has been minimized.

@kkraus14
kkraus14 merged commit 76bac4e into NVIDIA:main Jul 21, 2026
392 of 406 checks passed
@github-actions

Copy link
Copy Markdown
Doc Preview CI
Preview removed because the pull request was closed or merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working CI/CD CI/CD infrastructure cuda.bindings Everything related to the cuda.bindings module cuda.core Everything related to the cuda.core module cuda.pathfinder Everything related to the cuda.pathfinder module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pixi rebuilds all 36 Cython extensions on every pixi run (editable install temp dirs)

2 participants