diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e7f586b536e..b14fc74ecc6 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -47,7 +47,7 @@ jobs: cpp-build: needs: [telemetry-setup] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@python-3.14 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -58,7 +58,7 @@ jobs: python-build: needs: [telemetry-setup, cpp-build] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@python-3.14 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -70,7 +70,7 @@ jobs: python-build-noarch: needs: [telemetry-setup, cpp-build, python-build] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@python-3.14 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -81,7 +81,7 @@ jobs: upload-conda: needs: [cpp-build, python-build, python-build-noarch] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@python-3.14 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -91,7 +91,7 @@ jobs: if: github.ref_type == 'branch' needs: [python-build, python-build-noarch] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 with: arch: "amd64" branch: ${{ inputs.branch }} @@ -104,7 +104,7 @@ jobs: wheel-build-libcudf: needs: [telemetry-setup] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 with: # build for every combination of arch and CUDA version, but only for the latest Python matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber))) @@ -119,7 +119,7 @@ jobs: wheel-publish-libcudf: needs: wheel-build-libcudf secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@python-3.14 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -130,7 +130,7 @@ jobs: wheel-build-pylibcudf: needs: [telemetry-setup, wheel-build-libcudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -145,7 +145,7 @@ jobs: wheel-publish-pylibcudf: needs: wheel-build-pylibcudf secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@python-3.14 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -157,7 +157,7 @@ jobs: wheel-build-cudf: needs: [telemetry-setup, wheel-build-pylibcudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -172,7 +172,7 @@ jobs: wheel-publish-cudf: needs: wheel-build-cudf secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@python-3.14 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -184,7 +184,7 @@ jobs: wheel-build-dask-cudf: needs: [telemetry-setup, wheel-build-cudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) @@ -200,7 +200,7 @@ jobs: wheel-publish-dask-cudf: needs: wheel-build-dask-cudf secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@python-3.14 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -211,7 +211,7 @@ jobs: wheel-build-cudf-polars: needs: [telemetry-setup, wheel-build-pylibcudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) @@ -227,7 +227,7 @@ jobs: wheel-publish-cudf-polars: needs: wheel-build-cudf-polars secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@python-3.14 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} diff --git a/.github/workflows/pandas-tests.yaml b/.github/workflows/pandas-tests.yaml index e66c231aa43..89abc022dbb 100644 --- a/.github/workflows/pandas-tests.yaml +++ b/.github/workflows/pandas-tests.yaml @@ -22,7 +22,7 @@ jobs: pandas-tests: # run the Pandas unit tests secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 with: build_type: nightly branch: ${{ inputs.branch }} diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 0f2d3674b35..7777bf2ab91 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -43,7 +43,7 @@ jobs: - telemetry-setup - third-party-integration-tests-cudf-pandas secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@python-3.14 if: always() with: needs: ${{ toJSON(needs) }} @@ -77,7 +77,7 @@ jobs: changed-files: secrets: inherit needs: telemetry-setup - uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@python-3.14 with: files_yaml: | build_docs: @@ -293,25 +293,25 @@ jobs: - '!img/**' - '!java/**' - '!notebooks/**' - cpp_only: - - 'cpp/**' - cudf_only: - - 'python/cudf/**' - cudf_polars_only: - - 'python/cudf_polars/**' - dask_cudf_only: - - 'python/dask_cudf/**' + # cpp_only: + # - 'cpp/**' + # cudf_only: + # - 'python/cudf/**' + # cudf_polars_only: + # - 'python/cudf_polars/**' + # dask_cudf_only: + # - 'python/dask_cudf/**' checks: secrets: inherit needs: telemetry-setup - uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@python-3.14 with: enable_check_generated_files: false ignored_pr_jobs: "telemetry-summarize spark-rapids-jni wheel-tests-cudf-polars-with-rapidsmpf" conda-cpp-build: needs: checks secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@python-3.14 with: build_type: pull-request node_type: cpu16 @@ -319,20 +319,20 @@ jobs: cpp-linters: secrets: inherit needs: checks - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 with: build_type: pull-request script: "ci/cpp_linters.sh" conda-cpp-checks: needs: conda-cpp-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@python-3.14 with: build_type: pull-request conda-cpp-tests: needs: [conda-cpp-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@python-3.14 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp with: build_type: pull-request @@ -340,7 +340,7 @@ jobs: conda-python-build: needs: conda-cpp-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@python-3.14 with: build_type: pull-request script: ci/build_python.sh @@ -349,7 +349,7 @@ jobs: conda-python-build-noarch: needs: [conda-cpp-build, conda-python-build] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@python-3.14 with: build_type: pull-request script: ci/build_python_noarch.sh @@ -357,8 +357,8 @@ jobs: conda-python-cudf-tests: needs: [conda-python-build, conda-python-build-noarch, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@main - if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda && !fromJSON(needs.changed-files.outputs.changed_file_groups).cudf_polars_only && !fromJSON(needs.changed-files.outputs.changed_file_groups).dask_cudf_only + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@python-3.14 + if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda with: build_type: pull-request script: "ci/test_python_cudf.sh" @@ -368,7 +368,7 @@ jobs: # Tests for dask_cudf, custreamz, cudf_kafka are separated for CI parallelism needs: [conda-python-build-noarch, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@python-3.14 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda with: build_type: pull-request @@ -376,7 +376,7 @@ jobs: conda-java-tests: needs: [conda-cpp-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_java with: build_type: pull-request @@ -387,7 +387,7 @@ jobs: conda-notebook-tests: needs: [conda-python-build, conda-python-build-noarch, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_notebooks with: build_type: pull-request @@ -398,7 +398,7 @@ jobs: docs-build: needs: [conda-python-build, conda-python-build-noarch, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 if: fromJSON(needs.changed-files.outputs.changed_file_groups).build_docs with: build_type: pull-request @@ -409,7 +409,7 @@ jobs: wheel-build-libcudf: needs: checks secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 with: # build for every combination of arch and CUDA version, but only for the latest Python matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber))) @@ -421,7 +421,7 @@ jobs: wheel-build-pylibcudf: needs: [checks, wheel-build-libcudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 with: build_type: pull-request node_type: cpu8 @@ -433,7 +433,7 @@ jobs: wheel-build-cudf: needs: wheel-build-pylibcudf secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 with: build_type: pull-request node_type: cpu8 @@ -445,8 +445,8 @@ jobs: wheel-tests-cudf: needs: [wheel-build-cudf, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main - if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels && !fromJSON(needs.changed-files.outputs.changed_file_groups).cudf_polars_only && !fromJSON(needs.changed-files.outputs.changed_file_groups).dask_cudf_only + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.14 + if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels with: build_type: pull-request script: ci/test_wheel_cudf.sh @@ -455,7 +455,7 @@ jobs: wheel-build-cudf-polars: needs: wheel-build-pylibcudf secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) @@ -468,8 +468,8 @@ jobs: wheel-tests-cudf-polars: needs: [wheel-build-cudf-polars, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main - if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels && !fromJSON(needs.changed-files.outputs.changed_file_groups).cudf_only && !fromJSON(needs.changed-files.outputs.changed_file_groups).dask_cudf_only + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.14 + if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) @@ -478,8 +478,8 @@ jobs: wheel-tests-cudf-polars-with-rapidsmpf: needs: [wheel-build-cudf-polars, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main - if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels && !fromJSON(needs.changed-files.outputs.changed_file_groups).cudf_only && !fromJSON(needs.changed-files.outputs.changed_file_groups).dask_cudf_only + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.14 + if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels with: # This selects "ARCH=amd64 + the latest supported Python + CUDA" to minimize CI usage. # (rapidsmpf compatibility already validated in rapidsmpf CI) @@ -489,8 +489,8 @@ jobs: cudf-polars-polars-tests: needs: [wheel-build-cudf-polars, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main - if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels && !fromJSON(needs.changed-files.outputs.changed_file_groups).cudf_only && !fromJSON(needs.changed-files.outputs.changed_file_groups).dask_cudf_only + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.14 + if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) @@ -499,7 +499,7 @@ jobs: wheel-build-dask-cudf: needs: wheel-build-cudf secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) @@ -512,8 +512,8 @@ jobs: wheel-tests-dask-cudf: needs: [wheel-build-dask-cudf, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main - if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels && !fromJSON(needs.changed-files.outputs.changed_file_groups).cudf_polars_only + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.14 + if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) @@ -522,7 +522,7 @@ jobs: devcontainer: secrets: inherit needs: telemetry-setup - uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@python-3.14 with: arch: '["amd64", "arm64"]' cuda: '["13.1"]' @@ -538,8 +538,8 @@ jobs: unit-tests-cudf-pandas: needs: [wheel-build-cudf, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main - if: (fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cudf_pandas) && !fromJSON(needs.changed-files.outputs.changed_file_groups).cudf_polars_only && !fromJSON(needs.changed-files.outputs.changed_file_groups).dask_cudf_only + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.14 + if: (fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cudf_pandas) with: # This selects the latest supported Python + CUDA minor versions for each ARCH/CUDA major version combo matrix_filter: group_by([(.ARCH), (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) @@ -548,8 +548,8 @@ jobs: third-party-integration-tests-cudf-pandas: needs: [conda-python-build, conda-python-build-noarch, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main - if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda && !fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_only && !fromJSON(needs.changed-files.outputs.changed_file_groups).cudf_polars_only && !fromJSON(needs.changed-files.outputs.changed_file_groups).dask_cudf_only + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 + if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda with: build_type: pull-request branch: ${{ inputs.branch }} @@ -564,8 +564,8 @@ jobs: # run the Pandas unit tests using PR branch needs: [wheel-build-cudf, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main - if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels && !fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_only && !fromJSON(needs.changed-files.outputs.changed_file_groups).cudf_polars_only && !fromJSON(needs.changed-files.outputs.changed_file_groups).dask_cudf_only + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 + if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels with: build_type: pull-request branch: ${{ inputs.branch }} @@ -577,8 +577,8 @@ jobs: narwhals-tests: needs: [conda-python-build, conda-python-build-noarch, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main - if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda && !fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_only && !fromJSON(needs.changed-files.outputs.changed_file_groups).cudf_polars_only && !fromJSON(needs.changed-files.outputs.changed_file_groups).dask_cudf_only + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 + if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda with: build_type: pull-request branch: ${{ inputs.branch }} diff --git a/.github/workflows/pr_issue_status_automation.yml b/.github/workflows/pr_issue_status_automation.yml index ed20aa246b5..a7c29397e52 100644 --- a/.github/workflows/pr_issue_status_automation.yml +++ b/.github/workflows/pr_issue_status_automation.yml @@ -11,7 +11,7 @@ on: jobs: get-project-id: - uses: rapidsai/shared-workflows/.github/workflows/project-get-item-id.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/project-get-item-id.yaml@python-3.14 if: github.event.pull_request.state == 'open' secrets: inherit permissions: @@ -22,7 +22,7 @@ jobs: update-status: # This job sets the PR and its linked issues to "In Progress" status - uses: rapidsai/shared-workflows/.github/workflows/project-get-set-single-select-field.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/project-get-set-single-select-field.yaml@python-3.14 if: ${{ github.event.pull_request.state == 'open' && needs.get-project-id.outputs.ITEM_PROJECT_ID != '' }} needs: get-project-id with: @@ -56,7 +56,7 @@ jobs: update-release: # This job sets the PR and its linked issues to the release they are targeting - uses: rapidsai/shared-workflows/.github/workflows/project-get-set-single-select-field.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/project-get-set-single-select-field.yaml@python-3.14 if: ${{ github.event.pull_request.state == 'open' && needs.get-project-id.outputs.ITEM_PROJECT_ID != '' }} needs: [get-project-id, get-release] with: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index c79db0d0f76..d98426619dc 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -24,7 +24,7 @@ on: jobs: conda-cpp-checks: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -32,7 +32,7 @@ jobs: sha: ${{ inputs.sha }} conda-cpp-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -41,7 +41,7 @@ jobs: sha: ${{ inputs.sha }} conda-cpp-memcheck-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -53,7 +53,7 @@ jobs: script: "ci/test_cpp_memcheck.sh" cpp-linters: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -63,7 +63,7 @@ jobs: file_to_upload: iwyu_results.txt conda-python-cudf-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -75,7 +75,7 @@ jobs: conda-python-other-tests: # Tests for dask_cudf, custreamz, cudf_kafka are separated for CI parallelism secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -84,7 +84,7 @@ jobs: script: "ci/test_python_other.sh" conda-java-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -96,7 +96,7 @@ jobs: script: "ci/test_java.sh" conda-notebook-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -108,7 +108,7 @@ jobs: script: "ci/test_notebooks.sh" wheel-tests-cudf: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -119,7 +119,7 @@ jobs: matrix_filter: map(select(.GPU != "rtxpro6000")) wheel-tests-dask-cudf: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -128,7 +128,7 @@ jobs: script: ci/test_wheel_dask_cudf.sh unit-tests-cudf-pandas: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -137,7 +137,7 @@ jobs: script: ci/cudf_pandas_scripts/run_tests.sh third-party-integration-tests-cudf-pandas: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -150,7 +150,7 @@ jobs: continue-on-error: true wheel-tests-cudf-polars: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -159,7 +159,7 @@ jobs: script: "ci/test_wheel_cudf_polars.sh" wheel-tests-cudf-polars-with-rapidsmpf: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.14 with: # This selects "ARCH=amd64 + the latest supported Python + CUDA" to minimize CI usage. # (rapidsmpf compatibility already validated in rapidsmpf CI) @@ -172,7 +172,7 @@ jobs: continue-on-error: true cudf-polars-polars-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -181,7 +181,7 @@ jobs: script: "ci/test_cudf_polars_polars_tests.sh" narwhals-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@python-3.14 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} diff --git a/.github/workflows/trigger-breaking-change-alert.yaml b/.github/workflows/trigger-breaking-change-alert.yaml index c471e2a151e..680142fe32d 100644 --- a/.github/workflows/trigger-breaking-change-alert.yaml +++ b/.github/workflows/trigger-breaking-change-alert.yaml @@ -12,7 +12,7 @@ jobs: trigger-notifier: if: contains(github.event.pull_request.labels.*.name, 'breaking') secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/breaking-change-alert.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/breaking-change-alert.yaml@python-3.14 with: sender_login: ${{ github.event.sender.login }} sender_avatar: ${{ github.event.sender.avatar_url }} diff --git a/ci/cudf_pandas_scripts/run_tests.sh b/ci/cudf_pandas_scripts/run_tests.sh index 246754e7ce4..dd4395c84cb 100755 --- a/ci/cudf_pandas_scripts/run_tests.sh +++ b/ci/cudf_pandas_scripts/run_tests.sh @@ -124,31 +124,38 @@ output=$(python ci/cudf_pandas_scripts/fetch_pandas_versions.py "$pandas_version # Convert the comma-separated list into an array IFS=',' read -r -a versions <<< "$output" -for version in "${versions[@]}"; do - echo "Installing pandas version: ${version}" - # This loop tests cudf.pandas compatibility with older pandas-numpy versions, - # requiring numpy<2. cupy>=14 dropped support for numpy<2, so we explicitly - # downgrade cupy here to avoid an import failure when cupy tries - # to load against the older numpy. - python -m pip install "numpy>=1.23,<2.0a0" "pandas==${version}.*" "cupy-cuda${RAPIDS_CUDA_VERSION%%.*}x<14" - python -m pytest -p cudf.pandas \ - --ignore=./python/cudf/cudf_pandas_tests/third_party_integration_tests/ \ - --numprocesses=8 \ - --dist=worksteal \ - -k "not profiler" \ - -m "not serial" \ - --cov-config=./python/cudf/.coveragerc \ - --cov=cudf \ - --cov-report=xml:"${RAPIDS_COVERAGE_DIR}/cudf-pandas-coverage.xml" \ - --cov-report=term \ - ./python/cudf/cudf_pandas_tests/ - - # NOTE: We don't currently run serial tests (only 1 as of 2025-07-25) - # with multiple versions of pandas. - - python -m pytest -p cudf.pandas \ - --ignore=./python/cudf/cudf_pandas_tests/third_party_integration_tests/ \ - --numprocesses=0 \ - -k "profiler" \ - ./python/cudf/cudf_pandas_tests/ -done + +version_lte() { + [ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ] +} + +if version_lte "${RAPIDS_PY_VERSION}" "3.13"; then + for version in "${versions[@]}"; do + echo "Installing pandas version: ${version}" + # This loop tests cudf.pandas compatibility with older pandas-numpy versions, + # requiring numpy<2. cupy>=14 dropped support for numpy<2, so we explicitly + # downgrade cupy here to avoid an import failure when cupy tries + # to load against the older numpy. + python -m pip install "numpy>=1.23,<2.0a0" "pandas==${version}.*" "cupy-cuda${RAPIDS_CUDA_VERSION%%.*}x<14" + python -m pytest -p cudf.pandas \ + --ignore=./python/cudf/cudf_pandas_tests/third_party_integration_tests/ \ + --numprocesses=8 \ + --dist=worksteal \ + -k "not profiler" \ + -m "not serial" \ + --cov-config=./python/cudf/.coveragerc \ + --cov=cudf \ + --cov-report=xml:"${RAPIDS_COVERAGE_DIR}/cudf-pandas-coverage.xml" \ + --cov-report=term \ + ./python/cudf/cudf_pandas_tests/ + + # NOTE: We don't currently run serial tests (only 1 as of 2025-07-25) + # with multiple versions of pandas. + + python -m pytest -p cudf.pandas \ + --ignore=./python/cudf/cudf_pandas_tests/third_party_integration_tests/ \ + --numprocesses=0 \ + -k "profiler" \ + ./python/cudf/cudf_pandas_tests/ + done +fi diff --git a/ci/test_cudf_polars_polars_tests.sh b/ci/test_cudf_polars_polars_tests.sh index dfd42ec979a..4172b769897 100755 --- a/ci/test_cudf_polars_polars_tests.sh +++ b/ci/test_cudf_polars_polars_tests.sh @@ -37,7 +37,7 @@ sed -i 's/^deltalake>=1.1.4/deltalake>=1.1.4,<1.2.0/' polars/py-polars/requireme # Additionally, Iceberg tests attempt to filter a Pydantic warning that does not exist # in versions < 2.12, and trigger a pyparsing DeprecationWarning during collection. # See https://github.com/pola-rs/polars/pull/25854 -sed -i 's/^pydantic>=2.0.0.*/pydantic>=2.0.0,<2.12.0/' polars/py-polars/requirements-dev.txt +sed -i 's/^pydantic>=2.0.0.*/pydantic>=2.0.0,<2.13.0/' polars/py-polars/requirements-dev.txt # Iceberg tests include a call to a deprecated in 0.10.0 # See https://github.com/pola-rs/polars/pull/25854 # Ignore the warning for now, but update the minimum diff --git a/ci/test_python_cudf.sh b/ci/test_python_cudf.sh index 00075511c8d..13c18fa88c0 100755 --- a/ci/test_python_cudf.sh +++ b/ci/test_python_cudf.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2022-2025, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION. # SPDX-License-Identifier: Apache-2.0 set -euo pipefail @@ -27,8 +27,12 @@ timeout 40m ./ci/run_pylibcudf_pytests.sh \ --cov-report=xml:"${RAPIDS_COVERAGE_DIR}/pylibcudf-coverage.xml" \ --cov-report=term +version_gte() { + [ "$2" = "$(echo -e "$2\n$1" | sort -V | head -n1)" ] +} + # If the RAPIDS_PY_VERSION is 3.13, set CUDF_TEST_COPY_ON_WRITE to '1' to enable copy-on-write tests. -if [[ "${RAPIDS_PY_VERSION}" == "3.13" ]]; then +if version_gte "${RAPIDS_PY_VERSION}" "3.13"; then echo "Running tests with CUDF_TEST_COPY_ON_WRITE enabled" export CUDF_TEST_COPY_ON_WRITE='1' else diff --git a/conda/environments/all_cuda-129_arch-aarch64.yaml b/conda/environments/all_cuda-129_arch-aarch64.yaml index 3b90a4f55df..351b6f3d816 100644 --- a/conda/environments/all_cuda-129_arch-aarch64.yaml +++ b/conda/environments/all_cuda-129_arch-aarch64.yaml @@ -78,9 +78,9 @@ dependencies: - pytest-httpserver - pytest-rerunfailures!=16.0.0 - pytest-xdist -- python-confluent-kafka>=2.8.0,<2.9.0 +- python-confluent-kafka - python-xxhash -- python>=3.11,<3.14 +- python>=3.11 - pytorch>=2.4.0 - rapids-build-backend>=0.4.0,<0.5.0 - rapids-dask-dependency==26.4.*,>=0.0.0a0 diff --git a/conda/environments/all_cuda-129_arch-x86_64.yaml b/conda/environments/all_cuda-129_arch-x86_64.yaml index c20bc970e15..47c59a2b4a4 100644 --- a/conda/environments/all_cuda-129_arch-x86_64.yaml +++ b/conda/environments/all_cuda-129_arch-x86_64.yaml @@ -78,9 +78,9 @@ dependencies: - pytest-httpserver - pytest-rerunfailures!=16.0.0 - pytest-xdist -- python-confluent-kafka>=2.8.0,<2.9.0 +- python-confluent-kafka - python-xxhash -- python>=3.11,<3.14 +- python>=3.11 - pytorch>=2.4.0 - rapids-build-backend>=0.4.0,<0.5.0 - rapids-dask-dependency==26.4.*,>=0.0.0a0 diff --git a/conda/environments/all_cuda-131_arch-aarch64.yaml b/conda/environments/all_cuda-131_arch-aarch64.yaml index ca3766b1b39..c8de06d1dcd 100644 --- a/conda/environments/all_cuda-131_arch-aarch64.yaml +++ b/conda/environments/all_cuda-131_arch-aarch64.yaml @@ -78,9 +78,9 @@ dependencies: - pytest-httpserver - pytest-rerunfailures!=16.0.0 - pytest-xdist -- python-confluent-kafka>=2.8.0,<2.9.0 +- python-confluent-kafka - python-xxhash -- python>=3.11,<3.14 +- python>=3.11 - rapids-build-backend>=0.4.0,<0.5.0 - rapids-dask-dependency==26.4.*,>=0.0.0a0 - rapids-logger==0.2.*,>=0.0.0a0 diff --git a/conda/environments/all_cuda-131_arch-x86_64.yaml b/conda/environments/all_cuda-131_arch-x86_64.yaml index 26645728b7e..38ebf88c3d4 100644 --- a/conda/environments/all_cuda-131_arch-x86_64.yaml +++ b/conda/environments/all_cuda-131_arch-x86_64.yaml @@ -78,9 +78,9 @@ dependencies: - pytest-httpserver - pytest-rerunfailures!=16.0.0 - pytest-xdist -- python-confluent-kafka>=2.8.0,<2.9.0 +- python-confluent-kafka - python-xxhash -- python>=3.11,<3.14 +- python>=3.11 - rapids-build-backend>=0.4.0,<0.5.0 - rapids-dask-dependency==26.4.*,>=0.0.0a0 - rapids-logger==0.2.*,>=0.0.0a0 diff --git a/conda/recipes/cudf/recipe.yaml b/conda/recipes/cudf/recipe.yaml index 160e9ad7056..7c8c21a92e4 100644 --- a/conda/recipes/cudf/recipe.yaml +++ b/conda/recipes/cudf/recipe.yaml @@ -11,7 +11,7 @@ context: head_rev: '${{ git.head_rev(".")[:8] }}' py_abi_min: ${{ env.get("RAPIDS_PY_VERSION") }} py_buildstring : ${{ py_abi_min | version_to_buildstring }} - py_runtime_latest: "3.13" + py_runtime_latest: "3.14" package: name: cudf diff --git a/conda/recipes/cudf_kafka/recipe.yaml b/conda/recipes/cudf_kafka/recipe.yaml index 5d0d8db7db3..f821006dfab 100644 --- a/conda/recipes/cudf_kafka/recipe.yaml +++ b/conda/recipes/cudf_kafka/recipe.yaml @@ -11,7 +11,7 @@ context: head_rev: '${{ git.head_rev(".")[:8] }}' py_abi_min: ${{ env.get("RAPIDS_PY_VERSION") }} py_buildstring : ${{ py_abi_min | version_to_buildstring }} - py_runtime_latest: "3.13" + py_runtime_latest: "3.14" package: name: cudf_kafka diff --git a/conda/recipes/custreamz/recipe.yaml b/conda/recipes/custreamz/recipe.yaml index b3b2d3fbf91..376c3d7c75b 100644 --- a/conda/recipes/custreamz/recipe.yaml +++ b/conda/recipes/custreamz/recipe.yaml @@ -28,7 +28,7 @@ requirements: - pip - rapids-build-backend >=0.4.0,<0.5.0 - setuptools>=77.0.0 - - python-confluent-kafka >=2.8.0,<2.9.0 + - python-confluent-kafka - cudf_kafka =${{ version }} run: - python @@ -36,7 +36,7 @@ requirements: - cudf =${{ version }} - cudf_kafka =${{ version }} - rapids-dask-dependency =${{ minor_version }} - - python-confluent-kafka >=2.8.0,<2.9.0 + - python-confluent-kafka tests: - python: diff --git a/conda/recipes/libcudf/conda_build_config.yaml b/conda/recipes/libcudf/conda_build_config.yaml index cc0e7b75e58..0417abae922 100644 --- a/conda/recipes/libcudf/conda_build_config.yaml +++ b/conda/recipes/libcudf/conda_build_config.yaml @@ -19,9 +19,6 @@ cmake_version: dlpack_version: - ">=0.8,<1.0" -librdkafka_version: - - ">=2.8.0,<2.9.0" - flatbuffers_version: - "=24.3.25" diff --git a/conda/recipes/libcudf/recipe.yaml b/conda/recipes/libcudf/recipe.yaml index 10b577f8934..65a20c827ed 100644 --- a/conda/recipes/libcudf/recipe.yaml +++ b/conda/recipes/libcudf/recipe.yaml @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2018-2025, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2018-2026, NVIDIA CORPORATION. # SPDX-License-Identifier: Apache-2.0 schema_version: 1 @@ -89,7 +89,7 @@ cache: - cuda-version =${{ cuda_version }} - libnvcomp-dev ${{ nvcomp_version }} - dlpack ${{ dlpack_version }} - - librdkafka ${{ librdkafka_version }} + - librdkafka - flatbuffers =${{ flatbuffers_version }} - rapids-logger =0.2 - zlib ${{ zlib_version }} @@ -180,10 +180,10 @@ outputs: - cmake ${{ cmake_version }} - ${{ stdlib("c") }} host: - - librdkafka ${{ librdkafka_version }} + - librdkafka - ${{ pin_subpackage("libcudf", exact=True) }} run: - - librdkafka ${{ librdkafka_version }} + - librdkafka - ${{ pin_subpackage("libcudf", exact=True) }} ignore_run_exports: by_name: diff --git a/conda/recipes/pylibcudf/recipe.yaml b/conda/recipes/pylibcudf/recipe.yaml index 5df1777bffe..9d888e52c4d 100644 --- a/conda/recipes/pylibcudf/recipe.yaml +++ b/conda/recipes/pylibcudf/recipe.yaml @@ -11,7 +11,7 @@ context: head_rev: '${{ git.head_rev(".")[:8] }}' py_abi_min: ${{ env.get("RAPIDS_PY_VERSION") }} py_buildstring : ${{ py_abi_min | version_to_buildstring }} - py_runtime_latest: "3.13" + py_runtime_latest: "3.14" package: name: pylibcudf diff --git a/dependencies.yaml b/dependencies.yaml index 8912bf78522..751e55e1604 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -677,8 +677,12 @@ dependencies: packages: - python=3.13 - matrix: + py: "3.14" packages: - - python>=3.11,<3.14 + - python=3.14 + - matrix: + packages: + - python>=3.11 run_common: common: - output_types: [conda, requirements, pyproject] @@ -767,13 +771,13 @@ dependencies: common: - output_types: conda packages: - - python-confluent-kafka>=2.8.0,<2.9.0 + - python-confluent-kafka - output_types: [conda, requirements, pyproject] packages: - streamz - output_types: [requirements, pyproject] packages: - - confluent-kafka>=2.8.0,<2.9.0 + - confluent-kafka test_cpp: common: - output_types: conda diff --git a/python/cudf/cudf_pandas_tests/third_party_integration_tests/dependencies.yaml b/python/cudf/cudf_pandas_tests/third_party_integration_tests/dependencies.yaml index 02ff2125360..db3c55948c6 100644 --- a/python/cudf/cudf_pandas_tests/third_party_integration_tests/dependencies.yaml +++ b/python/cudf/cudf_pandas_tests/third_party_integration_tests/dependencies.yaml @@ -187,8 +187,12 @@ dependencies: packages: - python=3.13 - matrix: + py: "3.14" packages: - - python>=3.11,<3.14 + - python=3.14 + - matrix: + packages: + - python>=3.11 test_base: common: - output_types: conda diff --git a/python/cudf/pyproject.toml b/python/cudf/pyproject.toml index 62e3690bf50..efcdf8fb1e1 100644 --- a/python/cudf/pyproject.toml +++ b/python/cudf/pyproject.toml @@ -44,6 +44,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] [project.optional-dependencies] diff --git a/python/cudf_polars/pyproject.toml b/python/cudf_polars/pyproject.toml index cb0160c39d0..4177a6adf0b 100644 --- a/python/cudf_polars/pyproject.toml +++ b/python/cudf_polars/pyproject.toml @@ -35,6 +35,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] [project.optional-dependencies] diff --git a/python/custreamz/pyproject.toml b/python/custreamz/pyproject.toml index cedd8958382..33c69952d3b 100644 --- a/python/custreamz/pyproject.toml +++ b/python/custreamz/pyproject.toml @@ -21,7 +21,7 @@ license = "Apache-2.0" license-files = ["LICENSE"] requires-python = ">=3.11" dependencies = [ - "confluent-kafka>=2.8.0,<2.9.0", + "confluent-kafka", "cudf==26.4.*,>=0.0.0a0", "cudf_kafka==26.4.*,>=0.0.0a0", "streamz", @@ -35,6 +35,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] [project.optional-dependencies] diff --git a/python/dask_cudf/pyproject.toml b/python/dask_cudf/pyproject.toml index ae16819f1b6..5c4a0e75d04 100644 --- a/python/dask_cudf/pyproject.toml +++ b/python/dask_cudf/pyproject.toml @@ -37,6 +37,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] [project.entry-points."dask.dataframe.backends"] diff --git a/python/pylibcudf/pyproject.toml b/python/pylibcudf/pyproject.toml index 619dcf2a645..19e23e8f845 100644 --- a/python/pylibcudf/pyproject.toml +++ b/python/pylibcudf/pyproject.toml @@ -34,6 +34,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] [project.optional-dependencies]