Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Testing against oldest python dependencies #81

Open
4 of 14 tasks
seberg opened this issue Jul 15, 2024 · 8 comments
Open
4 of 14 tasks

Testing against oldest python dependencies #81

seberg opened this issue Jul 15, 2024 · 8 comments

Comments

@seberg
Copy link

seberg commented Jul 15, 2024

E.g. for NumPy 2 it makes sense at least for some projects (cudf, cuml, cucim) to test both NumPy 2 and NumPy 1.x, however, RAPIDS currently doesn't do this.

The following PR would allow each projects to add explicit oldest dependencies to their testing workflows: rapidsai/shared-workflows#228

For each of the projects, we need then pin the interesting oldest dependencies:

  • rmm:
    • numpy==1.23, numba=0.57
    • PR
  • cuDF:
    • numpy==1.23, pandas==2.0, numba=0.57, (fsspec=0.6.0)
      pyarrow==16.1.0, cupy==12.0.0
    • PR
  • raft:
    • numpy=1.23, numba==0.57, (joblib==0.11)
  • cuML:
    • numpy=1.23, numba==0.57, scipy==1.8, joblib==0.11
  • cuGraph:
    • cupy==12.0.0, numpy=1.23, numba==0.57, networkx==3.0, (fsspec=0.6.0)
  • cuCIM:
    • cupy==12.0.0, numpy=1.23, scikit-image==0.19.0, (lazy_loader==0.1)
  • cuSpatial:
    • cupy==12.0.0, numpy=1.23, geopandas=0.11.0
  • cuxfilter:
    • cupy==12.0.0, numpy=1.23, numba>=0.57, geopandas=0.11.0, holoviews==1.16.0, bokeh==3.1, panel==1.0
  • ucxx:
    • numpy==1.23, numba=0.57 (only inherited from RMM, maybe skip)
  • KvikIO:
    • cupy==12.0.0, numpy=1.23, zarr==? (no range specified)
  • wholegraph:
    • probably skip dependencies seem only test dependencies not runtime.
  • cuVS:
    • cupy==12.0.0, numpy==1.23

Many of these depend on rmm so could e.g. have a numba=0.57, but maybe it is sufficient to concentrate on explicitly specified dependencies only. I bracketed a few that seemed not very relevant, although it may make sense to just put them anyway.

@jameslamb
Copy link
Member

+1, I think it'll be great to have something like this. I've seen it be very effective in other projects.

And I specifically think we'll be happy to have it when pandas 3.0 comes out: pandas-dev/pandas#57064

@jakirkham
Copy link
Member

@bdice do you have thoughts on this proposal? 🙂

@bdice
Copy link
Contributor

bdice commented Aug 7, 2024

Yes, I support this. This is what @seberg and I discussed when I drafted rapidsai/shared-workflows#228.

@jakirkham
Copy link
Member

The first 2 steps are done above. Have checked those boxes

Next step is rolling this out to projects (as described by the remaining checklist items)

Though please let me know if I've missed anything

rapids-bot bot pushed a commit to rapidsai/cudf that referenced this issue Sep 4, 2024
This adds explicit tests with old versions of key dependencies. Specifically:
- `numba==0.57`
- `numpy==1.23`
- `pandas==2.0`
- ~`fsspec==0.6.0`~ excluded it. `transformers==4.39.3` requires `huggingface_hub` which requires `fsspec>=2023.5.0`.  In principle one could include it e.g. only for conda which doesn't pull in `transformers`, but that seemed not worth the trouble?
- `cupy==12.0.0`
- `pyarrow==16.1.0`

See also rapidsai/build-planning#81

(Marking as draft until I see that things work.)

Authors:
  - Sebastian Berg (https://github.com/seberg)
  - Matthew Roeschke (https://github.com/mroeschke)
  - GALI PREM SAGAR (https://github.com/galipremsagar)

Approvers:
  - Matthew Roeschke (https://github.com/mroeschke)
  - Bradley Dice (https://github.com/bdice)
  - Vyas Ramasubramani (https://github.com/vyasr)
  - Charles Blackmon-Luca (https://github.com/charlesbluca)

URL: #16570
res-life pushed a commit to res-life/cudf that referenced this issue Sep 11, 2024
This adds explicit tests with old versions of key dependencies. Specifically:
- `numba==0.57`
- `numpy==1.23`
- `pandas==2.0`
- ~`fsspec==0.6.0`~ excluded it. `transformers==4.39.3` requires `huggingface_hub` which requires `fsspec>=2023.5.0`.  In principle one could include it e.g. only for conda which doesn't pull in `transformers`, but that seemed not worth the trouble?
- `cupy==12.0.0`
- `pyarrow==16.1.0`

See also rapidsai/build-planning#81

(Marking as draft until I see that things work.)

Authors:
  - Sebastian Berg (https://github.com/seberg)
  - Matthew Roeschke (https://github.com/mroeschke)
  - GALI PREM SAGAR (https://github.com/galipremsagar)

Approvers:
  - Matthew Roeschke (https://github.com/mroeschke)
  - Bradley Dice (https://github.com/bdice)
  - Vyas Ramasubramani (https://github.com/vyasr)
  - Charles Blackmon-Luca (https://github.com/charlesbluca)

URL: rapidsai#16570
@vyasr
Copy link
Contributor

vyasr commented Oct 1, 2024

Is this something @seberg can continue working on for the rest of RAPIDS?

@seberg
Copy link
Author

seberg commented Oct 2, 2024

Sorry, was out for a while, so didn't pick it up again after the cudf start. Yes, I think I can continue working on this again very soon.

@jakirkham
Copy link
Member

Having learned from the cuDF experience, it is worth noting that we will need a collaborator from each of the libraries to help push these PRs to completion

Setting up the matrix is doable. Debugging the various RAPIDS project specific errors that come up is something best left in the hands of a project-focused developer

@vyasr
Copy link
Contributor

vyasr commented Oct 4, 2024

I agree, that sounds like the right plan. I think having a PR coming from someone build-focused can help motivate the library devs to come up with the proper dependency constraints and fix any unexpected issues, so it's good to start here then hand off.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants