Skip to main content

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
  • Modifying the package name to include a CUDA suffix (e.g. "rmm" -> "rmm-cu12")
  • Updating the git commit embedded in the importable package.

Supported builders

The project is known to support the following builders:

  • scikit-build-core
  • setuptools

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 in pyproject.toml
  • -C / --config-settings passed to tools like build and pip
    • (prefixed with rapidsai., e.g. pip wheel -C rapidsai.disable=cuda=true .)
  • environment variables
    • (prefixed with RAPIDS_, e.g. RAPIDS_DISABLE_CUDA=true pip wheel .)

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",
]

Metadata

Release files for rapids-build-backend 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for rapids-build-backend 0.4.1
File Interpreter ABI Platform
rapids_build_backend-0.4.1-py3-none-any.whl Python 3 none any Details

Release files / rapids_build_backend-0.4.1-py3-none-any.whl

Download URL rapids_build_backend-0.4.1-py3-none-any.whl
Size 14.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
766840e5edba37f7491657a9db153ae0d9af67a3f9f17cd2290749bd62641657
BLAKE2b-256 checksum
How to use checksums
b45938ef986f563b0497fa82fdca361c5e274b321638eaa6925c15a9e098ae02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.4.1 This release

1 release file

0.3.4

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.1

1 release file

0.1.0

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page