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

Port all conda recipes to rattler-build #18054

Open
wants to merge 51 commits into
base: branch-25.04
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
c2ef5c6
Add rattler-build recipe for libcudf
gforsyth Feb 5, 2025
41bf994
Add rattler-build recipe for pylibcudf
gforsyth Feb 13, 2025
67e73d4
Add rattler-build recipe for dask-cudf
gforsyth Feb 13, 2025
b8a201b
Add rattler-build recipe for custreamz
gforsyth Feb 20, 2025
f0bd7b3
Add rattler-build recipe for cudf_kafka
gforsyth Feb 20, 2025
49c1554
Add rattler-build recipe for cudf-polars
gforsyth Feb 20, 2025
8f8f262
Add rattler-build recipe for cudf
gforsyth Feb 20, 2025
e085f3b
Update `build_python.sh` to use `rattler-build`
gforsyth Feb 20, 2025
273ebba
Fix ignore_run_export condition
gforsyth Feb 20, 2025
369277c
disable non-conda workflows
gforsyth Feb 20, 2025
806a0e4
remove cuda_version pin from compiler
gforsyth Feb 21, 2025
700d98e
fix libcufile version typo
gforsyth Feb 21, 2025
6353636
swap build and requirements ordering
gforsyth Feb 21, 2025
526cd38
add buildstringified py_version to all python recipes
gforsyth Feb 21, 2025
f277e5d
use double-quotes everywhere
gforsyth Feb 21, 2025
e78f088
fix(libcudf-tests): add missing else package
gforsyth Feb 21, 2025
892cb8d
make whitespace and newlines consistent
gforsyth Feb 21, 2025
b88ac25
ci(build_python): longname for cli args
gforsyth Feb 21, 2025
5a3e078
fix(build_python): consistently show and zero sccache stats
gforsyth Feb 21, 2025
bd084f6
fix(libcudf): disambiguate cuda11 versions for libcufile and libcurand
gforsyth Feb 21, 2025
11ca191
debug: render-only for cpp build because context seems wrong
gforsyth Feb 21, 2025
6f944c9
fix(libcudf-examples): cuda-nvtx-dev for cuda12
gforsyth Feb 21, 2025
2e16236
fix(all): wrap cuda_major and date_string in quotes
gforsyth Feb 21, 2025
075c287
(debug): turn off render-only
gforsyth Feb 21, 2025
e450344
fix(libcudf): make sure `cmake` is in `host` for `--install`
gforsyth Feb 21, 2025
a79e922
fix(libcudf): only use libcufile on linux64
gforsyth Feb 21, 2025
0420e2a
fix(libcudf): add `make` (`CMAKE_BUILD_PROGRAM` not set)
gforsyth Feb 21, 2025
23a65b7
fix(pypkgs): add `pip` to host
gforsyth Feb 24, 2025
aafe473
fix(libcudf): move `cmake` to `build`
gforsyth Feb 24, 2025
b1e3c92
fix(custreamz): update license, remove double $
gforsyth Feb 24, 2025
16d6728
fix(libcudf): fix overlinking
gforsyth Feb 26, 2025
f049b95
fix(cudf): don't overconstrain cuda-version
gforsyth Feb 26, 2025
258bbe5
fix(custreamz): add `py_version`
gforsyth Feb 26, 2025
a13d1f3
fix(pylibcudf): simplify neq syntax
gforsyth Feb 26, 2025
bb41ea3
fix(custreamz): remove unnecessary ignore_run_exports
gforsyth Feb 26, 2025
a4c06fe
refactor(libcudf): multiline yaml block for build script
gforsyth Feb 26, 2025
ba1eae2
fix(dask-cudf): remove extraneous ignore_run_export
gforsyth Feb 26, 2025
eb84ed5
fix(libcudf): remove CMAKE_INSTALL_LIBDIR arg
gforsyth Feb 26, 2025
f7fb713
refactor(all): use multiline yaml block for all script contents
gforsyth Feb 26, 2025
90f33d4
chore(cudf): update numpy and numba pins
gforsyth Feb 26, 2025
058c466
fix(py): set explicit py_version for python outputs
gforsyth Feb 26, 2025
cfcf834
fix(libcudf): allowlist `libnvidia-ml.so.1`
gforsyth Feb 26, 2025
42ece0b
chore: restore additional commented-out workflow jobs
gforsyth Feb 27, 2025
2d7b95c
fix(libcudf): resolve overlinking error
gforsyth Feb 27, 2025
e3972e9
fix(cudf-polars): bump to <1.24
gforsyth Feb 27, 2025
167b310
fix(python): prepend $CPP_CHANNEL to $RATTLER_CHANNELS
gforsyth Feb 28, 2025
29bcce7
chore: remove verbose flags
gforsyth Feb 28, 2025
5c0caff
chore: remove secrets and env from pure python packages
gforsyth Feb 28, 2025
8a6e1c4
fix(libcudf): remove cudf_ROOT argument
gforsyth Feb 28, 2025
8413cbe
fix(build_python): channel flag is a separate array element
gforsyth Feb 28, 2025
76ce12a
fix(libcudf): remove cache-busting debug line from CFLAGS and CXXFLAGS
gforsyth Feb 28, 2025
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
20 changes: 17 additions & 3 deletions ci/build_cpp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,24 @@ rapids-logger "Begin cpp build"

