Skip to content

Commit 6200e99

Browse files
authored
Add support for Python 3.13 (#5057)
Contributes to rapidsai/build-planning#120 This PR adds support for Python 3.13. ## Notes for Reviewers This is part of ongoing work to add Python 3.13 support across RAPIDS. It temporarily introduces a build/test matrix including Python 3.13, from rapidsai/shared-workflows#268. A follow-up PR will revert back to pointing at the `branch-25.06` branch of `shared-workflows` once all RAPIDS repos have added Python 3.13 support. ### This will fail until all dependencies have been updated to Python 3.13 CI here is expected to fail until all of this project's upstream dependencies support Python 3.13. This can be merged whenever all CI jobs are passing. Authors: - Gil Forsyth (https://github.com/gforsyth) Approvers: - Bradley Dice (https://github.com/bdice) URL: #5057
1 parent 5da5bbe commit 6200e99

13 files changed

+41
-37
lines changed

.github/workflows/build.yaml

+10-10
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ concurrency:
2828
jobs:
2929
cpp-build:
3030
secrets: inherit
31-
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@branch-25.06
31+
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@python-3.13
3232
with:
3333
build_type: ${{ inputs.build_type || 'branch' }}
3434
branch: ${{ inputs.branch }}
@@ -38,7 +38,7 @@ jobs:
3838
python-build:
3939
needs: [cpp-build]
4040
secrets: inherit
41-
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-25.06
41+
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@python-3.13
4242
with:
4343
build_type: ${{ inputs.build_type || 'branch' }}
4444
branch: ${{ inputs.branch }}
@@ -47,7 +47,7 @@ jobs:
4747
upload-conda:
4848
needs: [cpp-build, python-build]
4949
secrets: inherit
50-
uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@branch-25.06
50+
uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@python-3.13
5151
with:
5252
build_type: ${{ inputs.build_type || 'branch' }}
5353
branch: ${{ inputs.branch }}
@@ -57,7 +57,7 @@ jobs:
5757
if: github.ref_type == 'branch'
5858
needs: python-build
5959
secrets: inherit
60-
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.06
60+
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.13
6161
with:
6262
arch: "amd64"
6363
branch: ${{ inputs.branch }}
@@ -69,7 +69,7 @@ jobs:
6969
sha: ${{ inputs.sha }}
7070
wheel-build-libcugraph:
7171
secrets: inherit
72-
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.06
72+
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.13
7373
with:
7474
# build for every combination of arch and CUDA version, but only for the latest Python version
7575
matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber)))
@@ -84,7 +84,7 @@ jobs:
8484
wheel-publish-libcugraph:
8585
needs: wheel-build-libcugraph
8686
secrets: inherit
87-
uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@branch-25.06
87+
uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@python-3.13
8888
with:
8989
build_type: ${{ inputs.build_type || 'branch' }}
9090
branch: ${{ inputs.branch }}
@@ -95,7 +95,7 @@ jobs:
9595
wheel-build-pylibcugraph:
9696
needs: wheel-build-libcugraph
9797
secrets: inherit
98-
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.06
98+
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.13
9999
with:
100100
build_type: ${{ inputs.build_type || 'branch' }}
101101
branch: ${{ inputs.branch }}
@@ -107,7 +107,7 @@ jobs:
107107
wheel-publish-pylibcugraph:
108108
needs: wheel-build-pylibcugraph
109109
secrets: inherit
110-
uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@branch-25.06
110+
uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@python-3.13
111111
with:
112112
build_type: ${{ inputs.build_type || 'branch' }}
113113
branch: ${{ inputs.branch }}
@@ -118,7 +118,7 @@ jobs:
118118
wheel-build-cugraph:
119119
needs: wheel-build-pylibcugraph
120120
secrets: inherit
121-
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.06
121+
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.13
122122
with:
123123
build_type: ${{ inputs.build_type || 'branch' }}
124124
branch: ${{ inputs.branch }}
@@ -130,7 +130,7 @@ jobs:
130130
wheel-publish-cugraph:
131131
needs: wheel-build-cugraph
132132
secrets: inherit
133-
uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@branch-25.06
133+
uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@python-3.13
134134
with:
135135
build_type: ${{ inputs.build_type || 'branch' }}
136136
branch: ${{ inputs.branch }}

.github/workflows/pr.yaml

