Summarizing various discussions over the past few days here.
Historically we've needed to advance the lower bound quite often as numba-cuda features were created to serve cuDF specifically, while maintaining a tight upper bound due to the instability of those APIs as we got things working, bumping as needed. As more libraries that RAPIDS wants compatibility with have adopted numba-cuda however, it's become common for those libraries to be ahead of where rapids pins numba-cuda. This makes it difficult for those libraries to be coinstalled with the latest RAPIDS version. After discussion with the cudf python and numba-cuda teams, the best idea moving forward seem to be to approach the numba-cuda dependency as follows:
- Open the upper bound for
numba-cuda for regular development, allowing RAPIDS to be worked on against the latest stable numba-cuda release
- At release time, add an upper bound restricting that RAPIDS release to, at latest, the most recent release of
numba-cuda that exists
We won't bump the lower bound unless necessary and we'll respond to issues with numba-cuda that surface through rapids with patch releases, these will hopefully be relatively infrequent and addressable quickly.
To get this off the ground, let's migrate rapids to >=0.24.0,<0.25.0, the lower bound getting us a version containing the latest import warning fixes and the upper bound mimicking what we'd have if things were running automatically as this proposal envisions. After that, we'll:
- Update release scripts to figure out the latest
numba-cuda version and adjust the bounds on release
- Remove the upper bound on development branches
PRs doing the former:
rapidsai/cudf#21117
rapidsai/cuml#7706
rapidsai/dask-cuda#1610
rapidsai/cuxfilter#759
rapidsai/rmm#2218
rapidsai/ucxx#573
cc @bdice @vyasr @jameslamb
Summarizing various discussions over the past few days here.
Historically we've needed to advance the lower bound quite often as
numba-cudafeatures were created to serve cuDF specifically, while maintaining a tight upper bound due to the instability of those APIs as we got things working, bumping as needed. As more libraries that RAPIDS wants compatibility with have adoptednumba-cudahowever, it's become common for those libraries to be ahead of where rapids pinsnumba-cuda. This makes it difficult for those libraries to be coinstalled with the latest RAPIDS version. After discussion with the cudf python andnumba-cudateams, the best idea moving forward seem to be to approach thenumba-cudadependency as follows:numba-cudafor regular development, allowing RAPIDS to be worked on against the latest stablenumba-cudareleasenumba-cudathat existsWe won't bump the lower bound unless necessary and we'll respond to issues with
numba-cudathat surface through rapids with patch releases, these will hopefully be relatively infrequent and addressable quickly.To get this off the ground, let's migrate rapids to
>=0.24.0,<0.25.0, the lower bound getting us a version containing the latest import warning fixes and the upper bound mimicking what we'd have if things were running automatically as this proposal envisions. After that, we'll:numba-cudaversion and adjust the bounds on releasePRs doing the former:
rapidsai/cudf#21117
rapidsai/cuml#7706
rapidsai/dask-cuda#1610
rapidsai/cuxfilter#759
rapidsai/rmm#2218
rapidsai/ucxx#573
cc @bdice @vyasr @jameslamb