sccache --zero-stats

# With boa installed conda build forward to boa
RAPIDS_PACKAGE_VERSION=$(rapids-generate-version) rapids-conda-retry build \
conda/recipes/libcudf
RAPIDS_PACKAGE_VERSION=$(rapids-generate-version)
export RAPIDS_PACKAGE_VERSION

source rapids-rattler-channel-string

# --no-build-id allows for caching with `sccache`
# more info is available at
# https://rattler.build/latest/tips_and_tricks/#using-sccache-or-ccache-with-rattler-build
rattler-build build --recipe conda/recipes/libcudf \
--experimental \
--no-build-id \
--channel-priority disabled \
--output-dir "$RAPIDS_CONDA_BLD_OUTPUT_DIR" \
"${RATTLER_CHANNELS[@]}"

sccache --show-adv-stats

# remove build_cache directory
rm -rf "$RAPIDS_CONDA_BLD_OUTPUT_DIR"/build_cache

rapids-upload-conda-to-s3 cpp
105 changes: 70 additions & 35 deletions ci/build_python.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@

set -euo pipefail

rapids-configure-conda-channels

source rapids-configure-sccache

source rapids-date-string
Expand All @@ -21,51 +19,88 @@ CPP_CHANNEL=$(rapids-download-conda-from-s3 cpp)

sccache --zero-stats

# TODO: Remove `--no-test` flag once importing on a CPU
# node works correctly
# With boa installed conda build forwards to the boa builder

RAPIDS_PACKAGE_VERSION=$(head -1 ./VERSION) rapids-conda-retry build \
--no-test \
--channel "${CPP_CHANNEL}" \
conda/recipes/pylibcudf
RAPIDS_PACKAGE_VERSION=$(head -1 ./VERSION)
export RAPIDS_PACKAGE_VERSION

# populates `RATTLER_CHANNELS` array
source rapids-rattler-channel-string

rapids-logger "Prepending channel ${CPP_CHANNEL} to RATTLER_CHANNELS"

RATTLER_CHANNELS=("--channel" "${CPP_CHANNEL}" "${RATTLER_CHANNELS[@]}")

# TODO: Remove `--test skip` flag once importing on a CPU node works correctly

# --no-build-id allows for caching with `sccache`
# more info is available at
# https://rattler.build/latest/tips_and_tricks/#using-sccache-or-ccache-with-rattler-build
rattler-build build --recipe conda/recipes/pylibcudf \
--experimental \
--no-build-id \
--channel-priority disabled \
--output-dir "$RAPIDS_CONDA_BLD_OUTPUT_DIR" \
--test skip \
Comment on lines +39 to +43
Copy link
Contributor

Choose a reason for hiding this comment

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

Minor nit (totally not worth holding up this PR over): if we're going to pass basically the exact same set of rattler options to every build command across every repo (especially things like --experimental, and --channel-priority that we will presumably want to remove from every repo in concert) it seems like having rapids-rattler-channel-string also populate some standard arg set would also be helpful.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'll handle this in a follow-up, but it's a good idea.

rapidsai/build-planning#156

"${RATTLER_CHANNELS[@]}"

sccache --show-adv-stats
sccache --zero-stats

RAPIDS_PACKAGE_VERSION=$(head -1 ./VERSION) rapids-conda-retry build \
--no-test \
--channel "${CPP_CHANNEL}" \
--channel "${RAPIDS_CONDA_BLD_OUTPUT_DIR}" \
conda/recipes/cudf
rattler-build build --recipe conda/recipes/cudf \
--experimental \
--no-build-id \
--channel-priority disabled \
--output-dir "$RAPIDS_CONDA_BLD_OUTPUT_DIR" \
--test skip \
"${RATTLER_CHANNELS[@]}"

sccache --show-adv-stats
sccache --zero-stats

RAPIDS_PACKAGE_VERSION=$(head -1 ./VERSION) rapids-conda-retry build \
--no-test \
--channel "${CPP_CHANNEL}" \
--channel "${RAPIDS_CONDA_BLD_OUTPUT_DIR}" \
conda/recipes/dask-cudf
rattler-build build --recipe conda/recipes/dask-cudf \
--experimental \
--no-build-id \
--channel-priority disabled \
--output-dir "$RAPIDS_CONDA_BLD_OUTPUT_DIR" \
--test skip \
"${RATTLER_CHANNELS[@]}"

sccache --show-adv-stats
sccache --zero-stats

rattler-build build --recipe conda/recipes/cudf_kafka \
--experimental \
--no-build-id \
--channel-priority disabled \
--output-dir "$RAPIDS_CONDA_BLD_OUTPUT_DIR" \
--test skip \
"${RATTLER_CHANNELS[@]}"

sccache --show-adv-stats
sccache --zero-stats

