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

Add support for Python 3.11 #3

Closed
8 tasks done
bdice opened this issue Dec 13, 2023 · 13 comments
Closed
8 tasks done

Add support for Python 3.11 #3

bdice opened this issue Dec 13, 2023 · 13 comments
Assignees
Labels

Comments

@bdice
Copy link
Contributor

bdice commented Dec 13, 2023

RAPIDS currently supports Python 3.9 and 3.10. We would like to add support for Python 3.11. This issue documents the steps needed.

Each section should be fully completed before moving to the next section.

CI images

CI workflows

Branch Strategy:

Experimental Strategy:

  • @ajschmidt8 proposed that we could use GitHub Actions' continue-on-error to add Python 3.11 jobs that are allowed to fail, for all repos. Once all repos are passing, we could require the job to pass. This could be cleaner and less total work than our normal approach of the branch strategy above.

RAPIDS repositories

I copied a list of repositories from https://github.com/rapidsai/workflows/blob/dfd73ad47d977c57ee27b2349216f85946be757b/.github/workflows/nightly-pipeline.yaml#L27-L44 and sorted it roughly in dependency-tree order.

For each repo,

  1. Update .github/workflows/*.yaml to point to the python-3.11 branch of shared-workflows
  2. Update dependencies.yaml to add support for Python 3.11.
  3. Review any pyproject.toml files for necessary changes (classifiers, etc.)
  4. Update docs (README, etc) that reference a single Python version to point to the latest (3.11).
  5. Once CI passes, merge the PR.

Most of this is easy to automate with rapids-reviser, and I've made an attempt at it here: https://github.com/rapidsai/rapids-reviser/pull/11. We still need to manually review the PRs for missing pieces.

Repos:

(checklist moved to #3 (comment))

Once all repos are migrated to the python-3.11 branch, the migration is complete. We merge python-3.11 into branch-24.02 on shared-workflows and then open follow-up PRs to each repo to reset the branches to branch-24.02. This "reset" is simple and should be automated with rapids-reviser.

Post-migration

@jameslamb
Copy link
Member

jameslamb commented Feb 26, 2024

Next, let's merge the shared-workflow changes which introduce Python 3.11 jobs immediately, across all of RAPIDS, but using GitHub Actions' continue-on-error mechanism so they don't block merging PRs.

I've proposed some changes to https://github.com/rapidsai/rapids-reviser/pull/11, would be nice to get that merged so we're working off one branch with the rapids-reviser changes:

Then let's get these jobs working, in RAPIDS dependency order. (will update this comment as more PRs are created).

rapids-bot bot pushed a commit to rapidsai/rapids-cmake that referenced this issue Feb 27, 2024
Contributes to rapidsai/build-planning#3

This PR adds support for Python 3.11.

## Notes for Reviewers

This is part of ongoing work to add Python 3.11 support across RAPIDS.

The Python 3.11 CI workflows introduced in rapidsai/shared-workflows#176 are *optional*... they are not yet required to run successfully for PRs to be merged.

This PR can be merged once all jobs are running successfully (including the non-required jobs for Python 3.11). The CI logs should be verified that the jobs are building and testing with Python 3.11.

See rapidsai/shared-workflows#176 for more details.

Authors:
  - James Lamb (https://github.com/jameslamb)

Approvers:
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)

URL: #547
rapids-bot bot pushed a commit to rapidsai/rmm that referenced this issue Feb 27, 2024
Contributes to rapidsai/build-planning#3

This PR adds support for Python 3.11.

## Notes for Reviewers

This is part of ongoing work to add Python 3.11 support across RAPIDS.

The Python 3.11 CI workflows introduced in rapidsai/shared-workflows#176 are *optional*... they are not yet required to run successfully for PRs to be merged.

This PR can be merged once all jobs are running successfully (including the non-required jobs for Python 3.11). The CI logs should be verified that the jobs are building and testing with Python 3.11.

See rapidsai/shared-workflows#176 for more details.

Authors:
  - James Lamb (https://github.com/jameslamb)
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - Bradley Dice (https://github.com/bdice)
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)
  - Jake Awe (https://github.com/AyodeAwe)

URL: #1469
@KyleFromNVIDIA
Copy link
Contributor

Updated project order to reflect the fact that dask-cuda has a dependency on cudf.

@jameslamb
Copy link
Member

Added an item to the description about updating this set of checks in pypi-wheel-scripts: https://github.com/rapidsai/pypi-wheel-scripts/blob/fa1e8744c8ec961a5b5e38ae172ae9c8c51b4280/release/check-wheels.sh#L41-L45

@bdice
Copy link
Contributor Author

bdice commented Feb 27, 2024

Updated project order to reflect the fact that dask-cuda has a dependency on cudf.

Unfortunately there's a circular dependency between these repos in their test dependencies. We typically have to admin-merge the dask-cuda PR whenever new packages are created.

dask-cuda requires dask-cudf: https://github.com/rapidsai/dask-cuda/blob/5a0a536c80594873a2907dca69a4ae58b5623d7d/dependencies.yaml#L161-L162

dask-cudf requires dask-cuda: https://github.com/rapidsai/cudf/blob/ef20ef9af942d840effd8ac16f8b302a8e4b1dd4/dependencies.yaml#L646-L650

rapids-bot bot pushed a commit to rapidsai/dask-cuda that referenced this issue Feb 27, 2024
Contributes to rapidsai/build-planning#3

This PR adds support for Python 3.11.

## Notes for Reviewers

This is part of ongoing work to add Python 3.11 support across RAPIDS.

The Python 3.11 CI workflows introduced in rapidsai/shared-workflows#176 are *optional*... they are not yet required to run successfully for PRs to be merged.

This PR can be merged once all jobs are running successfully (including the non-required jobs for Python 3.11). The CI logs should be verified that the jobs are building and testing with Python 3.11.

See rapidsai/shared-workflows#176 for more details.

Authors:
  - James Lamb (https://github.com/jameslamb)

Approvers:
  - Bradley Dice (https://github.com/bdice)
  - Jake Awe (https://github.com/AyodeAwe)

URL: #1315
rapids-bot bot pushed a commit to rapidsai/wholegraph that referenced this issue Feb 29, 2024
Contributes to rapidsai/build-planning#3

This PR adds support for Python 3.11.

It also bumps uses of `NumPy` to `numpy>=1.23`, see rapidsai/build-planning#3 (comment).

## Notes for Reviewers

This is part of ongoing work to add Python 3.11 support across RAPIDS.

The Python 3.11 CI workflows introduced in rapidsai/shared-workflows#176 are *optional*... they are not yet required to run successfully for PRs to be merged.

This PR can be merged once all jobs are running successfully (including the non-required jobs for Python 3.11). The CI logs should be verified that the jobs are building and testing with Python 3.11.

See rapidsai/shared-workflows#176 for more details.

Authors:
  - James Lamb (https://github.com/jameslamb)

Approvers:
  - Jake Awe (https://github.com/AyodeAwe)
  - Bradley Dice (https://github.com/bdice)

URL: #139
rapids-bot bot pushed a commit to rapidsai/raft that referenced this issue Feb 29, 2024
Contributes to rapidsai/build-planning#3

This PR adds support for Python 3.11.

It also bumps uses of `NumPy` to `numpy>=1.23`, see rapidsai/build-planning#3 (comment).

## Notes for Reviewers

This is part of ongoing work to add Python 3.11 support across RAPIDS.

The Python 3.11 CI workflows introduced in rapidsai/shared-workflows#176 are *optional*... they are not yet required to run successfully for PRs to be merged.

This PR can be merged once all jobs are running successfully (including the non-required jobs for Python 3.11). The CI logs should be verified that the jobs are building and testing with Python 3.11.

See rapidsai/shared-workflows#176 for more details.

Authors:
  - James Lamb (https://github.com/jameslamb)

Approvers:
  - Jake Awe (https://github.com/AyodeAwe)
  - https://github.com/jakirkham
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)
  - Bradley Dice (https://github.com/bdice)
  - Corey J. Nolet (https://github.com/cjnolet)

URL: #2200
rapids-bot bot pushed a commit to rapidsai/cugraph that referenced this issue Feb 29, 2024
Contributes to rapidsai/build-planning#3

This PR adds support for Python 3.11.

It also bumps uses of `NumPy` to `numpy>=1.23`, see rapidsai/build-planning#3 (comment).

## Notes for Reviewers

This is part of ongoing work to add Python 3.11 support across RAPIDS.

The Python 3.11 CI workflows introduced in rapidsai/shared-workflows#176 are *optional*... they are not yet required to run successfully for PRs to be merged.

This PR can be merged once all jobs are running successfully (including the non-required jobs for Python 3.11). The CI logs should be verified that the jobs are building and testing with Python 3.11.

See rapidsai/shared-workflows#176 for more details.

Authors:
  - James Lamb (https://github.com/jameslamb)

Approvers:
  - Jake Awe (https://github.com/AyodeAwe)
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)
  - Rick Ratzel (https://github.com/rlratzel)

URL: #4195
rapids-bot bot pushed a commit to rapidsai/cudf that referenced this issue Feb 29, 2024
Contributes to rapidsai/build-planning#3

This PR adds support for Python 3.11.

It also bumps uses of `NumPy` to `numpy>=1.23`, see rapidsai/build-planning#3 (comment).

## Notes for Reviewers

This is part of ongoing work to add Python 3.11 support across RAPIDS.

The Python 3.11 CI workflows introduced in rapidsai/shared-workflows#176 are *optional*... they are not yet required to run successfully for PRs to be merged.

This PR can be merged once all jobs are running successfully (including the non-required jobs for Python 3.11). The CI logs should be verified that the jobs are building and testing with Python 3.11.

See rapidsai/shared-workflows#176 for more details.

*(created with [rapids-reviser](https://github.com/rapidsai/rapids-reviser))*

Authors:
  - James Lamb (https://github.com/jameslamb)
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)
  - https://github.com/jakirkham
  - Bradley Dice (https://github.com/bdice)
  - GALI PREM SAGAR (https://github.com/galipremsagar)

Approvers:
  - Bradley Dice (https://github.com/bdice)
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)
  - Jake Awe (https://github.com/AyodeAwe)
  - GALI PREM SAGAR (https://github.com/galipremsagar)

URL: #15111
rapids-bot bot pushed a commit to rapidsai/cuspatial that referenced this issue Mar 1, 2024
This marks a memory test as `xfail`, which was failing on Python 3.11.

xref: #1352
xref: rapidsai/build-planning#3

Authors:
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)

Approvers:
  - Bradley Dice (https://github.com/bdice)
  - https://github.com/jakirkham
  - Vyas Ramasubramani (https://github.com/vyasr)

URL: #1351
@bdice
Copy link
Contributor Author

bdice commented Mar 1, 2024

We are currently working on adding cubinlinker and ptxcompiler builds for Python 3.11. These are manual processes, so they are hard to track with PRs.

cc: @KyleFromNVIDIA @vyasr @gmarkall

  • cubinlinker wheels for Python 3.11 on nightly PyPI repo
  • cubinlinker wheels for Python 3.11 on NVIDIA PyPI repo
  • ptxcompiler wheels for Python 3.11 on nightly PyPI repo
  • ptxcompiler wheels for Python 3.11 on NVIDIA PyPI repo
  • cubinlinker conda packages for Python 3.11 on rapidsai / rapidsai-nightly channels
  • (ptxcompiler conda packages are handled by https://github.com/conda-forge/ptxcompiler-feedstock/ and already exist)

@vyasr
Copy link
Contributor

vyasr commented Mar 1, 2024

Wheels for cubinlinker and ptxcompiler are now available on our Anaconda PyPI repo (see e.g. https://anaconda.org/rapidsai-wheels-nightly/ptxcompiler-cu11/files).

@jakirkham
Copy link
Member

cubinlinker conda packages for Python 3.11 on rapidsai / rapidsai-nightly channels

Looking at the cubinlinker packages on the channels:

It looks like Python 3.11 packages are already available

@bdice
Copy link
Contributor Author

bdice commented Mar 4, 2024

There was an additional step needed to copy cubinlinker 0.3.0 build 1 from rapidsai-nightly to rapidsai. It has now been completed. https://anaconda.org/rapidsai/cubinlinker/files?version=0.3.0

The last items are getting cubinlinker/ptxcompiler wheels copied from the nightly PyPI to the NVIDIA PyPI repo.

@jakirkham
Copy link
Member

For clarity that was done for Python 3.12 to future proof that upgrade

rapids-bot bot pushed a commit to rapidsai/docker that referenced this issue Mar 5, 2024
Adds support for Python 3.11.

xref: rapidsai/build-planning#3

Authors:
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - Ray Douglass (https://github.com/raydouglass)

URL: #635
@jakirkham
Copy link
Member

Closing as completed

@bdice
Copy link
Contributor Author

bdice commented Mar 7, 2024

We missed a step. I added Python 3.11 to the nightly release selector here: rapidsai/docs#496

@jakirkham
Copy link
Member

Good catch. Thanks Bradley! 🙏

younseojava pushed a commit to ROCm/dask-cuda-rocm that referenced this issue Apr 16, 2024
Contributes to rapidsai/build-planning#3

This PR adds support for Python 3.11.

## Notes for Reviewers

This is part of ongoing work to add Python 3.11 support across RAPIDS.

The Python 3.11 CI workflows introduced in rapidsai/shared-workflows#176 are *optional*... they are not yet required to run successfully for PRs to be merged.

This PR can be merged once all jobs are running successfully (including the non-required jobs for Python 3.11). The CI logs should be verified that the jobs are building and testing with Python 3.11.

See rapidsai/shared-workflows#176 for more details.

Authors:
  - James Lamb (https://github.com/jameslamb)

Approvers:
  - Bradley Dice (https://github.com/bdice)
  - Jake Awe (https://github.com/AyodeAwe)

URL: rapidsai#1315
younseojava pushed a commit to ROCm/dask-cuda-rocm that referenced this issue Apr 16, 2024
As NumPy 1.23 is needed for Python 3.11 support, go ahead and bump the minimum NumPy version used by Dask-CUDA to match that.

xref: rapidsai#1315
xref: rapidsai/build-planning#3

Authors:
  - https://github.com/jakirkham
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - Mads R. B. Kristensen (https://github.com/madsbk)
  - Peter Andreas Entschev (https://github.com/pentschev)
  - Jake Awe (https://github.com/AyodeAwe)

URL: rapidsai#1316
@bdice bdice mentioned this issue Apr 18, 2024
5 tasks
@jakirkham jakirkham added the epic label May 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants