Repository navigation
Conversation
|
Auto-sync is disabled for ready for review pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
Contributor
Author
|
/ok to test |
Contributor
Author
|
Closing in favor of declaring the supported Numba range. Since numba-cuda 0.30.x is in maintenance mode and currently supports through Numba 0.66, a dependency upper bound is a smaller and clearer resolution than carrying compatibility code for Numba 0.68. I’ll follow up with a pin-only PR. |
This was referenced Oct 1, 2026
Contributor
Author
|
Superseded by the dependency-pin approach in #942. |
isVoid
added a commit
that referenced
this pull request
Oct 7, 2026
## Description Keep numba-cuda 0.30.x within its supported dependency range and prevent current CI failures caused by unsupported dependency combinations. This PR: - Pins Numba to `>=0.60,<0.67`. - Pins NumPy to `<2.5`. - Skips the Linux IPC test classes when `cuda-bindings` no longer exposes `CUipcMemHandle.reserved`. Numba 0.68 changed cache source stamps from `(mtime, size)` tuples to content hashes. numba-cuda 0.30.4 still uses tuple stamps, so CPU and CUDA dispatchers invalidate and overwrite their shared cache index instead of reusing it. Rather than adding compatibility code for a newer Numba release in maintenance mode, prevent incompatible combinations from being resolved. NumPy 2.5 removed `np.row_stack`, which numba-cuda 0.30.4 still references. Although supported Numba releases currently constrain NumPy transitively, declaring the NumPy cap directly records numba-cuda's own compatibility boundary. Recent `cuda-bindings` releases intentionally stopped exposing reserved struct fields, including `CUipcMemHandle.reserved`. All five failing IPC tests depend on that field directly or indirectly through multiprocessing pickling. The tests now use a feature-gated class skip, so they continue to run with older compatible bindings and skip only when the required field is unavailable. The Numba upper bound is `<0.67` because Numba 0.66 is the latest version explicitly supported by numba-cuda 0.30.x. The NumPy upper bound follows the maintenance recommendation in #907. Closes #940. Supersedes #941. ## Validation - `pre-commit run --files pyproject.toml pixi.toml pixi.lock numba_cuda/numba/cuda/tests/cudapy/test_ipc.py` - Parsed and validated both dependency specifications. - Generated wheel metadata with `setuptools.build_meta` and verified: - `Requires-Dist: numba<0.67,>=0.60.0` - `Requires-Dist: numpy<2.5` - Verified all 15 numba-cuda conda lock variants contain both upper bounds. - Verified the IPC classes run when `CUipcMemHandle.reserved` exists and are skipped when it does not. - Focused simulator run: 6 skipped, 0 failures.
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.
Note
Closed in favor of declaring the supported Numba range in #942. This compatibility-code approach is superseded and should not be merged.
Numba 0.68 changed source freshness stamps in shared
.nbicache indexes from(mtime, size)tuples to SHA-256 content digests. Numba-CUDA retained the old stamp calculation, so CPU and CUDA dispatchers rejected each other's index as stale and overwrote the same.nbcdata slots.This PR explored delegating source-file freshness stamps to the installed Numba cache locator. The implementation and regression tests passed against Numba 0.60.0, 0.67.0, and 0.68.0, but numba-cuda 0.30.x is in maintenance mode and Numba 0.66 is its latest explicitly supported release. The chosen resolution is therefore to constrain the dependency to
numba>=0.60,<0.67in #942 rather than add compatibility code for Numba 0.68.Related issue: #940.