Skip to content
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

Adds updates to build conda packages and CI testing for cugraph-nx #3793

Merged
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
d99c385
Adds initial (untested) updates to add conda and pip packaging for cu…
rlratzel Aug 15, 2023
ec8700b
Updates NetworkX dependency to >=3.0
rlratzel Aug 16, 2023
179e0cb
Merge remote-tracking branch 'upstream/branch-23.10' into branch-23.1…
rlratzel Aug 21, 2023
1b5cfb5
Adds conda env files that were (accidentally?) removed in a prior com…
rlratzel Aug 21, 2023
156dd5e
Updates cugraph-nx test deps to add packaging, updates nx version in …
rlratzel Aug 21, 2023
85f7c88
Initial update to CI scripts for new cugraph-nx packages.
rlratzel Aug 21, 2023
83900a0
Adds common testing packages to cugraph-nx pip test deps.
rlratzel Aug 21, 2023
3aa6826
Merge remote-tracking branch 'upstream/branch-23.10' into branch-23.1…
rlratzel Aug 21, 2023
6a19b8b
Merge remote-tracking branch 'upstream/branch-23.10' into branch-23.1…
rlratzel Aug 21, 2023
aa765d4
Adds scipy to pylibcugraph tests deps.
rlratzel Aug 21, 2023
633f397
Updates to allow tests to run using networkx >=3.0,<3.2
rlratzel Aug 22, 2023
83306ec
Merge remote-tracking branch 'upstream/branch-23.10' into branch-23.1…
rlratzel Aug 22, 2023
9cc09d8
Updates update-version.sh to also update cugraph-nx, adds missing dev…
rlratzel Aug 23, 2023
10fd1ff
Merge remote-tracking branch 'upstream/branch-23.10' into branch-23.1…
rlratzel Aug 23, 2023
f42be09
Added hack to also install CUDA 11 artifacts in CUDA 12 runs so the C…
rlratzel Aug 23, 2023
e25a051
Merge remote-tracking branch 'upstream/branch-23.10' into branch-23.1…
rlratzel Aug 23, 2023
1fcf62e
Undoes hack to install CUDA 11 artifacts in CUDA 12 test envs and ins…
rlratzel Aug 23, 2023
2e70580
Fixes and clarifies comments.
rlratzel Aug 23, 2023
ee8b58a
Changes module path codecov uses in run_nx_tests.sh, adds comment and…
rlratzel Aug 23, 2023
8108e3e
Adds scipy and pandas to common python test deps since all python pro…
rlratzel Aug 23, 2023
4791948
Removes unnecessary blank lines.
rlratzel Aug 23, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions conda/environments/all_cuda-118_arch-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ dependencies:
- nbsphinx
- nccl>=2.9.9
- networkx>=2.5.1
- networkx>=3.0
Comment on lines 40 to +41
Copy link
Contributor Author

@rlratzel rlratzel Aug 21, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rapids-dependency-file-generator is including both the networkx version used by cugraph-nx, and the less-restrictive version independently used by other cugraph packages. This did not seem to be a problem when testing the env files (mamba installed networkx version 3.1).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is fine for the solvers, and I think should be fine for us. I use this environment to develop cugraph-nx, so--as we discussed before--we just have to make sure the minimum nx version for cugraph-nx is also supported by the other cugraph packages and all other packages in the environment. I don't expect this to be a nuisance.

- ninja
- notebook>=0.5.0
- numba>=0.57
Expand All @@ -53,6 +54,7 @@ dependencies:
- pytest
- pytest-benchmark
- pytest-cov
- pytest-mpl
- pytest-xdist
- python-louvain
- raft-dask==23.10.*
Expand Down
2 changes: 2 additions & 0 deletions conda/environments/all_cuda-120_arch-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ dependencies:
- nbsphinx
- nccl>=2.9.9
- networkx>=2.5.1
- networkx>=3.0
- ninja
- notebook>=0.5.0
- numba>=0.57
Expand All @@ -52,6 +53,7 @@ dependencies:
- pytest
- pytest-benchmark
- pytest-cov
- pytest-mpl
- pytest-xdist
- python-louvain
- raft-dask==23.10.*
Expand Down
7 changes: 7 additions & 0 deletions conda/recipes/cugraph-nx/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/usr/bin/env bash

# Copyright (c) 2023, NVIDIA CORPORATION.

# This assumes the script is executed from the root of the repo directory

./build.sh cugraph-nx
38 changes: 38 additions & 0 deletions conda/recipes/cugraph-nx/meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Copyright (c) 2023, NVIDIA CORPORATION.

{% set version = environ.get('GIT_DESCRIBE_TAG', '0.0.0.dev').lstrip('v') %}
{% set minor_version = version.split('.')[0] + '.' + version.split('.')[1] %}
{% set py_version = environ['CONDA_PY'] %}
{% set date_string = environ['RAPIDS_DATE_STRING'] %}

package:
name: cugraph-nx
version: {{ version }}

source:
git_url: ../../..

build:
number: {{ GIT_DESCRIBE_NUMBER }}
build:
number: {{ GIT_DESCRIBE_NUMBER }}
string: py{{ py_version }}_{{ date_string }}_{{ GIT_DESCRIBE_HASH }}_{{ GIT_DESCRIBE_NUMBER }}

requirements:
host:
- python
run:
- pylibcugraph ={{ version }}
- networkx >=3.1
rlratzel marked this conversation as resolved.
Show resolved Hide resolved
- cupy >=12.0.0
- python

tests:
imports:
- cugraph_nx

rlratzel marked this conversation as resolved.
Show resolved Hide resolved
about:
home: https://rapids.ai/
license: Apache-2.0
license_file: ../../../LICENSE
summary: cuGraph backend for GPU-accelerated NetworkX
rlratzel marked this conversation as resolved.
Show resolved Hide resolved
65 changes: 57 additions & 8 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,14 @@ files:
- python_build_cythonize
- python_run_cugraph
- python_run_pylibcugraph
- python_run_cugraph_nx
- python_run_cugraph_dgl
- python_run_cugraph_pyg
- test_notebook
- test_python_common
- test_python_cugraph
- test_python_pylibcugraph
- test_python_cugraph_nx
checks:
output: none
includes:
Expand Down Expand Up @@ -103,6 +105,32 @@ files:
includes:
- test_python_common
- test_python_pylibcugraph


py_build_cugraph_nx:
output: pyproject
pyproject_dir: python/cugraph-nx
extras:
table: build-system
includes:
- python_build_wheel
py_run_cugraph_nx:
output: pyproject
pyproject_dir: python/cugraph-nx
extras:
table: project
includes:
- python_run_cugraph_nx
py_test_cugraph_nx:
output: pyproject
pyproject_dir: python/cugraph-nx
extras:
table: project.optional-dependencies
key: test
includes:
- test_python_cugraph_nx


py_build_cugraph_dgl:
output: pyproject
pyproject_dir: python/cugraph-dgl
Expand Down Expand Up @@ -166,9 +194,6 @@ files:
table: project.optional-dependencies
key: test
includes:
# TODO: I think that the contents of the server's pyproject.toml
# dependencies were just copied from cugraph, so I'm not sure if this
# list is really minimal or if it is a superset.
- test_python_common
- test_python_cugraph
cugraph_dgl_dev:
Expand Down Expand Up @@ -340,13 +365,29 @@ dependencies:
- output_types: pyproject
packages:
- &cupy_pip cupy-cuda11x>=12.0.0
- pylibcugraph==23.10.*
- &pylibcugraph pylibcugraph==23.10.*
python_run_pylibcugraph:
common:
- output_types: [conda, pyproject]
packages:
- *pylibraft
- *rmm


python_run_cugraph_nx:
common:
- output_types: [conda, pyproject]
packages:
- networkx>=3.0
- output_types: conda
packages:
- *cupy
- output_types: pyproject
packages:
- *cupy_pip
- *pylibcugraph


python_run_cugraph_dgl:
common:
- output_types: [conda, pyproject]
Expand Down Expand Up @@ -422,14 +463,10 @@ dependencies:
common:
- output_types: [conda, pyproject]
packages:
- networkx>=2.5.1
- *numpy
- pandas
- pytest
- pytest-benchmark
- pytest-cov
- pytest-xdist
- scipy
test_python_cugraph:
common:
- output_types: [conda, pyproject]
Expand All @@ -438,14 +475,26 @@ dependencies:
# cudf will use fsspec but is protocol independent. cugraph tests
# specifically require http for the test files it asks cudf to read.
- fsspec[http]>=0.6.0
- networkx>=2.5.1
- *numpy
- pandas
- python-louvain
- requests
- scikit-learn>=0.23.1
- scipy
test_python_pylibcugraph:
common:
- output_types: [conda, pyproject]
packages:
- *cudf
- *numpy
- pandas
test_python_cugraph_nx:
common:
- output_types: [conda, pyproject]
packages:
# required for running networkx tests
- pytest-mpl
cugraph_dgl_dev:
common:
- output_types: [conda]
Expand Down
8 changes: 3 additions & 5 deletions python/cugraph-nx/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,14 @@ classifiers = [
]
dependencies = [
"cupy-cuda11x>=12.0.0",
"networkx>=3.0",
"pylibcugraph==23.10.*",
"networkx >=3.0",
]
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.

[project.optional-dependencies]
rlratzel marked this conversation as resolved.
Show resolved Hide resolved
test = [
"pytest",
"pytest-benchmark",
"pytest-mpl",
]
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.

[project.urls]
Homepage = "https://github.com/rapidsai/cugraph"
Expand Down
2 changes: 0 additions & 2 deletions python/pylibcugraph/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,12 @@ classifiers = [
[project.optional-dependencies]
test = [
"cudf==23.10.*",
"networkx>=2.5.1",
"numpy>=1.21",
"pandas",
"pytest",
"pytest-benchmark",
"pytest-cov",
"pytest-xdist",
"scipy",
rlratzel marked this conversation as resolved.
Show resolved Hide resolved
] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.

[project.urls]
Expand Down