-
Notifications
You must be signed in to change notification settings - Fork 1
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.12 #40
Comments
Strategically, it may make sense to wait until we publish RAPIDS C++ wheels (#33). That will reduce the build time impact of adding another Python version -- and we already plan to keep the total amount of testing constant. I think it may be reasonable to target early RAPIDS 24.08 for adding Python 3.12 support. |
I think that's a good idea, may as well minimize the impact. Although I should note that we were limiting our Python versions to the same degree even pre-wheels (i.e. when we only had conda builds, so half as many total artifacts to output) so I doubt that the C++ wheels effort materially changes the calculus on how many Python versions we will support at a time. |
Here is a proposal for the CI matrix I would recommend for Python 3.12: rapidsai/shared-workflows#213 |
Overview
Python 3.12 was released in October 2023. This issue tracks the work to add support for Python 3.12 to RAPIDS.
In #3, RAPIDS added support for Python 3.11, which was released in RAPIDS 24.04. The work to add Python 3.11 was heavily automated, and that could be done again for Python 3.12 to reduce the load on RAPIDS maintainers.
When should we drop Python 3.9?
Typically RAPIDS has kept the matrix of supported Python minor versions to 2 or 3 versions at a time. When adding Python 3.12, we should probably drop Python 3.9 as well.
SPEC 0 recommended dropping support for Python 3.9 in 2023Q4. Meanwhile, NEP 29 recommended dropping support for Python 3.9 as of Apr 05, 2024. Both of these deadlines have passed and several large Python libraries are now moving towards dropping Python 3.9, so it is probably reasonable to drop Python 3.9 around the same time that we add Python 3.12.
Tasks
Each section should be fully completed before moving to the next section.
CI images
ci-conda
,ci-wheel
,citestwheel
) Add Python 3.12 ci-imgs#137CI workflows
Branch Strategy:
shared-workflows
calledpython-3.12
python-3.12
branchpython-3.12
branchThe above tasks are handled by: rapidsai/shared-workflows#213
RAPIDS repositories
First, create a checklist for tracking repository migration like the one we used for Python 3.11: #3 (comment)
For each repo,
.github/workflows/*.yaml
to point to thepython-3.12
branch ofshared-workflows
dependencies.yaml
to add support for Python 3.12.pyproject.toml
files for necessary changes (classifiers, etc.)Most of this is easy to automate with rapids-reviser, and we can copy from this previous migrator for Python 3.11: https://github.com/rapidsai/rapids-reviser/pull/11. We still need to manually review the PRs for missing pieces.
Once all repos are migrated to the
python-3.12
branch, the migration is complete. We mergepython-3.12
into the development branch onshared-workflows
and then open follow-up PRs to each repo to reset the branches to that development branch. This "reset" is simple and should be automated with rapids-reviser.Post-migration
ci-imgs
repo'slatest
configuration to use Python 3.12. https://github.com/rapidsai/ci-imgs/blob/main/latest.yamllatest
image is frequently used by CI jobs for building docs and testing notebooks. Be aware that issues may arise in those jobs.docker
repo's matrix.yaml and matrix-test.yamlpypi-wheel-scripts
so that Python 3.12 wheels are checked: https://github.com/rapidsai/pypi-wheel-scripts/blob/fa1e8744c8ec961a5b5e38ae172ae9c8c51b4280/release/check-wheels.sh#L41-L45The text was updated successfully, but these errors were encountered: