-
Notifications
You must be signed in to change notification settings - Fork 4
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
Drop support for Python 3.9 #88
Comments
Some quick data points:
|
I'm +1 on doing this in this timeframe. DLFW builds are using Python 3.10 (DLFW support matrix), as that's the stable python3 that ships with Ubuntu 22.04 (Python version across Linux distros), so this change shouldn't be disruptive for those builds. And |
Just curious to know what the ETA is for dropping Python 3.9? I believe we will need to remain pinned to dask 2024.7.1 until then. In the meantime, we cannot catch breaking changes in dask/distributed. |
The plan is to do this "within 24.10", but we can't be more precise than that.
For Python 3.9, yes, but I think Like this: # TODO: drop the python_version specifiers and just use latest versions built from GitHub once
# RAPIDS drops Python 3.9 support
dependencies = [
"dask @ git+https://github.com/dask/dask.git@main ; python_version >= '3.10'",
"distributed @ git+https://github.com/dask/distributed.git@main ; python_version >= '3.10'",
"dask-expr @ git+https://github.com/dask/dask-expr.git@main ; python_version >= '3.10'",
"dask==2024.7.1 ; python_version < '3.10'",
"distributed==2024.7.1 ; python_version < '3.10'",
"dask-expr ; python_version < '3.10'",
] That'd allow projects to start testing against the latest development version of Dask throughout the 24.10 release cycle. |
Okay, thanks for the response @jameslamb! This may be our best option -- I'll look into it. |
For |
Dropping 3.9 builds should now be safe, and would also unblock the work of updating our dask pinning. This PR does that: rapidsai/shared-workflows#235 This change in |
This PR removes hardcoded Python versions from CI workflows. It is a prerequisite for dropping Python 3.9. See rapidsai/build-planning#88. Authors: - Bradley Dice (https://github.com/bdice) Approvers: - James Lamb (https://github.com/jameslamb) URL: #16540
Unpins dask and distributed for 24.10 development. ~**Blocked by rapidsai/build-planning#88 (Dask no longer supports Python 3.9. Therefore, unpinning too early is a "breaking" change).~ Other Blockers: - [x] rapidsai/cudf#16535 - [x] dask/dask-expr#1122 Authors: - Richard (Rick) Zamora (https://github.com/rjzamora) Approvers: - GALI PREM SAGAR (https://github.com/galipremsagar) URL: #58
Closing the loop on Dask, we dropped Python 3.9 from CI, so no special casing was needed (or used) there Just a normal unpinning of Dask as part of RAPIDS post-release cleanup |
Contributes to rapidsai/build-planning#88 Finishes the work of dropping Python 3.9 support. This project stopped building / testing against Python 3.9 as of rapidsai/shared-workflows#235. This PR updates configuration and docs to reflect that. ## Notes for Reviewers ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). Authors: - James Lamb (https://github.com/jameslamb) Approvers: - https://github.com/jakirkham - Bradley Dice (https://github.com/bdice) URL: #272
Contributes to rapidsai/build-planning#88 Finishes the work of dropping Python 3.9 support. This project stopped building / testing against Python 3.9 as of rapidsai/shared-workflows#235. This PR updates configuration and docs to reflect that. ## Notes for Reviewers ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). Authors: - James Lamb (https://github.com/jameslamb) Approvers: - https://github.com/jakirkham URL: #1659
Contributes to rapidsai/build-planning#88 Finishes the work of dropping Python 3.9 support. This project stopped building / testing against Python 3.9 as of rapidsai/shared-workflows#235. This PR updates configuration and docs to reflect that. ## Notes for Reviewers ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). Authors: - James Lamb (https://github.com/jameslamb) Approvers: - Bradley Dice (https://github.com/bdice) URL: #684
Contributes to rapidsai/build-planning#88 Finishes the work of dropping Python 3.9 support. This project stopped building / testing against Python 3.9 as of rapidsai/shared-workflows#235. This PR updates configuration and docs to reflect that. ## Notes for Reviewers ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). Authors: - James Lamb (https://github.com/jameslamb) Approvers: - Bradley Dice (https://github.com/bdice) URL: #623
Contributes to rapidsai/build-planning#88 Finishes the work of dropping Python 3.9 support. This project stopped building / testing against Python 3.9 as of rapidsai/shared-workflows#235. This PR updates configuration and docs to reflect that. ## Notes for Reviewers ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). Authors: - James Lamb (https://github.com/jameslamb) Approvers: - https://github.com/jakirkham URL: #1377
Contributes to rapidsai/build-planning#88 Finishes the work of dropping Python 3.9 support. This project stopped building / testing against Python 3.9 as of rapidsai/shared-workflows#235. This PR updates configuration and docs to reflect that. ## Notes for Reviewers ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). Authors: - James Lamb (https://github.com/jameslamb) Approvers: - https://github.com/jakirkham URL: #443
Contributes to rapidsai/build-planning#88 Finishes the work of dropping Python 3.9 support. This project stopped building / testing against Python 3.9 as of rapidsai/shared-workflows#235. This PR updates configuration and docs to reflect that. ## Notes for Reviewers ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). Authors: - James Lamb (https://github.com/jameslamb) Approvers: - https://github.com/jakirkham URL: #1065
Contributes to rapidsai/build-planning#88 Finishes the work of dropping Python 3.9 support. This project stopped building / testing against Python 3.9 as of rapidsai/shared-workflows#235. This PR updates configuration and docs to reflect that. ## Notes for Reviewers ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). Authors: - James Lamb (https://github.com/jameslamb) Approvers: - https://github.com/jakirkham URL: #301
Contributes to rapidsai/build-planning#88 Finishes the work of dropping Python 3.9 support. This project stopped building / testing against Python 3.9 as of rapidsai/shared-workflows#235. This PR updates configuration and docs to reflect that. ## Notes for Reviewers ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). Authors: - James Lamb (https://github.com/jameslamb) Approvers: - Mark Harris (https://github.com/harrism) - https://github.com/jakirkham URL: #1443
Thanks James! 🙏 Have shepherded a good chunk of these through Of the remainder:
Please let me know if there are others you need help following up on |
Contributes to rapidsai/build-planning#88 Finishes the work of dropping Python 3.9 support. This project stopped building / testing against Python 3.9 as of rapidsai/shared-workflows#235. This PR updates configuration and docs to reflect that. ## Notes for Reviewers ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). Authors: - James Lamb (https://github.com/jameslamb) Approvers: - https://github.com/jakirkham URL: #2417
Contributes to rapidsai/build-planning#88 Finishes the work of dropping Python 3.9 support. This project stopped building / testing against Python 3.9 as of rapidsai/shared-workflows#235. This PR updates configuration and docs to reflect that. ## Notes for Reviewers ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). Authors: - James Lamb (https://github.com/jameslamb) Approvers: - Bradley Dice (https://github.com/bdice) URL: #6040
Thanks John!
Yep, my approach has been to open these PRs in draft first, to not bother people with notifications for review until I see CI (or at least, most CI) passing. Happy to see all of those that were still in draft as of yesterday are looking ok, so I've opened them all up for review. |
Contributes to rapidsai/build-planning#88 Finishes the work of dropping Python 3.9 support. This project stopped building / testing against Python 3.9 as of rapidsai/shared-workflows#235. This PR updates configuration and docs to reflect that. ## Notes for Reviewers ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). Authors: - James Lamb (https://github.com/jameslamb) Approvers: - Bradley Dice (https://github.com/bdice) URL: #209
Contributes to rapidsai/build-planning#88. Drops Python 3.9 support. ## Notes for Reviewers ### Is this safe for `nvmath-python`? I think yes. In an offline conversation, I was told that `nvmath-python` follows NEP 29 (https://numpy.org/neps/nep-0029-deprecation_policy.html) and so would want to drop Python 3.9 in its next release anyway. That's documented in its docs as well: https://github.com/NVIDIA/nvmath-python/blob/7c485842d0f3300e03ec780056936503913910fe/docs/sphinx/overview.rst?plain=1#L274 cc @leofang ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). ### What are these other changes? `ruff` raised two new errors here: ```text .ycm_extra_conf.py:24:5: N802 Function name `Settings` should be lowercase pynvjitlink/patch.py:226:20: UP031 Use format specifiers instead of percent format Found 2 errors. No fixes available (1 hidden fix can be enabled with the `--unsafe-fixes` option). ``` Left `Settings` untouched... looks like `ycm` expects that to be exactly `Settings` ([ycm-core docs](https://github.com/ycm-core/YouCompleteMe/blob/0d855962a60bd993980d287a3ac97f57ecd02ea6/README.md?plain=1#L1431)). The `verify-copyright` hook also complained about one file missing a copyright header ```text In file .ycm_extra_conf.py:1:1: import os warning: no copyright notice found ``` So I added one. Authors: - James Lamb (https://github.com/jameslamb) Approvers: - Bradley Dice (https://github.com/bdice) - Leo Fang (https://github.com/leofang) - https://github.com/jakirkham URL: #102
Contributes to rapidsai/build-planning#88 Finishes the work of dropping Python 3.9 support. This project stopped building / testing against Python 3.9 as of rapidsai/shared-workflows#235. This PR updates configuration and docs to reflect that. ## Notes for Reviewers ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). Authors: - James Lamb (https://github.com/jameslamb) Approvers: - Kyle Edwards (https://github.com/KyleFromNVIDIA) - Bradley Dice (https://github.com/bdice) - Brad Rees (https://github.com/BradReesWork) URL: #4625
Also proposes requiring Python 3.10, since rapidsai/build-planning#88 is being rolled out. Fixes #48
Contributes to rapidsai/build-planning#88 Finishes the work of dropping Python 3.9 support. This project stopped building / testing against Python 3.9 as of rapidsai/shared-workflows#235. This PR updates configuration and docs to reflect that. ## Notes for Reviewers ### How I tested this Checked that there were no remaining uses like this: ```shell git grep -E '3\.9' git grep '39' git grep 'py39' ``` And similar for variations on Python 3.8 (to catch things that were missed the last time this was done). Authors: - James Lamb (https://github.com/jameslamb) Approvers: - Bradley Dice (https://github.com/bdice) - Lawrence Mitchell (https://github.com/wence-) URL: #16637
Discussed in today's build infra sync, this is almost done. Once complete, the team will start working on Add support for Python 3.12 #40 |
Did some more GitHub searches, found a few more things that were missed.
All that's left here is those PRs and This is close enough to done that we can move forward with Python 3.12 (#40) |
Contributes to rapidsai/build-planning#88. #4625 dropped Python 3.9 support here (as part of the RAPIDS-wide effort to drop Python 3.9 in this release). This PR fixes a few things that were missed in that PR. Authors: - James Lamb (https://github.com/jameslamb) - https://github.com/jakirkham Approvers: - Don Acosta (https://github.com/acostadon) - https://github.com/jakirkham - Bradley Dice (https://github.com/bdice) - Mike Sarahan (https://github.com/msarahan) - Alex Barghi (https://github.com/alexbarghi-nv) - Rick Ratzel (https://github.com/rlratzel) URL: #4637
Did another set of GitHub searches, and I think this work is now complete! Thanks for the help everyone 😁 |
Thanks James! 🙏 |
This issue tracks dropping Python 3.9, following from the discussion on #40:
We are beyond the SPEC 0 date for dropping Python 3.9 now, and expect that RAPIDS dependencies will gradually drop support. We are exploring dropping Python 3.9 in RAPIDS 24.10.
Tasks:
dependencies.yaml
to removepy: 3.9
sections like thisdependencies.yaml
to raise the fallback matrix's Python lower boundfind_package(Python 3.9 ...)
pyproject.toml
:requires-python
and specifiers3.9
to make sure nothing was missed!Things to be careful about:
pynvjitlink
is used by more than just RAPIDS (like https://github.com/NVIDIA/nvmath-python), and uses its own CI matrix to support a broader range of versions than RAPIDS (link)... we may sometimes drop a Python version across RAPIDS but still support it inpynvjitlink
rapids-reviser
,rapids-build-backend
,rapids-metadata
, etc. shouldn't have their floors bumped unless there's a compelling reason to do so... that'd make it harder to fix bugs in those tools that affect older releasesbefore making changes in individual repos
Updates for libraries
after all libraries are updated
The text was updated successfully, but these errors were encountered: