-
Notifications
You must be signed in to change notification settings - Fork 36
chore: skip DGL tests on Python 3.13 #201
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
Changes from 9 commits
2b2de4d
d013183
561480c
258a19e
b615e0f
c2610e2
04b7791
ea3321c
c7ddb91
2e15318
eb117db
86ca013
df11f81
8f04a30
d6eb9e9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -68,8 +68,9 @@ jobs: | |
| secrets: inherit | ||
| uses: rapidsai/shared-workflows/.github/workflows/[email protected] | ||
| 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))])) | ||
| # This selects "ARCH=amd64 + Python 3.12 + CUDA". | ||
| # Note that we don't support DGL on Python 3.13 so we don't build DGL on Python 3.13 | ||
| matrix_filter: map(select(.ARCH == "amd64", .PY_VER == "3.12")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([.CUDA_VER]|map(split(".")|map(tonumber)))) | ||
| build_type: ${{ inputs.build_type || 'branch' }} | ||
| branch: ${{ inputs.branch }} | ||
| sha: ${{ inputs.sha }} | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -123,7 +123,7 @@ jobs: | |
| conda-python-tests: | ||
| needs: [conda-python-build, changed-files] | ||
| secrets: inherit | ||
| uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.06 | ||
| uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@python-3.13 | ||
| if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python | ||
| with: | ||
| build_type: pull-request | ||
|
|
@@ -171,8 +171,9 @@ jobs: | |
| secrets: inherit | ||
| uses: rapidsai/shared-workflows/.github/workflows/[email protected] | ||
| 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))])) | ||
| # This selects "ARCH=amd64 + Python 3.12 + CUDA". | ||
| # Note that we don't support DGL on Python 3.13 so we don't build DGL on Python 3.13 | ||
| matrix_filter: map(select(.ARCH == "amd64", .PY_VER == "3.12")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([.CUDA_VER]|map(split(".")|map(tonumber)))) | ||
| build_type: pull-request | ||
| script: ci/build_wheel_cugraph-dgl.sh | ||
| package-name: cugraph-dgl | ||
|
|
@@ -186,7 +187,7 @@ jobs: | |
| with: | ||
| build_type: pull-request | ||
| script: ci/test_wheel_cugraph-dgl.sh | ||
| matrix_filter: map(select(.ARCH == "amd64" and .CUDA_VER != "11.4.3")) | ||
| matrix_filter: map(select(.ARCH == "amd64" and .CUDA_VER != "11.4.3" and .PY_VER != "3.13" )) | ||
| wheel-build-cugraph-pyg: | ||
| needs: checks | ||
| secrets: inherit | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -39,7 +39,7 @@ jobs: | |
| run_script: "ci/test_notebooks.sh" | ||
| conda-python-tests: | ||
| secrets: inherit | ||
| uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.06 | ||
| uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@python-3.13 | ||
| with: | ||
| build_type: ${{ inputs.build_type }} | ||
| branch: ${{ inputs.branch }} | ||
|
|
@@ -65,7 +65,7 @@ jobs: | |
| date: ${{ inputs.date }} | ||
| sha: ${{ inputs.sha }} | ||
| script: ci/test_wheel_cugraph-dgl.sh | ||
| matrix_filter: map(select((.ARCH == "amd64") and (.CUDA_VER | startswith("11.4") | not) and (.LINUX_VER != "rockylinux8"))) | ||
| matrix_filter: map(select((.ARCH == "amd64") and (.CUDA_VER | startswith("11.4") | not) and (.LINUX_VER != "rockylinux8") and (.PY_VER != "3.13"))) | ||
| wheel-tests-cugraph-pyg: | ||
| secrets: inherit | ||
| uses: rapidsai/shared-workflows/.github/workflows/[email protected] | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,7 +3,11 @@ | |
|
|
||
| set -euo pipefail | ||
|
|
||
| package_dir="python/cugraph-dgl" | ||
| if [ "$RAPIDS_PY_VERSION" != "3.13" ]; then | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Shouldn't this be unreachable, because we skip the wheel build job for Python 3.13? We also skip ARM but we don't have exceptions in the script for that. I would favor just leaving this script as-is and letting the filtering be done at the GHA workflow level. The same applies to all bash scripts in this PR. |
||
| package_dir="python/cugraph-dgl" | ||
|
|
||
| ./ci/build_wheel.sh cugraph-dgl ${package_dir} python | ||
| ./ci/validate_wheel.sh ${package_dir} "${RAPIDS_WHEEL_BLD_OUTPUT_DIR}" | ||
| ./ci/build_wheel.sh cugraph-dgl ${package_dir} python | ||
| ./ci/validate_wheel.sh ${package_dir} "${RAPIDS_WHEEL_BLD_OUTPUT_DIR}" | ||
| else | ||
| rapids-logger "Not building DGL wheel on Python 3.13" | ||
| fi | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No material changes. Please revert this file. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,9 +1,14 @@ | ||
| #!/bin/bash | ||
| # Copyright (c) 2024, NVIDIA CORPORATION. | ||
| # Copyright (c) 2024-2025, NVIDIA CORPORATION. | ||
|
|
||
| set -euo pipefail | ||
|
|
||
| # Support invoking run_cugraph_dgl_pytests.sh outside the script directory | ||
| cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"/../python/cugraph-dgl/cugraph_dgl | ||
|
|
||
| pytest --cache-clear --ignore=mg "$@" . | ||
| if [ "$RAPIDS_PY_VERSION" != "3.13" ]; then | ||
| # Support invoking run_cugraph_dgl_pytests.sh outside the script directory | ||
| cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"/../python/cugraph-dgl/cugraph_dgl | ||
|
|
||
| pytest --cache-clear --ignore=mg "$@" . | ||
| else | ||
| rapids-logger "Skipping DGL tests because Python version 3.13" | ||
| fi |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -46,7 +46,7 @@ set +e | |
| # FIXME: TEMPORARILY disable MG PropertyGraph tests (experimental) tests and | ||
| # bulk sampler IO tests (hangs in CI) | ||
|
|
||
| if [[ "${RUNNER_ARCH}" != "ARM64" ]]; then | ||
| if [[ "${RUNNER_ARCH}" != "ARM64" && "${RAPIDS_PY_VERSION}" != "3.13" ]]; then | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we skip these with a matrix filter instead? I think currently these spin up a job (for ARM) that immediately ends. Let’s avoid that. |
||
| rapids-logger "(cugraph-dgl) Generate Python testing dependencies" | ||
| rapids-dependency-file-generator \ | ||
| --output conda \ | ||
|
|
@@ -85,7 +85,7 @@ if [[ "${RUNNER_ARCH}" != "ARM64" ]]; then | |
| conda deactivate | ||
| set -u | ||
| else | ||
| rapids-logger "skipping cugraph_dgl pytest on ARM64" | ||
| rapids-logger "skipping cugraph_dgl pytest on ARM64 and Python 3.13" | ||
| fi | ||
|
|
||
| if [[ "${RUNNER_ARCH}" != "ARM64" ]]; then | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,39 +3,44 @@ | |
|
|
||
| set -eoxu pipefail | ||
|
|
||
| package_name="cugraph-dgl" | ||
|
|
||
| mkdir -p ./dist | ||
| RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen ${RAPIDS_CUDA_VERSION})" | ||
|
|
||
| # Download the libwholegraph, pylibwholegraph, and cugraph-dgl built in the previous step | ||
| LIBWHOLEGRAPH_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="libwholegraph_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github cpp) | ||
| PYLIBWHOLEGRAPH_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="pylibwholegraph_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github python) | ||
| CUGRAPH_DGL_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="${package_name}_${RAPIDS_PY_CUDA_SUFFIX}" RAPIDS_PY_WHEEL_PURE="1" rapids-download-wheels-from-github python) | ||
|
|
||
| # determine pytorch and DGL sources | ||
| PKG_CUDA_VER="$(echo ${CUDA_VERSION} | cut -d '.' -f1,2 | tr -d '.')" | ||
| PKG_CUDA_VER_MAJOR=${PKG_CUDA_VER:0:2} | ||
| if [[ "${PKG_CUDA_VER_MAJOR}" == "12" ]]; then | ||
| PYTORCH_CUDA_VER="121" | ||
| if [ "$RAPIDS_PY_VERSION" != "3.13" ]; then | ||
|
|
||
| package_name="cugraph-dgl" | ||
|
|
||
| mkdir -p ./dist | ||
| RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen ${RAPIDS_CUDA_VERSION})" | ||
|
|
||
| # Download the libwholegraph, pylibwholegraph, and cugraph-dgl built in the previous step | ||
| LIBWHOLEGRAPH_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="libwholegraph_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github cpp) | ||
| PYLIBWHOLEGRAPH_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="pylibwholegraph_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github python) | ||
| CUGRAPH_DGL_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="${package_name}_${RAPIDS_PY_CUDA_SUFFIX}" RAPIDS_PY_WHEEL_PURE="1" rapids-download-wheels-from-github python) | ||
|
|
||
| # determine pytorch and DGL sources | ||
| PKG_CUDA_VER="$(echo ${CUDA_VERSION} | cut -d '.' -f1,2 | tr -d '.')" | ||
| PKG_CUDA_VER_MAJOR=${PKG_CUDA_VER:0:2} | ||
| if [[ "${PKG_CUDA_VER_MAJOR}" == "12" ]]; then | ||
| PYTORCH_CUDA_VER="121" | ||
| else | ||
| PYTORCH_CUDA_VER=$PKG_CUDA_VER | ||
| fi | ||
| PYTORCH_URL="https://download.pytorch.org/whl/cu${PYTORCH_CUDA_VER}" | ||
| DGL_URL="https://data.dgl.ai/wheels/torch-2.3/cu${PYTORCH_CUDA_VER}/repo.html" | ||
|
|
||
| # echo to expand wildcard before adding `[extra]` requires for pip | ||
| rapids-pip-retry install \ | ||
| -v \ | ||
| --extra-index-url "${PYTORCH_URL}" \ | ||
| --find-links "${DGL_URL}" \ | ||
| "${LIBWHOLEGRAPH_WHEELHOUSE}"/*.whl \ | ||
| "$(echo "${PYLIBWHOLEGRAPH_WHEELHOUSE}"/pylibwholegraph_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" \ | ||
| "$(echo "${CUGRAPH_DGL_WHEELHOUSE}"/cugraph_dgl_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test]" \ | ||
| 'dgl==2.4.0' \ | ||
| 'torch>=2.3' | ||
|
|
||
| # RAPIDS_DATASET_ROOT_DIR is used by test scripts | ||
| export RAPIDS_DATASET_ROOT_DIR="$(realpath datasets)" | ||
|
|
||
| python -m pytest python/cugraph-dgl/cugraph_dgl/tests | ||
| else | ||
| PYTORCH_CUDA_VER=$PKG_CUDA_VER | ||
| rapids-logger "Skipping DGL tests because Python version 3.13" | ||
| fi | ||
|
Comment on lines
19
to
23
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It looks like this dedent change snuck in |
||
| PYTORCH_URL="https://download.pytorch.org/whl/cu${PYTORCH_CUDA_VER}" | ||
| DGL_URL="https://data.dgl.ai/wheels/torch-2.3/cu${PYTORCH_CUDA_VER}/repo.html" | ||
|
|
||
| # echo to expand wildcard before adding `[extra]` requires for pip | ||
| rapids-pip-retry install \ | ||
| -v \ | ||
| --extra-index-url "${PYTORCH_URL}" \ | ||
| --find-links "${DGL_URL}" \ | ||
| "${LIBWHOLEGRAPH_WHEELHOUSE}"/*.whl \ | ||
| "$(echo "${PYLIBWHOLEGRAPH_WHEELHOUSE}"/pylibwholegraph_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" \ | ||
| "$(echo "${CUGRAPH_DGL_WHEELHOUSE}"/cugraph_dgl_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test]" \ | ||
| 'dgl==2.4.0' \ | ||
| 'torch>=2.3' | ||
|
|
||
| # RAPIDS_DATASET_ROOT_DIR is used by test scripts | ||
| export RAPIDS_DATASET_ROOT_DIR="$(realpath datasets)" | ||
|
|
||
| python -m pytest python/cugraph-dgl/cugraph_dgl/tests | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would drop Python 3.10 and 3.11, which I don’t think we want? Just say “not 3.13” here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same in pr.yaml.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was already dropping Python 3.10 and 3.11 with the
max_by(.PY_VER)-- I'm just telling it to use 3.12 instead of the new max of 3.13There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ahhhh I missed that this is a pure wheel. (See
pure-wheel: truebelow). That's fine, then.