+15-15
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
- telemetry-setup
3232
- devcontainer
3333
secrets: inherit
34-
uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@branch-25.06
34+
uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@python-3.13
3535
if: always()
3636
with:
3737
needs: ${{ toJSON(needs) }}
@@ -59,7 +59,7 @@ jobs:
5959
changed-files:
6060
secrets: inherit
6161
needs: telemetry-setup
62-
uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@branch-25.06
62+
uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@python-3.13
6363
with:
6464
files_yaml: |
6565
test_cpp:
@@ -90,49 +90,49 @@ jobs:
9090
checks:
9191
secrets: inherit
9292
needs: telemetry-setup
93-
uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@branch-25.06
93+
uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@python-3.13
9494
with:
9595
enable_check_generated_files: false
9696
ignored_pr_jobs: telemetry-summarize
9797
conda-cpp-build:
9898
needs: checks
9999
secrets: inherit
100-
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@branch-25.06
100+
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@python-3.13
101101
with:
102102
build_type: pull-request
103103
node_type: cpu32
104104
conda-cpp-tests:
105105
needs: [conda-cpp-build, changed-files]
106106
secrets: inherit
107-
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@branch-25.06
107+
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@python-3.13
108108
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp
109109
with:
110110
build_type: pull-request
111111
conda-cpp-checks:
112112
needs: conda-cpp-build
113113
secrets: inherit
114-
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@branch-25.06
114+
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@python-3.13
115115
with:
116116
build_type: pull-request
117117
enable_check_symbols: true
118118
symbol_exclusions: (cugraph::ops|hornet|void writeEdgeCountsKernel|void markUniqueOffsetsKernel)
119119
conda-python-build:
120120
needs: conda-cpp-build
121121
secrets: inherit
122-
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-25.06
122+
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@python-3.13
123123
with:
124124
build_type: pull-request
125125
conda-python-tests:
126126
needs: [conda-python-build, changed-files]
127127
secrets: inherit
128-
uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.06
128+
uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@python-3.13
129129
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python
130130
with:
131131
build_type: pull-request
132132
conda-notebook-tests:
133133
needs: [conda-python-build, changed-files]
134134
secrets: inherit
135-
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.06
135+
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.13
136136
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_notebooks
137137
with:
138138
build_type: pull-request
@@ -143,7 +143,7 @@ jobs:
143143
docs-build:
144144
needs: conda-python-build
145145
secrets: inherit
146-
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.06
146+
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.13
147147
with:
148148
build_type: pull-request
149149
node_type: "gpu-l4-latest-1"
@@ -153,7 +153,7 @@ jobs:
153153
wheel-build-libcugraph:
154154
needs: checks
155155
secrets: inherit
156-
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.06
156+
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.13
157157
with:
158158
# build for every combination of arch and CUDA version, but only for the latest Python
159159
matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber)))
@@ -164,7 +164,7 @@ jobs:
164164
wheel-build-pylibcugraph:
165165
needs: wheel-build-libcugraph
166166
secrets: inherit
167-
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.06
167+
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.13
168168
with:
169169
build_type: pull-request
170170
script: ci/build_wheel_pylibcugraph.sh
@@ -173,15 +173,15 @@ jobs:
173173
wheel-tests-pylibcugraph:
174174
needs: [wheel-build-pylibcugraph, changed-files]
175175
secrets: inherit
176-
uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.06
176+
uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.13
177177
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python
178178
with:
179179
build_type: pull-request
180180
script: ci/test_wheel_pylibcugraph.sh
181181
wheel-build-cugraph:
182182
needs: wheel-build-pylibcugraph
183183
secrets: inherit
184-
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.06
184+
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.13
185185
with:
186186
build_type: pull-request
187187
script: ci/build_wheel_cugraph.sh
@@ -198,7 +198,7 @@ jobs:
198198
devcontainer:
199199
secrets: inherit
200200
needs: telemetry-setup
201-
uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@branch-25.06
201+
uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@python-3.13
202202
with:
203203
arch: '["amd64"]'
204204
cuda: '["12.8"]'

.github/workflows/test.yaml

+4-4
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ on:
1919
jobs:
2020
conda-cpp-checks:
2121
secrets: inherit
22-
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@branch-25.06
22+
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@python-3.13
2323
with:
2424
build_type: ${{ inputs.build_type }}
2525
branch: ${{ inputs.branch }}
@@ -29,23 +29,23 @@ jobs:
2929
symbol_exclusions: (cugraph::ops|hornet|void writeEdgeCountsKernel|void markUniqueOffsetsKernel)
3030
conda-cpp-tests:
3131
secrets: inherit
32-
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@branch-25.06
32+
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@python-3.13
3333
with:
3434
build_type: ${{ inputs.build_type }}
3535
branch: ${{ inputs.branch }}
3636
date: ${{ inputs.date }}
3737
sha: ${{ inputs.sha }}
3838
conda-python-tests:
3939
secrets: inherit
40-
uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.06
40+
uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@python-3.13
4141
with:
4242
build_type: ${{ inputs.build_type }}
4343
branch: ${{ inputs.branch }}
4444
date: ${{ inputs.date }}
4545
sha: ${{ inputs.sha }}
4646
wheel-tests-pylibcugraph:
4747
secrets: inherit
48-
uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.06
48+
uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.13
4949
with:
5050
build_type: ${{ inputs.build_type }}
5151
branch: ${{ inputs.branch }}

.github/workflows/trigger-breaking-change-alert.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
trigger-notifier:
1313
if: contains(github.event.pull_request.labels.*.name, 'breaking')
1414
secrets: inherit
15-
uses: rapidsai/shared-workflows/.github/workflows/breaking-change-alert.yaml@branch-25.06
15+
uses: rapidsai/shared-workflows/.github/workflows/breaking-change-alert.yaml@python-3.13
1616
with:
1717
sender_login: ${{ github.event.sender.login }}
1818
sender_avatar: ${{ github.event.sender.avatar_url }}

conda/environments/all_cuda-118_arch-aarch64.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ dependencies:
3535
- networkx>=2.5.1
3636
- ninja
3737
- notebook>=0.5.0
38-
- numba>=0.59.1,<0.61.0a0
38+
- numba>=0.59.1,<0.62.0a0
3939
- numpy>=1.23,<3.0a0
4040
- numpydoc
4141
- nvcc_linux-aarch64=11.8

conda/environments/all_cuda-118_arch-x86_64.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ dependencies:
3535
- networkx>=2.5.1
3636
- ninja
3737
- notebook>=0.5.0
38-
- numba>=0.59.1,<0.61.0a0
38+
- numba>=0.59.1,<0.62.0a0
3939
- numpy>=1.23,<3.0a0
4040
- numpydoc
4141
- nvcc_linux-64=11.8

conda/environments/all_cuda-128_arch-aarch64.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ dependencies:
4141
- networkx>=2.5.1
4242
- ninja
4343
- notebook>=0.5.0
44-
- numba>=0.59.1,<0.61.0a0
44+
- numba>=0.59.1,<0.62.0a0
4545
- numpy>=1.23,<3.0a0
4646
- numpydoc
4747
- ogb

conda/environments/all_cuda-128_arch-x86_64.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ dependencies:
4141
- networkx>=2.5.1
4242
- ninja
4343
- notebook>=0.5.0
44-
- numba>=0.59.1,<0.61.0a0
44+
- numba>=0.59.1,<0.62.0a0
4545
- numpy>=1.23,<3.0a0
4646
- numpydoc
4747
- ogb

dependencies.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ dependencies:
438438
- output_types: [conda, pyproject]
439439
packages:
440440
- &dask rapids-dask-dependency==25.6.*,>=0.0.0a0
441-
- &numba numba>=0.59.1,<0.61.0a0
441+
- &numba numba>=0.59.1,<0.62.0a0
442442
- &numpy numpy>=1.23,<3.0a0
443443
- output_types: conda
444444
packages:

python/cugraph-service/client/pyproject.toml

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ classifiers = [
2828
"Programming Language :: Python :: 3.10",
2929
"Programming Language :: Python :: 3.11",
3030
"Programming Language :: Python :: 3.12",
31+
"Programming Language :: Python :: 3.13",
3132
]
3233

3334
[project.urls]

python/cugraph-service/server/pyproject.toml

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ dependencies = [
2626
"cupy-cuda11x>=12.0.0",
2727
"dask-cuda==25.6.*,>=0.0.0a0",
2828
"dask-cudf==25.6.*,>=0.0.0a0",
29-
"numba>=0.59.1,<0.61.0a0",
29+
"numba>=0.59.1,<0.62.0a0",
3030
"numpy>=1.23,<3.0a0",
3131
"rapids-dask-dependency==25.6.*,>=0.0.0a0",
3232
"rmm==25.6.*,>=0.0.0a0",
@@ -39,6 +39,7 @@ classifiers = [
3939
"Programming Language :: Python :: 3.10",
4040
"Programming Language :: Python :: 3.11",
4141
"Programming Language :: Python :: 3.12",
42+
"Programming Language :: Python :: 3.13",
4243
]
4344

4445
[project.scripts]

python/cugraph/pyproject.toml

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ dependencies = [
3030
"dask-cudf==25.6.*,>=0.0.0a0",
3131
"fsspec[http]>=0.6.0",
3232
"libcugraph==25.6.*,>=0.0.0a0",
33-
"numba>=0.59.1,<0.61.0a0",
33+
"numba>=0.59.1,<0.62.0a0",
3434
"numpy>=1.23,<3.0a0",
3535
"pylibcudf==25.6.*,>=0.0.0a0",
3636
"pylibcugraph==25.6.*,>=0.0.0a0",
@@ -46,6 +46,7 @@ classifiers = [
4646
"Programming Language :: Python :: 3.10",
4747
"Programming Language :: Python :: 3.11",
4848
"Programming Language :: Python :: 3.12",
49+
"Programming Language :: Python :: 3.13",
4950
]
5051

5152
[project.optional-dependencies]

python/pylibcugraph/pyproject.toml

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ classifiers = [
3434
"Programming Language :: Python :: 3.10",
3535
"Programming Language :: Python :: 3.11",
3636
"Programming Language :: Python :: 3.12",
37+
"Programming Language :: Python :: 3.13",
3738
]
3839

3940
[project.optional-dependencies]

0 commit comments

Comments
 (0)