From 6a3ba401d072e90969b2b8587207915d45b919aa Mon Sep 17 00:00:00 2001 From: Ralph Liu <137829296+nv-rliu@users.noreply.github.com> Date: Wed, 13 Nov 2024 11:57:15 -0500 Subject: [PATCH 1/3] Add `nx-cugraph` Package Publishing (#16) Closes https://github.com/rapidsai/graph_dl/issues/647 Updates `build.yaml` to enable building & publishing packages from this repo. Scripts are copied from `build.yaml` from branch-24.12 in https://github.com/rapidsai/cugraph. Authors: - Ralph Liu (https://github.com/nv-rliu) Approvers: - James Lamb (https://github.com/jameslamb) - Bradley Dice (https://github.com/bdice) - Erik Welch (https://github.com/eriknw) URL: https://github.com/rapidsai/nx-cugraph/pull/16 --- .github/workflows/build.yaml | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f4d06ef65..c4f152191 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,13 +1,11 @@ name: build on: - # TODO: uncomment this condition when ready to start publishing - # packages from this repo - # push: - # branches: - # - "branch-*" - # tags: - # - v[0-9][0-9].[0-9][0-9].[0-9][0-9] + push: + branches: + - "branch-*" + tags: + - v[0-9][0-9].[0-9][0-9].[0-9][0-9] workflow_dispatch: inputs: branch: @@ -28,8 +26,24 @@ concurrency: cancel-in-progress: true jobs: + conda-python-build: + secrets: inherit + uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-24.12 + with: + build_type: ${{ inputs.build_type || 'branch' }} + branch: ${{ inputs.branch }} + date: ${{ inputs.date }} + sha: ${{ inputs.sha }} + upload-conda: + needs: conda-python-build + secrets: inherit + uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@branch-24.12 + with: + build_type: ${{ inputs.build_type || 'branch' }} + branch: ${{ inputs.branch }} + date: ${{ inputs.date }} + sha: ${{ inputs.sha }} wheel-build-nx-cugraph: - needs: wheel-publish-nx-cugraph secrets: inherit uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-24.12 with: From f1a8f03d033a46a49dc9c502ebcbbbdb8a9f82b9 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Fri, 15 Nov 2024 15:44:18 -0600 Subject: [PATCH 2/3] remove versioning workaround for nightlies (#26) Within this release, `nx-cugraph` moved from https://github.com/rapidsai/cugraph to this repo. To avoid conflicts between nightlies produced from the different sources, CI scripts here were hard-coding the version for CI artifacts to `24.12.00a1000`. That should be removed now that this is the only repo packages are being published from (should have been removed in #16, sorry for missing it). Authors: - James Lamb (https://github.com/jameslamb) - Erik Welch (https://github.com/eriknw) Approvers: - Ray Douglass (https://github.com/raydouglass) - Ralph Liu (https://github.com/nv-rliu) - Erik Welch (https://github.com/eriknw) URL: https://github.com/rapidsai/nx-cugraph/pull/26 --- ci/build_python.sh | 5 +---- ci/test_python.sh | 4 +--- nx_cugraph/algorithms/core.py | 1 + 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/ci/build_python.sh b/ci/build_python.sh index 93b28c9a8..a6d74109f 100755 --- a/ci/build_python.sh +++ b/ci/build_python.sh @@ -9,10 +9,7 @@ source rapids-date-string rapids-print-env -# TODO: revert this once we start publishing nightly packages from the -# 'nx-cugraph' repo and stop publishing them from the 'cugraph' repo -# rapids-generate-version > ./VERSION -echo "24.12.00a1000" > ./VERSION +rapids-generate-version > ./VERSION rapids-logger "Begin py build" diff --git a/ci/test_python.sh b/ci/test_python.sh index 3fc93c56c..3de63c4cc 100755 --- a/ci/test_python.sh +++ b/ci/test_python.sh @@ -32,11 +32,9 @@ mkdir -p "${RAPIDS_TESTS_DIR}" "${RAPIDS_COVERAGE_DIR}" rapids-print-env - # TODO: remove the '>=24.12.00a1000' once we start publishing nightly packages - # from the 'nx-cugraph' repo and stop publishing them from the 'cugraph' repo rapids-mamba-retry install \ --channel "${PYTHON_CHANNEL}" \ - "nx-cugraph=${RAPIDS_VERSION}.*,>=24.12.00a1000" + "nx-cugraph=${RAPIDS_VERSION}.*" rapids-logger "Check GPU usage" nvidia-smi diff --git a/nx_cugraph/algorithms/core.py b/nx_cugraph/algorithms/core.py index f152d0ad9..c56a679ea 100644 --- a/nx_cugraph/algorithms/core.py +++ b/nx_cugraph/algorithms/core.py @@ -46,6 +46,7 @@ def core_number(G): degree_type="bidirectional", do_expensive_check=False, ) + core_numbers = core_numbers // 2 # Added this in 24.12 (behavior changed) return G._nodearrays_to_dict(node_ids, core_numbers) From c960cbc437ba5cdc51553977b421bc6b455188b8 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Fri, 15 Nov 2024 15:45:14 -0600 Subject: [PATCH 3/3] enforce wheel size limits, README formatting in CI (#19) Contributes to https://github.com/rapidsai/build-planning/issues/110 Proposes adding 2 types of validation on wheels in CI, to ensure we continue to produce wheels that are suitable for PyPI. * checks on wheel size (compressed), - *to be sure they're under PyPI limits* - *and to prompt discussion on PRs that significantly increase wheel sizes* * checks on README formatting - *to ensure they'll render properly as the PyPI project homepages* - *e.g. like how https://github.com/scikit-learn/scikit-learn/blob/main/README.rst becomes https://pypi.org/project/scikit-learn/* Authors: - James Lamb (https://github.com/jameslamb) Approvers: - Erik Welch (https://github.com/eriknw) - Bradley Dice (https://github.com/bdice) URL: https://github.com/rapidsai/nx-cugraph/pull/19 --- ci/build_wheel_nx-cugraph.sh | 2 +- ci/validate_wheel.sh | 18 ++++++++++++++++++ pyproject.toml | 8 ++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100755 ci/validate_wheel.sh diff --git a/ci/build_wheel_nx-cugraph.sh b/ci/build_wheel_nx-cugraph.sh index 706adb793..55f9eb1ee 100755 --- a/ci/build_wheel_nx-cugraph.sh +++ b/ci/build_wheel_nx-cugraph.sh @@ -3,5 +3,5 @@ set -euo pipefail -# pkg-name pkg-dir ./ci/build_wheel.sh nx-cugraph . +./ci/validate_wheel.sh dist diff --git a/ci/validate_wheel.sh b/ci/validate_wheel.sh new file mode 100755 index 000000000..60a80fce6 --- /dev/null +++ b/ci/validate_wheel.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# Copyright (c) 2024, NVIDIA CORPORATION. + +set -euo pipefail + +wheel_dir_relative_path=$1 + +rapids-logger "validate packages with 'pydistcheck'" + +pydistcheck \ + --inspect \ + "$(echo ${wheel_dir_relative_path}/*.whl)" + +rapids-logger "validate packages with 'twine'" + +twine check \ + --strict \ + "$(echo ${wheel_dir_relative_path}/*.whl)" diff --git a/pyproject.toml b/pyproject.toml index 91a211461..300e17a7a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -153,6 +153,14 @@ exclude_lines = [ "raise NotImplementedError", ] +[tool.pydistcheck] +select = [ + "distro-too-large-compressed", +] + +# PyPI limit is 100 MiB, fail CI before we get too close to that +max_allowed_size_compressed = '75M' + [tool.ruff] # https://github.com/charliermarsh/ruff/ line-length = 88