Custom PEP517 builder for RAPIDS
Project description
RAPIDS PEP517 build backend
rapids-build-backend is an adapter around PEP517 builders that provides support for key RAPIDS requirements.
The package's primary purpose is to automate the various bits of preprocessing that are typically done to RAPIDS package metadata prior to publishing packages.
It is responsible for the following:
- Determining the correct dependencies for the package, based on the target CUDA version and architecture
- by running
rapids-dependency-file-generator
- by running
- Modifying the package name to include a CUDA suffix (e.g.
"rmm" -> "rmm-cu11") - Updating the git commit embedded in the importable package.
Supported builders
The project is known to support the following builders:
scikit-build-coresetuptools
Supported configuration
rapids-build-backend exposes configuration for skipping or modifying behaviors that might be desirable only in some scenarios (e.g. wheel vs conda builds vs editable installs).
Any option without a default is required.
| Option | Definition | Type | Default | Supports dynamic modification |
|---|---|---|---|---|
build-backend |
The wrapped build backend (e.g. setuptools.build_meta) |
string | N | |
commit-files |
List of files in which to write the git commit hash | list[str] | ["<project_name>/GIT_COMMIT"] | N |
dependencies-file |
The path to the dependencies.yaml file to use |
string | "dependencies.yaml" | Y |
disable-cuda |
If true, CUDA version in build environment is ignored when setting package name and dependencies | bool | false | Y |
matrix-entry |
A ;-separated list of =-delimited key/value pairs |
string | "" | Y |
requires |
List of build requirements (in addition to build-system.requires) |
list[str] | [] | N |
This configuration can be provided via the following mechanisms:
[tool.rapids-build-backend]table inpyproject.toml-C / --config-settingspassed to tools likebuildandpip- (prefixed with
rapidsai., e.g.pip wheel -C rapidsai.disable=cuda=true .)
- (prefixed with
- environment variables
- (prefixed with
RAPIDS_, e.g.RAPIDS_DISABLE_CUDA=true pip wheel .)
- (prefixed with
setuptools support
This project supports builds using setuptools.build_meta as their build backend, and which use a setup.py for configuration.
However, it does not support passing a list of dependencies through setup_requires to setuptools.setup().
If you're interested in using setuptools.build_meta and a setup.py, pass a list of dependencies that need to be installed prior to setup.py running through rapids-build-backend's requirements, like this:
[project]
build-backend = "rapids_build_backend.build"
requires = [
"rapids-build-backend",
"setuptools"
]
[tool.rapids-build-backend]
build-backend = "setuptools.build_meta"
requires = [
"Cython"
]
Other build dependencies
When using rapids-build-backend, the [build-system] table in pyproject.toml should only include rapids-build-backend and the library providing the build backend it wraps.
For example:
[build-system]
build-backend = "rapids_build_backend.build"
requires = [
"rapids-build-backend>=0.3.0,<0.4.0dev0",
"setuptools>=64.0.0",
]
Any other build-time dependencies should be provided via requires in the [tool.rapids-build-backend] table.
For example:
[tool.rapids-build-backend]
build-backend = "setuptools.build_meta"
dependencies-file = "dependencies.yaml"
requires = [
"cython>=3.0.0",
]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rapids_build_backend_metax-0.3.3.2.tar.gz.
File metadata
- Download URL: rapids_build_backend_metax-0.3.3.2.tar.gz
- Upload date:
- Size: 19.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7afcc52a46c67863cce3d47cc9ac2ddf26ee5cd1b91054f5bb072677c788b3ac
|
|
| MD5 |
edf29b980c1da3dd375f8765b7da0e54
|
|
| BLAKE2b-256 |
d1264509ec3b0e63e5868017cfc0746f0cff8f36e40c8b111badcf1abee57db8
|
File details
Details for the file rapids_build_backend_metax-0.3.3.2-py3-none-any.whl.
File metadata
- Download URL: rapids_build_backend_metax-0.3.3.2-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ca6844f92d2f0979920e2fcb9f08319fdb1b52204baea698f16d42182796e82
|
|
| MD5 |
16c39c90391f1f66998a5f68842103e2
|
|
| BLAKE2b-256 |
d6c7d2bc3d926bcbd66abb731707361d546f30e84673d0a79cf19628baac18fd
|