-
Notifications
You must be signed in to change notification settings - Fork 199
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
Add wheel builds #1013
Merged
Merged
Add wheel builds #1013
Changes from 122 commits
Commits
Show all changes
125 commits
Select commit
Hold shift + click to select a range
76579a2
Add initial cibuildwheel workflow
sevagh d7c324d
Build and test ARM64 wheels for RAFT
sevagh 30bfe95
Ignore cibw local wheelhouse dir
sevagh f06f82d
Adjust cupy install for ARM smoketest
sevagh bc710ef
DRY wheel workflow with unit tests
sevagh 86a10d0
Install tests for skbuild
sevagh db9feed
Override libraft install pattern
sevagh 8fb1658
Run CPP unit tests with _venv_placeholder
sevagh d0b767c
Install libgtest-dev before running googletests
sevagh ade4feb
Install gtest_main during SKBUILD
sevagh 005373b
Also install gtest
sevagh 36e6336
Install libs for testing
sevagh d07214f
Debug stub issue
sevagh 532391e
Allow unit tests to fail for now
sevagh 2ddc9ea
Install test deps
sevagh 26bf9cb
Install more test deps
sevagh a6f5a15
Add one more test dependency, dask-cuda, for pyraft
sevagh 19a2687
Add one more test dependency, dask dataframe, for pyraft
sevagh 719d030
Switch from -cuda11 to -cu11 suffix
sevagh 876aae9
Remove || true from test command
sevagh 02b5374
get raft wheels building
trxcllnt ae5eca6
fix rpath
trxcllnt beeb03a
remove unused code
trxcllnt 61452d3
update github action to only build pylibraft and raft-dask wheels
trxcllnt 070fe21
set include_package_data=True for scikit-build
trxcllnt 60b67ea
copy all UCX libs into the wheel if we can (commented out for now, wi…
trxcllnt 1dbcbaf
put all vars on one line, use rapidsai actions
trxcllnt 42d625d
update cibw-test-command for new paths
trxcllnt 0f8923e
align setup.py install_requires with the conda meta.yml dependencies
trxcllnt aac877d
add nccl pytest mark
trxcllnt a1b27a2
fix raft_dask smoketest
trxcllnt 4510018
Use updated workflow syntax
sevagh 6ea075e
Try in ubuntu18.04/gcc 8
sevagh 096b8db
Remove repeated keyword
sevagh f85dc5e
Build in 2_31
sevagh f471f7f
Go back to manylinux2014
sevagh 75089c0
rapids-cmake PR #276 fixes this
sevagh 2bf4e1c
Typo: RAPID_ -> RAPIDS_
sevagh c64aa21
Can't have pylibcugraph in pyproject.toml yet
sevagh 07c5e91
Add versioneer overrides to 22.10.00a
sevagh dca3361
Testing build-tag incrementer
sevagh 12128ca
Manually set -1- build tag
sevagh ee3ae98
Merge remote-tracking branch 'upstream/branch-22.10' into feat/cibuil…
sevagh f9d11ce
Bump build-tag and add LICENSE files
sevagh 499532e
Merge remote-tracking branch 'upstream/branch-22.10' into feat/cibuil…
vyasr 2b0c8bc
Bump wheel tag.
vyasr 316f038
Bump wheel tag.
vyasr 63b5774
Add concurrency rules so that prior runs are canceled.
vyasr 21d000e
Install dask-cuda from main branch.
vyasr b9dba9e
Update dask-cuda requirement in setup.py.
vyasr ac98942
Update build tag.
vyasr f04fd3d
Also pin distributed.
vyasr 8ef89f0
Fix pip install from git syntax
sevagh 993fe68
Update build tag
sevagh 453706c
Abuse dask-cuda to get the installation that we need...
vyasr 0687ef2
Update build tag.
vyasr 37fc441
Fix cloning logic.
vyasr 0c46ee1
Clone with https.
vyasr 3c920af
Add quotes.
vyasr 5cf9c67
Don't try to clone and install multiple times.
vyasr 535c735
Bump build tag.
vyasr 6cfb1f5
Add missing semicolon.
vyasr 6ebe313
Install for all Python versions.
vyasr 536f412
Add ucx-py to install_requires.
vyasr 32480a4
Install dask-cuda the nice way.
vyasr 086bbed
Add missing f string.
vyasr 436e0a3
Bump build tag.
vyasr 8a55ff9
Fix versioning scheme for ucx-py.
vyasr 0adcf56
Bump build.
vyasr cc9473d
Install ucx-py before test.
vyasr 259c7bd
Use a newer manylinux to test raft-dask so that ucx-py can be installed.
vyasr 0ce316b
Remove version pinning for ucx-py.
vyasr 7a411c9
Centralized logic in used workflow.
vyasr 9ca5fd9
Also remove PIP_INDEX_URL.
vyasr f31e82f
Bump build tag
sevagh 8beee98
Bump build tags for x86_64 runners
sevagh d49ecff
Bump build tags for x86_64 runners
sevagh 9c2c883
Clean rebuild for stable version 22.10.00
sevagh a86a4e0
Install pylibraft before testing raft-dask
sevagh 38bb5b7
Merge remote-tracking branch 'origin/branch-22.12' into feat/cibuildw…
vyasr 0e50636
Some cleanup of old wheels logic.
vyasr c32dd5f
Remove license files.
vyasr b39e96d
Symlink licenses.
vyasr 70ef0ea
Minimize diffs.
vyasr 358bf6e
Update to latest wheels workflow syntax.
vyasr 77d7d34
Add testing requirements in extras_requires and use in wheels workflows.
vyasr 9b0d05c
Test commit.
vyasr 5806a56
Undo test commit.
vyasr b918224
Update cuda-python version.
vyasr 0a3a909
Try to remove some pieces that might be preventing dependency install…
vyasr 3f3dec5
Undo removal and add in setup_requires.
vyasr 237cd60
Remove redundant rmm entry in install_requires.
vyasr 70259f3
Make sure rpaths are set correctly for cluster.
vyasr a12579e
Add cuda-python back to install_requires.
vyasr b8ae254
Also have rmm at install time.
vyasr de8c4c6
Add back exxplicit installation of dependencies for now.
vyasr 0d3112b
Add nccl mark.
vyasr c17ed22
Fix cuda suffixes.
vyasr ec8e770
Fix pylibraft version.
vyasr d155414
Hardcode concurrency rule.
vyasr b4203ec
Get rid of setup_requires using modern PEP 517 backend.
vyasr ff7ce81
Get rid of manual installations in wheels.yml.
vyasr e8098b2
Whitespace cleanup.
vyasr a5d6d3f
Temporarily remove suffix for ucx-py.
vyasr 59e62d0
Fix CMake option description.
vyasr 1d983ae
Revert "Temporarily remove suffix for ucx-py."
vyasr f6ff85d
Fix versioneer versions for nightlies.
vyasr 7ab6503
Add versioneer to pyproject.toml.
vyasr 2790bfc
Replace calls to dlsym functions with actual functions.
vyasr 7164f9a
Get rid of internal dlopen-based APIs.
vyasr 2c92fe6
Inline trivial ucp function call.
vyasr 84f83c9
Remove now extraneous typedefs.
vyasr 617059f
Update comment.
vyasr d849000
Remove dlfcn header.
vyasr f3466c7
Add ucx to the link interface of libraft.
vyasr 889b78a
Fix typo in project name.
vyasr 6709291
Add a new distributed component for ucx.
vyasr 64d7bde
Merge remote-tracking branch 'origin/branch-22.12' into feat/cibuildw…
vyasr 3f14ff8
Add sklearn to test requirements.
vyasr a42815c
Add missing associated targets.
vyasr 8018cef
Merge branch 'make_ucx_explicit' into feat/cibuildwheel
vyasr 1749e7a
Merge remote-tracking branch 'origin/branch-22.12' into feat/cibuildw…
vyasr cc14d4e
Remove PR builds.
vyasr 1a2e5ea
Remove incorrect license links.
vyasr e10d0fc
Fix license links.
vyasr File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
name: RAFT wheels | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'pull-request/[0-9]+' | ||
workflow_call: | ||
inputs: | ||
versioneer-override: | ||
type: string | ||
default: '' | ||
build-tag: | ||
type: string | ||
default: '' | ||
branch: | ||
required: true | ||
type: string | ||
date: | ||
required: true | ||
type: string | ||
sha: | ||
required: true | ||
type: string | ||
build-type: | ||
type: string | ||
default: nightly | ||
|
||
concurrency: | ||
group: "raft-${{ github.workflow }}-${{ github.ref }}" | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
pylibraft-wheel: | ||
uses: rapidsai/shared-action-workflows/.github/workflows/wheels-manylinux.yml@main | ||
with: | ||
repo: rapidsai/raft | ||
|
||
build-type: ${{ inputs.build-type || 'pull-request' }} | ||
branch: ${{ inputs.branch }} | ||
sha: ${{ inputs.sha }} | ||
date: ${{ inputs.date }} | ||
|
||
package-dir: python/pylibraft | ||
package-name: pylibraft | ||
|
||
python-package-versioneer-override: ${{ inputs.versioneer-override }} | ||
python-package-build-tag: ${{ inputs.build-tag }} | ||
|
||
skbuild-configure-options: "-DRAFT_BUILD_WHEELS=ON -DDETECT_CONDA_ENV=OFF -DFIND_RAFT_CPP=OFF" | ||
|
||
test-extras: test | ||
test-unittest: "python -m pytest -v ./python/pylibraft/pylibraft/test" | ||
secrets: inherit | ||
raft-dask-wheel: | ||
needs: pylibraft-wheel | ||
uses: rapidsai/shared-action-workflows/.github/workflows/wheels-manylinux.yml@main | ||
with: | ||
repo: rapidsai/raft | ||
|
||
build-type: ${{ inputs.build-type || 'pull-request' }} | ||
branch: ${{ inputs.branch }} | ||
sha: ${{ inputs.sha }} | ||
date: ${{ inputs.date }} | ||
|
||
package-dir: python/raft-dask | ||
package-name: raft_dask | ||
|
||
python-package-versioneer-override: ${{ inputs.versioneer-override }} | ||
python-package-build-tag: ${{ inputs.build-tag }} | ||
|
||
skbuild-configure-options: "-DRAFT_BUILD_WHEELS=ON -DDETECT_CONDA_ENV=OFF -DFIND_RAFT_CPP=OFF" | ||
|
||
test-extras: test | ||
test-unittest: "python -m pytest -v ./python/raft-dask/raft_dask/test" | ||
secrets: inherit |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -49,3 +49,6 @@ _skbuild | |
|
||
## doxygen build check inside ci/checks/style.sh | ||
doxygen_check/ | ||
|
||
## cibuildwheel | ||
/wheelhouse |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
LICENSE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# Copyright (c) 2022, NVIDIA CORPORATION. | ||
|
||
"""Custom build backend for pylibraft to get versioned requirements. | ||
|
||
Based on https://setuptools.pypa.io/en/latest/build_meta.html | ||
""" | ||
import os | ||
from functools import wraps | ||
|
||
from setuptools import build_meta as _orig | ||
|
||
# Alias the required bits | ||
build_wheel = _orig.build_wheel | ||
build_sdist = _orig.build_sdist | ||
|
||
|
||
def replace_requirements(func): | ||
@wraps(func) | ||
def wrapper(config_settings=None): | ||
orig_list = getattr(_orig, func.__name__)(config_settings) | ||
append_list = [ | ||
f"rmm{os.getenv('RAPIDS_PY_WHEEL_CUDA_SUFFIX', default='')}" | ||
] | ||
return orig_list + append_list | ||
|
||
return wrapper | ||
|
||
|
||
get_requires_for_build_wheel = replace_requirements( | ||
_orig.get_requires_for_build_wheel | ||
) | ||
get_requires_for_build_sdist = replace_requirements( | ||
_orig.get_requires_for_build_sdist | ||
) | ||
get_requires_for_build_editable = replace_requirements( | ||
_orig.get_requires_for_build_editable | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -44,8 +44,3 @@ skip= | |
build | ||
dist | ||
__init__.py | ||
|
||
[options] | ||
packages = find: | ||
install_requires = numpy | ||
python_requires = >=3.7,<3.9 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
LICENSE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,5 +21,4 @@ requires = [ | |
"scikit-build>=0.13.1", | ||
"cmake>=3.23.1,!=3.25.0", | ||
"ninja", | ||
"pylibraft" | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
We don't have the GPU resources currently to run the build / test workflows on every pull request. We'll need to either run a reduced build / test matrix for PRs or configure this workflow to run on a different event type.
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.
I've been waiting for each PR to get approved before removing this so that everything up to the final set of changes is tested. Since it looks like we're ready I'll go ahead and update.