rattler-build build --recipe conda/recipes/custreamz \
--experimental \
--no-build-id \
--channel-priority disabled \
--output-dir "$RAPIDS_CONDA_BLD_OUTPUT_DIR" \
--test skip \
"${RATTLER_CHANNELS[@]}"

sccache --show-adv-stats
sccache --zero-stats

RAPIDS_PACKAGE_VERSION=$(head -1 ./VERSION) rapids-conda-retry build \
--no-test \
--channel "${CPP_CHANNEL}" \
--channel "${RAPIDS_CONDA_BLD_OUTPUT_DIR}" \
conda/recipes/cudf_kafka
rattler-build build --recipe conda/recipes/cudf-polars \
--experimental \
--no-build-id \
--channel-priority disabled \
--output-dir "$RAPIDS_CONDA_BLD_OUTPUT_DIR" \
--test skip \
"${RATTLER_CHANNELS[@]}"

sccache --show-adv-stats

RAPIDS_PACKAGE_VERSION=$(head -1 ./VERSION) rapids-conda-retry build \
--no-test \
--channel "${CPP_CHANNEL}" \
--channel "${RAPIDS_CONDA_BLD_OUTPUT_DIR}" \
conda/recipes/custreamz

RAPIDS_PACKAGE_VERSION=$(head -1 ./VERSION) rapids-conda-retry build \
--no-test \
--channel "${CPP_CHANNEL}" \
--channel "${RAPIDS_CONDA_BLD_OUTPUT_DIR}" \
conda/recipes/cudf-polars
# remove build_cache directory
rm -rf "$RAPIDS_CONDA_BLD_OUTPUT_DIR"/build_cache

rapids-upload-conda-to-s3 python
4 changes: 0 additions & 4 deletions conda/recipes/cudf-polars/build.sh

This file was deleted.

61 changes: 0 additions & 61 deletions conda/recipes/cudf-polars/meta.yaml

This file was deleted.

68 changes: 68 additions & 0 deletions conda/recipes/cudf-polars/recipe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json
# Copyright (c) 2018-2025, NVIDIA CORPORATION.
schema_version: 1

context:
version: ${{ env.get("RAPIDS_PACKAGE_VERSION") }}
minor_version: ${{ (version | split("."))[:2] | join(".") }}
cuda_version: ${{ (env.get("RAPIDS_CUDA_VERSION") | split("."))[:2] | join(".") }}
cuda_major: '${{ (env.get("RAPIDS_CUDA_VERSION") | split("."))[0] }}'
date_string: '${{ env.get("RAPIDS_DATE_STRING") }}'
py_version: ${{ env.get("RAPIDS_PY_VERSION") }}
py_buildstring: ${{ py_version | version_to_buildstring }}
head_rev: ${{ git.head_rev(".")[:8] }}

package:
name: cudf-polars
version: ${{ version }}

source:
path: ../../..

build:
string: cuda${{ cuda_major }}_py${{ py_buildstring }}_${{ date_string }}_${{ head_rev }}
script:
content: |
./build.sh cudf_polars
secrets:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_SESSION_TOKEN
env:
CMAKE_C_COMPILER_LAUNCHER: ${{ env.get("CMAKE_C_COMPILER_LAUNCHER") }}
CMAKE_CUDA_COMPILER_LAUNCHER: ${{ env.get("CMAKE_CUDA_COMPILER_LAUNCHER") }}
CMAKE_CXX_COMPILER_LAUNCHER: ${{ env.get("CMAKE_CXX_COMPILER_LAUNCHER") }}
CMAKE_GENERATOR: ${{ env.get("CMAKE_GENERATOR") }}
SCCACHE_BUCKET: ${{ env.get("SCCACHE_BUCKET") }}
SCCACHE_IDLE_TIMEOUT: ${{ env.get("SCCACHE_IDLE_TIMEOUT") }}
SCCACHE_REGION: ${{ env.get("SCCACHE_REGION") }}
SCCACHE_S3_USE_SSL: ${{ env.get("SCCACHE_S3_USE_SSL") }}
SCCACHE_S3_NO_CREDENTIALS: ${{ env.get("SCCACHE_S3_NO_CREDENTIALS") }}
SCCACHE_S3_KEY_PREFIX: cudf-polars-${{ env.get("RAPIDS_CONDA_ARCH") }}

requirements:
host:
- python =${{ py_version }}
- pip
- rapids-build-backend >=0.3.0,<0.4.0.dev0
- setuptools
- cuda-version =${{ cuda_version }}
run:
- python
- pylibcudf =${{ version }}
- polars >=1.20,<1.24
- ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="x") }}
ignore_run_exports:
by_name:
- cuda-version

tests:
- python:
imports:
- cudf_polars
pip_check: false

about:
homepage: ${{ load_from_file("python/cudf_polars/pyproject.toml").project.urls.Homepage }}
license: ${{ load_from_file("python/cudf_polars/pyproject.toml").project.license.text }}
summary: ${{ load_from_file("python/cudf_polars/pyproject.toml").project.description }}
4 changes: 0 additions & 4 deletions conda/recipes/cudf/build.sh

This file was deleted.

Loading
Loading