From be7db03b32404fc86112d62373f47cf6b9e83651 Mon Sep 17 00:00:00 2001 From: Michael Wang Date: Fri, 22 May 2026 15:26:31 -0700 Subject: [PATCH 1/2] Use conda-forge release flow for conda packages --- .github/workflows/conda-python-build.yaml | 8 -- .github/workflows/publish.yaml | 45 ++++++-- CONTRIBUTING.md | 5 +- ci/build_conda_python.sh | 5 +- ci/test_conda_python.sh | 13 ++- ci/upload_conda.sh | 14 --- conda/recipe/build-astcanopy.sh | 30 +++++ conda/recipe/build-numbast.sh | 10 ++ .../conda_build_config.yaml | 1 + conda/recipe/meta.yaml | 104 ++++++++++++++++++ conda/recipes/ast_canopy/build.sh | 45 -------- .../ast_canopy/conda_build_config.yaml | 10 -- conda/recipes/ast_canopy/meta.yaml | 65 ----------- conda/recipes/numbast/build.sh | 15 --- conda/recipes/numbast/conda_build_config.yaml | 10 -- conda/recipes/numbast/meta.yaml | 65 ----------- conda/recipes/numbast_extensions/build.sh | 15 --- conda/recipes/numbast_extensions/meta.yaml | 56 ---------- 18 files changed, 196 insertions(+), 320 deletions(-) delete mode 100755 ci/upload_conda.sh create mode 100644 conda/recipe/build-astcanopy.sh create mode 100644 conda/recipe/build-numbast.sh rename conda/{recipes/numbast_extensions => recipe}/conda_build_config.yaml (99%) create mode 100644 conda/recipe/meta.yaml delete mode 100755 conda/recipes/ast_canopy/build.sh delete mode 100644 conda/recipes/ast_canopy/conda_build_config.yaml delete mode 100644 conda/recipes/ast_canopy/meta.yaml delete mode 100755 conda/recipes/numbast/build.sh delete mode 100644 conda/recipes/numbast/conda_build_config.yaml delete mode 100644 conda/recipes/numbast/meta.yaml delete mode 100755 conda/recipes/numbast_extensions/build.sh delete mode 100644 conda/recipes/numbast_extensions/meta.yaml diff --git a/.github/workflows/conda-python-build.yaml b/.github/workflows/conda-python-build.yaml index efa96c67..392a8c5a 100644 --- a/.github/workflows/conda-python-build.yaml +++ b/.github/workflows/conda-python-build.yaml @@ -24,9 +24,6 @@ on: CPU: type: string default: "amd64" - upload_to_conda: - type: boolean - required: false defaults: run: shell: bash @@ -175,8 +172,3 @@ jobs: with: name: conda-repo-${{ matrix.ARCH }}-${{ matrix.PY_VER }} path: ${{ env.RAPIDS_CONDA_BLD_OUTPUT_DIR }} - - name: Publish Conda Package - if: inputs.upload_to_conda - run: "ci/upload_conda.sh" - env: - CONDA_TOKEN: ${{ secrets.NVIDIA_CONDA_TOKEN }} diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index f4ddab59..37edb8cb 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -10,13 +10,6 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }}-release cancel-in-progress: true jobs: - build-conda: - uses: ./.github/workflows/conda-python-build.yaml - secrets: inherit - with: - build_type: release - script: "ci/build_conda_python.sh" - upload_to_conda: true build-wheels: uses: ./.github/workflows/wheels-build.yaml secrets: inherit @@ -38,3 +31,41 @@ jobs: uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 with: verbose: true + trigger-conda-forge: + name: Trigger conda-forge update + if: startsWith(github.ref, 'refs/tags/v') + needs: upload-to-pypi + runs-on: ubuntu-latest + steps: + - name: Request feedstock version update + env: + GH_TOKEN: ${{ secrets.CONDA_FORGE_FEEDSTOCK_TOKEN }} + RELEASE_TAG: ${{ github.ref_name }} + run: | + set -euo pipefail + + if [[ -z "${GH_TOKEN}" ]]; then + echo "CONDA_FORGE_FEEDSTOCK_TOKEN must allow creating issues on conda-forge/numbast-feedstock." + exit 1 + fi + + RELEASE_VERSION="${RELEASE_TAG#v}" + ISSUE_TITLE="@conda-forge-admin, please update version" + EXISTING_ISSUE="$( + gh issue list \ + --repo conda-forge/numbast-feedstock \ + --state open \ + --search "${ISSUE_TITLE} in:title" \ + --json number \ + --jq '.[0].number // ""' + )" + + if [[ -n "${EXISTING_ISSUE}" ]]; then + echo "conda-forge update request already open: conda-forge/numbast-feedstock#${EXISTING_ISSUE}" + exit 0 + fi + + gh issue create \ + --repo conda-forge/numbast-feedstock \ + --title "${ISSUE_TITLE}" \ + --body "Numbast ${RELEASE_VERSION} has been tagged in NVIDIA/numbast. Please have the bot check for the new upstream version and open the feedstock update PR." diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b9ece9d8..cf2401e2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -65,6 +65,7 @@ v ``` git push git@github.com:NVIDIA/numbast.git v ``` +- Verify the publish workflow uploads PyPI wheels and opens a `@conda-forge-admin, please update version` request on `conda-forge/numbast-feedstock`. - Verify docs deployment publishes `https://nvidia.github.io/numbast//` and that `` appears in the docs version picker. ### Patch releases from a previous tag @@ -90,11 +91,13 @@ cat /tmp/numbast-v-changelog.txt >> /tmp/numbast-v-tag git tag -a v -F /tmp/numbast-v-tag.txt git push origin v ``` -7. Verify docs deployment publishes `https://nvidia.github.io/numbast//` and that `` appears in the docs version picker. +7. Verify the publish workflow uploads PyPI wheels and opens a `@conda-forge-admin, please update version` request on `conda-forge/numbast-feedstock`. +8. Verify docs deployment publishes `https://nvidia.github.io/numbast//` and that `` appears in the docs version picker. Notes: - Use branch names that do not start with `v` for maintenance branches (for example, `0.6.x-patch`) to avoid accidental release automation triggers. - Keep the PR changelog and tag annotation text consistent. +- The publish workflow needs `CONDA_FORGE_FEEDSTOCK_TOKEN` to create update request issues on `conda-forge/numbast-feedstock`. ## Attribution Portions adopted from https://github.com/pytorch/pytorch/blob/master/CONTRIBUTING.md diff --git a/ci/build_conda_python.sh b/ci/build_conda_python.sh index 5b303f6b..9397fa98 100755 --- a/ci/build_conda_python.sh +++ b/ci/build_conda_python.sh @@ -14,7 +14,6 @@ export CMAKE_GENERATOR=Ninja GIT_DESCRIBE_TAG=$(git describe --abbrev=0) export PROJECT_VERSION=${GIT_DESCRIBE_TAG:1} export GIT_DESCRIBE_NUMBER=$(git rev-list ${GIT_DESCRIBE_TAG}..HEAD --count) -export GIT_DESCRIBE_HASH=$(git rev-parse --short HEAD) # If there were commits since the tag this is a dev build. if [[ "${GIT_DESCRIBE_NUMBER}" =~ ^[0-9]+$ ]] && [[ "${GIT_DESCRIBE_NUMBER}" -gt 0 ]]; then @@ -27,8 +26,6 @@ rapids-logger "Begin py build" sccache --zero-stats -rapids-conda-retry build conda/recipes/ast_canopy -rapids-conda-retry build conda/recipes/numbast -rapids-conda-retry build conda/recipes/numbast_extensions +rapids-conda-retry build conda/recipe sccache --show-adv-stats diff --git a/ci/test_conda_python.sh b/ci/test_conda_python.sh index 7ba7675b..03b5a332 100755 --- a/ci/test_conda_python.sh +++ b/ci/test_conda_python.sh @@ -16,7 +16,11 @@ fi GIT_DESCRIBE_TAG=$(git describe --abbrev=0) PROJECT_VERSION=${GIT_DESCRIBE_TAG:1} -GIT_DESCRIBE_HASH=$(git rev-parse --short HEAD) +GIT_DESCRIBE_NUMBER=$(git rev-list ${GIT_DESCRIBE_TAG}..HEAD --count) + +if [[ "${GIT_DESCRIBE_NUMBER}" =~ ^[0-9]+$ ]] && [[ "${GIT_DESCRIBE_NUMBER}" -gt 0 ]]; then + PROJECT_VERSION="${PROJECT_VERSION}.dev${GIT_DESCRIBE_NUMBER}" +fi rapids-logger "Creating Test Environment" # TODO: replace this with rapids-dependency-file-generator @@ -32,14 +36,13 @@ TEST_ENV_PACKAGES=( python=${RAPIDS_PY_VERSION} pip cffi - ast_canopy="${PROJECT_VERSION}=*g${GIT_DESCRIBE_HASH}*" - numbast="${PROJECT_VERSION}=*g${GIT_DESCRIBE_HASH}*" + ast_canopy="${PROJECT_VERSION}" + numbast="${PROJECT_VERSION}" ) if [[ "${TEST_BACKEND}" == "numba-cuda" ]]; then TEST_ENV_PACKAGES+=( "numba-cuda>=0.25.0" - numbast-extensions="${PROJECT_VERSION}=*g${GIT_DESCRIBE_HASH}*" ) fi @@ -89,7 +92,7 @@ rapids-logger "Run Tests" if [[ "${TEST_BACKEND}" == "mlir" ]]; then python ci/run_tests.py --ast-canopy --mlir else - python ci/run_tests.py --ast-canopy --numbast --cccl + python ci/run_tests.py --ast-canopy --numbast fi rapids-logger "Test script exiting with value: $EXITCODE" diff --git a/ci/upload_conda.sh b/ci/upload_conda.sh deleted file mode 100755 index 1ac266e2..00000000 --- a/ci/upload_conda.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -set -euo pipefail - -PKGS_TO_UPLOAD=$(rapids-find-anaconda-uploads.py $RAPIDS_CONDA_BLD_OUTPUT_DIR) - -rapids-retry anaconda \ - -t $CONDA_TOKEN \ - upload \ - --skip-existing \ - --no-progress \ - ${PKGS_TO_UPLOAD} diff --git a/conda/recipe/build-astcanopy.sh b/conda/recipe/build-astcanopy.sh new file mode 100644 index 00000000..00cd5670 --- /dev/null +++ b/conda/recipe/build-astcanopy.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +set -exuo pipefail + +# Use newer style environment variables to initialize. +export CMAKE_GENERATOR="Ninja" +export CMAKE_INSTALL_PREFIX="${PREFIX}" +export CMAKE_PREFIX_PATH="${PREFIX}" + +# Build and install C++ astcanopy library first so Python bindings can find it. +pushd ast_canopy +echo "PREFIX: ${PREFIX}" +echo "cmake: $(ls "${PREFIX}/lib/cmake/clang")" +cmake -S cpp -B cpp/build \ + ${CMAKE_ARGS:-} \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_STATIC_LIBS=OFF \ + -DCMAKE_CXX_STANDARD=17 +pushd cpp/build +ninja install -j${CPU_COUNT} +popd + +ls -lh "${PREFIX}/lib" + +export SETUPTOOLS_SCM_PRETEND_VERSION_FOR_AST_CANOPY="${PKG_VERSION}" +${PYTHON} -m pip install . -vv --no-deps --no-build-isolation +popd diff --git a/conda/recipe/build-numbast.sh b/conda/recipe/build-numbast.sh new file mode 100644 index 00000000..649531ec --- /dev/null +++ b/conda/recipe/build-numbast.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +set -exuo pipefail + +pushd numbast +export SETUPTOOLS_SCM_PRETEND_VERSION_FOR_NUMBAST="${PKG_VERSION}" +${PYTHON} -m pip install . -vv --no-deps --no-build-isolation +popd diff --git a/conda/recipes/numbast_extensions/conda_build_config.yaml b/conda/recipe/conda_build_config.yaml similarity index 99% rename from conda/recipes/numbast_extensions/conda_build_config.yaml rename to conda/recipe/conda_build_config.yaml index a3cba5a5..96c9a709 100644 --- a/conda/recipes/numbast_extensions/conda_build_config.yaml +++ b/conda/recipe/conda_build_config.yaml @@ -1,5 +1,6 @@ # SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 + c_compiler_version: - 14 cxx_compiler_version: diff --git a/conda/recipe/meta.yaml b/conda/recipe/meta.yaml new file mode 100644 index 00000000..1c7a414f --- /dev/null +++ b/conda/recipe/meta.yaml @@ -0,0 +1,104 @@ +# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +{% set number = environ.get("GIT_DESCRIBE_NUMBER", "0") %} +{% set name = "numbast" %} +{% set version = environ["PROJECT_VERSION"] %} + +package: + name: {{ name|lower }}-split + version: {{ version }} + +source: + path: ../.. + +build: + number: {{ number }} + skip: true # [win or osx] + +outputs: + - name: ast_canopy + version: {{ version }} + requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - {{ stdlib('c') }} + - cmake >=3.29 + - ninja + host: + - python + - pip + - pybind11 + - setuptools_scm + - scikit-build-core + - clangdev >=18,<22 + - llvmdev >=14 + - llvm >=14 + run: + - python + - cuda-version >=12.5,<14 + - cuda-nvcc + - clangdev >=18,<22 + # Needed by clang CUDA wrappers at runtime. + - libcurand-dev + - cuda-pathfinder + build: + number: {{ number }} + skip: true # [win or osx] + script: bash {{ RECIPE_DIR }}/build-astcanopy.sh + test: + imports: + - ast_canopy + files: + - lib/libastcanopy.so + about: + home: https://github.com/NVIDIA/numbast + summary: CUDA C++ device-function header parser used by Numbast + license: Apache-2.0 + license_file: LICENSE + + - name: numbast + build: + number: {{ number }} + skip: true # [win or osx] + script: bash {{ RECIPE_DIR }}/build-numbast.sh + requirements: + host: + - python + - pip + - setuptools + - setuptools_scm + - ast_canopy >=0.5.0 + run: + - python + - ast_canopy >=0.5.0 + - cuda-version >=12.5,<14 + - cuda-nvrtc + - numba-cuda >=0.25.0 + - pyyaml + - click + - jinja2 + test: + imports: + - numbast + commands: + - python -m numbast --help + about: + home: https://github.com/NVIDIA/numbast + summary: CUDA C++ to numba.cuda binding generator + license: Apache-2.0 + license_file: LICENSE + +about: + home: https://github.com/NVIDIA/numbast + summary: CUDA C++ to numba.cuda binding generator + license: Apache-2.0 + license_file: LICENSE + +extra: + feedstock-name: numbast + recipe-maintainers: + - cryos + - isvoid + - conda-forge/cuda-python diff --git a/conda/recipes/ast_canopy/build.sh b/conda/recipes/ast_canopy/build.sh deleted file mode 100755 index 192cd20e..00000000 --- a/conda/recipes/ast_canopy/build.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -set -x -e -set -o pipefail - -echo "" - -env - -echo "" - -BUILD_DIR=$SRC_DIR/ast_canopy/cpp/build -CPP_DIR=$SRC_DIR/ast_canopy/cpp - -echo SRC_DIR=$SRC_DIR -echo CPP_DIR=$CPP_DIR -echo BUILD_DIR=$BUILD_DIR - -# Relative to ast_canopy/ <-- This is essential for conda build -cd ast_canopy -echo "Making directory..." -mkdir -p cpp/build -echo "entering cpp build..." -pushd $BUILD_DIR -echo "starting cmake config..." -cmake ${CMAKE_ARGS} \ - -GNinja \ - -DCMAKE_BUILD_TYPE:STRING="Release" \ - -DCMAKE_PREFIX_PATH:PATH="${PREFIX}" \ - -DCMAKE_INSTALL_PREFIX:PATH="${PREFIX}" \ - -DBUILD_SHARED_LIBS:BOOL=ON \ - -DBUILD_STATIC_LIBS:BOOL=OFF \ - -DCMAKE_CXX_STANDARD:STRING=17 \ - "${CPP_DIR}" -echo "cmake build..." -cmake --build $BUILD_DIR -j -echo "cmake install..." -cmake --install $BUILD_DIR -echo "done!" -popd - -echo "pip installing..." -$PYTHON -m pip install . -vv diff --git a/conda/recipes/ast_canopy/conda_build_config.yaml b/conda/recipes/ast_canopy/conda_build_config.yaml deleted file mode 100644 index a3cba5a5..00000000 --- a/conda/recipes/ast_canopy/conda_build_config.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -c_compiler_version: - - 14 -cxx_compiler_version: - - 14 -c_stdlib: - - sysroot -c_stdlib_version: - - "2.28" diff --git a/conda/recipes/ast_canopy/meta.yaml b/conda/recipes/ast_canopy/meta.yaml deleted file mode 100644 index 85e43fb7..00000000 --- a/conda/recipes/ast_canopy/meta.yaml +++ /dev/null @@ -1,65 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -{% set data = load_file_data("pyproject.toml") %} -{% set project_data = data.get("project") %} -{% set project_urls = project_data["urls"] %} -{% set py_version = environ['CONDA_PY'] %} - -package: - name: ast_canopy - version: {{ PROJECT_VERSION }} - -build: - number: {{ GIT_DESCRIBE_NUMBER }} - string: py{{ py_version }}_{{ GIT_DESCRIBE_HASH }}_{{ GIT_DESCRIBE_NUMBER }} - script_env: - - AWS_ACCESS_KEY_ID - - AWS_SECRET_ACCESS_KEY - - AWS_SESSION_TOKEN - - CMAKE_C_COMPILER_LAUNCHER - - CMAKE_CUDA_COMPILER_LAUNCHER - - CMAKE_CXX_COMPILER_LAUNCHER - - CMAKE_GENERATOR - - PARALLEL_LEVEL - - SCCACHE_BUCKET - - SCCACHE_IDLE_TIMEOUT - - SCCACHE_REGION - - SCCACHE_S3_KEY_PREFIX=numbast-aarch64 # [aarch64] - - SCCACHE_S3_KEY_PREFIX=numbast-linux64 # [linux64] - - SCCACHE_S3_USE_SSL - - SCCACHE_S3_NO_CREDENTIALS - -source: - path: ../../.. - -requirements: - build: - - {{ compiler('c') }} - - {{ compiler('cxx') }} - - {{ stdlib('c') }} - - cmake >=3.29 - - ninja - host: - - python - - pybind11 - - pip - - scikit-build-core - - setuptools_scm - - clangdev >=18,<22.0 - - llvmdev >=14 - - llvm >=14 - run: - - cuda-version >=12.5 - - cuda-nvcc >=12.5 - - python - - clangdev >=18,<22.0 - # libcurand-dev contains `curand_mtgp32_kernel.h`, which is needed by clang - # CUDA mode to function properly. See: - # https://clang.llvm.org/doxygen/____clang__cuda__runtime__wrapper_8h_source.html - - libcurand-dev - -about: - license_family: Apache - license_file: ../../../LICENSE - summary: ast_canopy is a CUDA C++ device function header parser diff --git a/conda/recipes/numbast/build.sh b/conda/recipes/numbast/build.sh deleted file mode 100755 index 09806c03..00000000 --- a/conda/recipes/numbast/build.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -set -x -e -set -o pipefail - -echo "" - -env - -echo "" - -cd numbast -$PYTHON -m pip install . -vv diff --git a/conda/recipes/numbast/conda_build_config.yaml b/conda/recipes/numbast/conda_build_config.yaml deleted file mode 100644 index a3cba5a5..00000000 --- a/conda/recipes/numbast/conda_build_config.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -c_compiler_version: - - 14 -cxx_compiler_version: - - 14 -c_stdlib: - - sysroot -c_stdlib_version: - - "2.28" diff --git a/conda/recipes/numbast/meta.yaml b/conda/recipes/numbast/meta.yaml deleted file mode 100644 index f66c8b96..00000000 --- a/conda/recipes/numbast/meta.yaml +++ /dev/null @@ -1,65 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -{% set data = load_file_data("pyproject.toml") %} -{% set project_data = data.get("project") %} -{% set project_urls = project_data["urls"] %} -{% set py_version = environ['CONDA_PY'] %} - -package: - name: numbast - version: {{ PROJECT_VERSION }} - -source: - path: ../../.. - -build: - number: {{ GIT_DESCRIBE_NUMBER }} - string: py{{ py_version }}_{{ GIT_DESCRIBE_HASH }}_{{ GIT_DESCRIBE_NUMBER }} - script_env: - - AWS_ACCESS_KEY_ID - - AWS_SECRET_ACCESS_KEY - - AWS_SESSION_TOKEN - - CMAKE_C_COMPILER_LAUNCHER - - CMAKE_CUDA_COMPILER_LAUNCHER - - CMAKE_CXX_COMPILER_LAUNCHER - - CMAKE_GENERATOR - - PARALLEL_LEVEL - - SCCACHE_BUCKET - - SCCACHE_IDLE_TIMEOUT - - SCCACHE_REGION - - SCCACHE_S3_KEY_PREFIX=numbast-aarch64 # [aarch64] - - SCCACHE_S3_KEY_PREFIX=numbast-linux64 # [linux64] - - SCCACHE_S3_USE_SSL - - SCCACHE_S3_NO_CREDENTIALS - ignore_run_exports_from: - - libnvjitlink-dev - -requirements: - build: - - {{ compiler('c') }} - - {{ compiler('cxx') }} - - {{ stdlib('c') }} - - cmake >=3.28 - - ninja - host: - - python - - pip - - setuptools - - setuptools_scm - run: - - ast_canopy >={{ PROJECT_VERSION }} - - cuda-nvrtc - - cuda-version >=12.5 - - numba >=0.59 - - python - - numba-cuda >=0.25.0 - - pyyaml - - click - - jinja2 - - ruff - -about: - license_family: Apache - license_file: ../../../LICENSE - summary: Numbast is a CUDA C++ to Numba.cuda binding generator diff --git a/conda/recipes/numbast_extensions/build.sh b/conda/recipes/numbast_extensions/build.sh deleted file mode 100755 index b8a25721..00000000 --- a/conda/recipes/numbast_extensions/build.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -set -x -e -set -o pipefail - -echo "" - -env - -echo "" - -cd numbast_extensions -$PYTHON -m pip install . -vv diff --git a/conda/recipes/numbast_extensions/meta.yaml b/conda/recipes/numbast_extensions/meta.yaml deleted file mode 100644 index 69274b2d..00000000 --- a/conda/recipes/numbast_extensions/meta.yaml +++ /dev/null @@ -1,56 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -{% set data = load_file_data("pyproject.toml") %} -{% set project_data = data.get("project") %} -{% set project_urls = project_data["urls"] %} -{% set py_version = environ['CONDA_PY'] %} - -package: - name: numbast-extensions - version: {{ PROJECT_VERSION }} - -source: - path: ../../.. - -build: - number: {{ GIT_DESCRIBE_NUMBER }} - string: py{{ py_version }}_{{ GIT_DESCRIBE_HASH }}_{{ GIT_DESCRIBE_NUMBER }} - script_env: - - AWS_ACCESS_KEY_ID - - AWS_SECRET_ACCESS_KEY - - AWS_SESSION_TOKEN - - CMAKE_C_COMPILER_LAUNCHER - - CMAKE_CUDA_COMPILER_LAUNCHER - - CMAKE_CXX_COMPILER_LAUNCHER - - CMAKE_GENERATOR - - PARALLEL_LEVEL - - SCCACHE_BUCKET - - SCCACHE_IDLE_TIMEOUT - - SCCACHE_REGION - - SCCACHE_S3_KEY_PREFIX=numbast-aarch64 # [aarch64] - - SCCACHE_S3_KEY_PREFIX=numbast-linux64 # [linux64] - - SCCACHE_S3_USE_SSL - - SCCACHE_S3_NO_CREDENTIALS - -requirements: - build: - - python - - pip - - setuptools - run: - - cuda-version >=12.5 - - cuda-cudart-dev - - python - - numba >=0.59 - - numba-cuda >=0.25.0 - - numbast >=0.2.0 - - test: - imports: - - numbast_extensions - -about: - license_family: Apache - license_file: ../../../LICENSE - summary: Numbast-extensions contains novel dtypes and useful device side bindings for Numba.cuda From 1548298fa036047df3076b08a72c56c1bb3f0e81 Mon Sep 17 00:00:00 2001 From: Michael Wang Date: Fri, 22 May 2026 15:31:27 -0700 Subject: [PATCH 2/2] Exclude conda recipe template from YAML formatting --- .pre-commit-config.yaml | 2 ++ conda/recipe/conda_build_config.yaml | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fdef81e8..5fce2f88 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,6 +10,7 @@ repos: - id: check-yaml exclude: | (?x)^( + conda/recipe/meta.yaml| conda/recipes/ast_canopy/meta.yaml| conda/recipes/numbast/meta.yaml| conda/recipes/numbast_extensions/meta.yaml @@ -48,6 +49,7 @@ repos: - id: yamlfmt exclude: | (?x)^( + conda/recipe/meta.yaml| conda/recipes/ast_canopy/meta.yaml| conda/recipes/numbast/meta.yaml| conda/recipes/numbast_extensions/meta.yaml diff --git a/conda/recipe/conda_build_config.yaml b/conda/recipe/conda_build_config.yaml index 96c9a709..a3cba5a5 100644 --- a/conda/recipe/conda_build_config.yaml +++ b/conda/recipe/conda_build_config.yaml @@ -1,6 +1,5 @@ # SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 - c_compiler_version: - 14 cxx_compiler_version: