Skip to content

refactor: build wheels and conda packages using Python limited API - #21329

Merged
rapids-bot[bot] merged 21 commits into
NVIDIA:mainfrom
gforsyth:limited_api
Feb 5, 2026
Merged

refactor: build wheels and conda packages using Python limited API#21329
rapids-bot[bot] merged 21 commits into
NVIDIA:mainfrom
gforsyth:limited_api

Conversation

@gforsyth

@gforsyth gforsyth commented Feb 4, 2026

Copy link
Copy Markdown
Contributor

General testing done in #20974

Opening a new PR to not disrupt any ongoing downstream testing using artifacts from the original draft PRs.

Resolves #20974

xref rapidsai/build-planning#42

Ops-Bot-Merge-Barrier: true

@copy-pr-bot

copy-pr-bot Bot commented Feb 4, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@gforsyth gforsyth added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Feb 4, 2026
@gforsyth

gforsyth commented Feb 4, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test

@gforsyth

gforsyth commented Feb 4, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test

@gforsyth

gforsyth commented Feb 4, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test

@gforsyth
gforsyth marked this pull request as ready for review February 5, 2026 15:59
@gforsyth
gforsyth requested review from a team as code owners February 5, 2026 15:59
@gforsyth
gforsyth requested review from AyodeAwe and jameslamb and removed request for AyodeAwe February 5, 2026 15:59

@jameslamb jameslamb left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

A few small suggestions, mostly cosmetic, but overall looks great! I spot-checked CI jobs and their logs and saw all the things I'd expect and nothing I didn't 😁

Comment thread build.sh Outdated
Comment thread build.sh Outdated

# If `RAPIDS_PY_VERSION` is set, use that as the lower-bound for the stable ABI CPython version
# This is only applied to pylibcudf, cudf, and cudf_kafka, not other Python packages
PYTHON_ARGS_WITH_PY_API=("${PYTHON_ARGS_FOR_INSTALL[@]}")

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Very minor comment, but instead of switching which list is used, I think it'd be a little easier to follow this if you did something like this:

PY_API_ARGS=()
if [ -n "${RAPIDS_PY_VERSION}" ]; then
    RAPIDS_PY_API="cp${RAPIDS_PY_VERSION//./}"
    PY_API_ARGS+=("--config-settings" "skbuild.wheel.py-api=${RAPIDS_PY_API}")
fi

And then every install call gets PYTHON_ARGS_FOR_INSTALL, and only the ones that link against Python also get PY_API_ARGS.

Like this (pseudocode with cmake stuff and if statements removed):

# pylibcudf
python -m pip install \
    "${PYTHON_ARGS_FOR_INSTALL[@]}" \
    "${PY_API_ARGS[@]}" \
    .

# cudf-polars
python -m pip install \
    "${PYTHON_ARGS_FOR_INSTALL[@]}" \
    .

Would you consider that?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

yeah, can definitely do that

Comment thread build.sh Outdated
Comment on lines +77 to +82
"-m"
"pip"
"install"
"--no-build-isolation"
"--no-deps"
"--config-settings" "rapidsai.disable-cuda=true"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
"-m"
"pip"
"install"
"--no-build-isolation"
"--no-deps"
"--config-settings" "rapidsai.disable-cuda=true"
--no-build-isolation
--no-deps
--config-settings="rapidsai.disable-cuda=true"

Could we put the -m pip install back on each of the install lines? Similar to my suggestion from NVIDIA/raft#2943 (comment)

Comment thread conda/recipes/cudf/recipe.yaml Outdated
@gforsyth

gforsyth commented Feb 5, 2026

Copy link
Copy Markdown
Contributor Author

/merge

@rapids-bot
rapids-bot Bot merged commit b441c77 into NVIDIA:main Feb 5, 2026
112 of 113 checks passed
@gforsyth
gforsyth deleted the limited_api branch February 5, 2026 22:16
galipremsagar pushed a commit to galipremsagar/cudf that referenced this pull request Feb 7, 2026
…VIDIA#21329)

General testing done in NVIDIA#20974

Opening a new PR to not disrupt any ongoing downstream testing using artifacts from the original draft PRs.

Resolves NVIDIA#20974 

xref rapidsai/build-planning#42

Ops-Bot-Merge-Barrier: true

Authors:
  - Gil Forsyth (https://github.com/gforsyth)

Approvers:
  - James Lamb (https://github.com/jameslamb)

URL: NVIDIA#21329
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improvement / enhancement to an existing function non-breaking Non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants