From cd0a714d44d76eeb223138f600bc38ae05acfe73 Mon Sep 17 00:00:00 2001 From: Janusz Lisiecki Date: Wed, 22 Apr 2026 16:16:25 +0200 Subject: [PATCH 01/24] BLD: Split recipe into nvidia-dali-native + nvidia-dali-python outputs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - nvidia-dali-native: built once per (CUDA × arch), python != "3.10" skipped, BUILD_PYTHON=OFF, installs shared libs + protobuf headers to PREFIX - nvidia-dali-python: built per (CUDA × arch × Python), PREBUILD_DALI_LIBS=ON reuses pre-built native libs, no native recompilation - recipe/build_native.sh: new CMake build script for the native output - recipe/build_python.sh: new CMake + pip install script for the Python output - recipe/build.sh: deleted (superseded) - recipe/recipe.yaml: multi-output with recipe: top-level identifier, top-level about/extra for conda-forge linter compatibility Signed-off-by: Janusz Lisiecki --- conda-forge.yml | 3 +- recipe/{build.sh => build_native.sh} | 48 ++-- recipe/build_python.sh | 132 +++++++++ recipe/recipe.yaml | 393 ++++++++++++++++++--------- 4 files changed, 411 insertions(+), 165 deletions(-) rename recipe/{build.sh => build_native.sh} (71%) mode change 100644 => 100755 create mode 100755 recipe/build_python.sh diff --git a/conda-forge.yml b/conda-forge.yml index cd97069..d649931 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,6 +1,5 @@ azure: free_disk_space: true - store_build_artifacts: true build_platform: linux_aarch64: linux_64 conda_build: @@ -12,3 +11,5 @@ github: tooling_branch_name: main provider: linux_aarch64: default +workflow_settings: + store_build_artifacts: true diff --git a/recipe/build.sh b/recipe/build_native.sh old mode 100644 new mode 100755 similarity index 71% rename from recipe/build.sh rename to recipe/build_native.sh index 536285e..8ef6adb --- a/recipe/build.sh +++ b/recipe/build_native.sh @@ -1,11 +1,11 @@ #!/bin/bash set -e -[[ ${target_platform} == "linux-64" ]] && targetsDir="targets/x86_64-linux" +[[ ${target_platform} == "linux-64" ]] && targetsDir="targets/x86_64-linux" [[ ${target_platform} == "linux-ppc64le" ]] && targetsDir="targets/ppc64le-linux" # https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html?highlight=tegra#cross-compilation -[[ ${target_platform} == "linux-aarch64" && ${arm_variant_type:-"sbsa"} == "sbsa" ]] && targetsDir="targets/sbsa-linux" -[[ ${target_platform} == "linux-aarch64" && ${arm_variant_type:-"sbsa"} == "tegra" ]] && targetsDir="targets/aarch64-linux" +[[ ${target_platform} == "linux-aarch64" && ${arm_variant_type:-"sbsa"} == "sbsa" ]] && targetsDir="targets/sbsa-linux" +[[ ${target_platform} == "linux-aarch64" && ${arm_variant_type:-"sbsa"} == "tegra" ]] && targetsDir="targets/aarch64-linux" if [ -z "${targetsDir+x}" ]; then echo "target_platform: ${target_platform} is unknown! targetsDir must be defined!" >&2 @@ -24,13 +24,14 @@ ln -sf $PREFIX/include/cutlass third_party/cutlass/include/ export CXXFLAGS="$CXXFLAGS -isystem $PREFIX/include/opencv4" -sed -i.bak "s/@DALI_INSTALL_REQUIRES_NVCOMP@//g" dali/python/setup.py.in -sed -i.bak "s/@DALI_INSTALL_REQUIRES_NVIMGCODEC@//g" dali/python/setup.py.in -sed -i.bak "s/@DALI_INSTALL_REQUIRES_NVJPEG2K@//g" dali/python/setup.py.in -sed -i.bak "s/@DALI_INSTALL_REQUIRES_NVTIFF@//g" dali/python/setup.py.in +# Remove pip-install-time requirements that conda manages separately +sed -i "s/@DALI_INSTALL_REQUIRES_NVCOMP@//g" dali/python/setup.py.in +sed -i "s/@DALI_INSTALL_REQUIRES_NVIMGCODEC@//g" dali/python/setup.py.in +sed -i "s/@DALI_INSTALL_REQUIRES_NVJPEG2K@//g" dali/python/setup.py.in +sed -i "s/@DALI_INSTALL_REQUIRES_NVTIFF@//g" dali/python/setup.py.in -mkdir -p build -cd build +mkdir -p build_native +cd build_native DALI_LINKING_ARGS=( -DLINK_DRIVER=OFF @@ -67,8 +68,7 @@ fi # -DCUDA_TARGET_ARCHS="$CUDAARCHS" \ cmake ${CMAKE_ARGS} \ -GNinja \ - -DBUILD_PYTHON=ON \ - -DPYTHON_VERSIONS=${PY_VER} \ + -DBUILD_PYTHON=OFF \ -DBUILD_AWSSDK=ON \ -DBUILD_BENCHMARK=OFF \ -DBUILD_CFITSIO=ON \ @@ -94,31 +94,23 @@ cmake ${CMAKE_ARGS} \ -DBUILD_WITH_ASAN=OFF \ -DBUILD_WITH_LSAN=OFF \ -DBUILD_WITH_UBSAN=OFF \ - -DUSE_PREBUILD_PYBIND11=ON \ -DFFMPEG_ROOT_DIR=$PREFIX \ -DNVCOMP_ROOT_DIR=$PREFIX \ "${DALI_LINKING_ARGS[@]}" \ $SRC_DIR cmake --build . -# FIXME: C-API is probably being shipped in python site-packages -# cmake --install . --strip -v -cd dali/python -${PYTHON} -m pip install . -v +# Install native shared libs and headers to PREFIX so the Python bindings +# build (PREBUILD_DALI_LIBS=ON) can locate them via standard cmake search paths. +cmake --install . --strip --prefix $PREFIX rm ${SP_DIR}/nvidia/dali/include/boost -rf rm ${PREFIX}/lib/gdk* -rf -# When cross-compiling, the python modules are named incorrectly, so we have to -# fix the name. -if [[ "$target_platform" != "$build_platform" ]]; then - for file in "${SP_DIR}"/nvidia/dali/*cpython-*-x86_64-linux-gnu.so; do - newname="${file/x86_64/aarch64}" - mv "$file" "$newname" - echo "Renamed: $file → $newname" - done -fi - -# Just double checking that binaries target correct arch -file ${SP_DIR}/nvidia/dali/*.so +# Install generated protobuf headers needed by the Python bindings cmake pass. +find . -name "*.pb.h" | sed 's|^\./||' | while IFS= read -r FILE; do + DEST="$PREFIX/include/$FILE" + mkdir -p "$(dirname "$DEST")" + cp "$FILE" "$DEST" +done diff --git a/recipe/build_python.sh b/recipe/build_python.sh new file mode 100755 index 0000000..5b3ffd4 --- /dev/null +++ b/recipe/build_python.sh @@ -0,0 +1,132 @@ +#!/bin/bash +set -e + +[[ ${target_platform} == "linux-64" ]] && targetsDir="targets/x86_64-linux" +[[ ${target_platform} == "linux-ppc64le" ]] && targetsDir="targets/ppc64le-linux" +# https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html?highlight=tegra#cross-compilation +[[ ${target_platform} == "linux-aarch64" && ${arm_variant_type:-"sbsa"} == "sbsa" ]] && targetsDir="targets/sbsa-linux" +[[ ${target_platform} == "linux-aarch64" && ${arm_variant_type:-"sbsa"} == "tegra" ]] && targetsDir="targets/aarch64-linux" + +if [ -z "${targetsDir+x}" ]; then + echo "target_platform: ${target_platform} is unknown! targetsDir must be defined!" >&2 + exit 1 +fi + +mkdir -p third_party/boost/preprocessor/include +ln -sf $PREFIX/include/boost third_party/boost/preprocessor/include/ + +mkdir -p third_party/dlpack/include/ +ln -sf $PREFIX/include/dlpack third_party/dlpack/include/ + +mkdir -p third_party/cutlass/include/ +ln -sf $PREFIX/include/cute third_party/cutlass/include/ +ln -sf $PREFIX/include/cutlass third_party/cutlass/include/ + +export CXXFLAGS="$CXXFLAGS -isystem $PREFIX/include/opencv4" + +# Remove pip-install-time requirements that conda manages separately +sed -i "s/@DALI_INSTALL_REQUIRES_NVCOMP@//g" dali/python/setup.py.in +sed -i "s/@DALI_INSTALL_REQUIRES_NVIMGCODEC@//g" dali/python/setup.py.in +sed -i "s/@DALI_INSTALL_REQUIRES_NVJPEG2K@//g" dali/python/setup.py.in +sed -i "s/@DALI_INSTALL_REQUIRES_NVTIFF@//g" dali/python/setup.py.in + +mkdir -p build_python +cd build_python + +DALI_LINKING_ARGS=( + -DLINK_DRIVER=OFF +# Continue to dlopen nvimgcodec so that it can be optionally installed + -DWITH_DYNAMIC_NVIMGCODEC=ON + -DNVIMGCODEC_DEFAULT_INSTALL_PATH=${PREFIX} +# Enable all dynamic (dlopen) linkages because it lets us install DALI without CUDA + -DWITH_DYNAMIC_CUDA_TOOLKIT=ON +# FFTS (third-party) needs to be available in order for cuFFT dlopen to work + -DWITH_DYNAMIC_CUFFT=ON + -DWITH_DYNAMIC_NPP=ON + -DWITH_DYNAMIC_NVCOMP=ON + -DWITH_DYNAMIC_NVJPEG=ON + -DSTATIC_LIBS=OFF + # BLD: Use CUDA target include directory to support cross-compiling + -DCUDAToolkit_TARGET_DIR="${PREFIX}/${targetsDir}" +) + +# Debug with fewer archs for shorter build times +# export CUDAARCHS="50" +if [[ "${arm_variant_type:-}" == "tegra" ]]; then + export CUDAARCHS="87-real;101f-real;101-virtual" +else + export CUDAARCHS="all-major" +fi + +# Compress SASS and PTX in the binary to reduce disk usage +export CUDAFLAGS="${CUDAFLAGS} -Xfatbin -compress-all" +if [[ "${cuda_compiler_version}" == 13.* ]]; then + export CUDAFLAGS="${CUDAFLAGS} -Xfatbin -compress-mode=size" +fi + +# https://docs.nvidia.com/deeplearning/dali/user-guide/docs/compilation.html#optional-cmake-build-parameters +# -DCUDA_TARGET_ARCHS="$CUDAARCHS" \ +cmake ${CMAKE_ARGS} \ + -GNinja \ + -DBUILD_PYTHON=ON \ + -DPREBUILD_DALI_LIBS=ON \ + -DPYTHON_VERSIONS=${PY_VER} \ + -DBUILD_AWSSDK=ON \ + -DBUILD_BENCHMARK=OFF \ + -DBUILD_CFITSIO=ON \ + -DBUILD_CUFILE=ON \ + -DBUILD_CVCUDA=OFF \ + -DBUILD_FFMPEG=ON \ + -DBUILD_FFTS=ON \ + -DBUILD_JPEG_TURBO=ON \ + -DBUILD_LIBSND=ON \ + -DBUILD_LIBTAR=ON \ + -DBUILD_LIBTIFF=ON \ + -DBUILD_LMDB=ON \ + -DBUILD_NVCOMP=$( [[ "${arm_variant_type:-}" == "tegra" ]] && echo "OFF" || echo "ON" ) \ + -DBUILD_NVDEC=ON \ + -DBUILD_NVIMAGECODEC=ON \ + -DBUILD_NVJPEG=ON \ + -DBUILD_NVJPEG2K=ON \ + -DBUILD_NVML=ON \ + -DBUILD_NVOF=ON \ + -DBUILD_NVTX=ON \ + -DBUILD_OPENCV=ON \ + -DBUILD_TEST=OFF \ + -DBUILD_WITH_ASAN=OFF \ + -DBUILD_WITH_LSAN=OFF \ + -DBUILD_WITH_UBSAN=OFF \ + -DUSE_PREBUILD_PYBIND11=ON \ + -DFFMPEG_ROOT_DIR=$PREFIX \ + -DNVCOMP_ROOT_DIR=$PREFIX \ + "${DALI_LINKING_ARGS[@]}" \ + $SRC_DIR + +# Build the python bindings +cmake --build . -t dali_python python_function_plugin copy_post_build_target dali_python_generate_stubs install_headers + +cd dali/python +${PYTHON} -m pip install . -v + +# Remove boost headers that leaked into site-packages and stray gdk libs +rm -rf ${SP_DIR}/nvidia/dali/include/boost +rm -rf ${PREFIX}/lib/gdk* + +# When cross-compiling, Python extension modules are named for the build arch; +# rename them to match the target arch. +if [[ "$target_platform" != "$build_platform" ]]; then + build_arch="${build_platform/linux-/}" + target_arch="${target_platform/linux-/}" + for file in "${SP_DIR}"/nvidia/dali/*cpython-*-"${build_arch}"-linux-gnu.so; do + [[ -e "$file" ]] || continue + newname="${file/${build_arch}/${target_arch}}" + mv "$file" "$newname" + echo "Renamed: $file -> $newname" + done +fi + +# Sanity-check that binaries target the correct architecture +so_files=("${SP_DIR}"/nvidia/dali/*.so) +if [[ ${#so_files[@]} -gt 0 && -e "${so_files[0]}" ]]; then + file "${so_files[@]}" +fi diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index 0e6194e..2eef53a 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -2,9 +2,11 @@ schema_version: 1 context: version: "2.0.0" -package: - name: nvidia-dali-python + +recipe: + name: nvidia-dali version: ${{ version }} + source: - url: https://github.com/NVIDIA/DALI/archive/refs/tags/v${{ version }}.tar.gz sha256: 6423d941cefc5c052ad0ea9dda8e58f84019a2e4de288a3d6b35e67d09479e79 @@ -20,149 +22,267 @@ source: - url: https://github.com/JanuszL/ffts/archive/6ef8d818f46f679c95110ab199ae915fb04bfef5.tar.gz sha256: 1d157157828ce1c85d0a43a6de312ce168b3c5dc1223c6ad3f02e074c3806c15 target_directory: third_party/ffts + build: - number: 0 - skip: - - cuda_compiler_version == "None" - - win - # - match(python, "!=3.12.*") -requirements: - ignore_run_exports: - by_name: - - cuda-version - from_package: - - libcufft-dev - - libcufile-dev - - libcurand-dev - - libnpp-dev - - libnvjpeg-dev - - libnvimgcodec-dev ${{ libnvimgcodec }} - - if: (arm_variant_type | default("")) != "tegra" - then: - - libnvcomp-dev ${{ libnvcomp }} - # Added libprotobuf to pick up channel pinnings, but we use the static package - - libprotobuf - build: - - ${{ compiler('cuda') }} - - ${{ compiler('cxx') }} - - ${{ stdlib('c') }} - - if: linux and aarch64 and not match(cuda_compiler_version, "==None") - then: - - arm-variant * ${{ arm_variant_type | default("None") }} - - cmake 3.* - - file - - ninja - - pkgconf - - if: build_platform != target_platform - then: - - cross-python_${{ target_platform }} - - python + number: 1 + +outputs: + - package: + name: nvidia-dali-native + version: ${{ version }} + build: + number: 0 + script: build_native.sh + skip: + - cuda_compiler_version == "None" + - win + - osx + # - match(python, "!=3.12.*") + requirements: + ignore_run_exports: + by_name: + - cuda-version + from_package: + - libcufft-dev + - libcufile-dev + - libcurand-dev + - libnpp-dev + - libnvjpeg-dev + - libnvimgcodec-dev + - if: (arm_variant_type | default("")) != "tegra" + then: + - libnvcomp-dev + # Added libprotobuf to pick up channel pinnings, but we use the static package + - libprotobuf + build: + - ${{ compiler('cuda') }} + - ${{ compiler('cxx') }} + - ${{ stdlib('c') }} + - if: linux and aarch64 and not match(cuda_compiler_version, "==None") + then: + - arm-variant * ${{ arm_variant_type | default("None") }} + - cmake 3.* + - file + - ninja + - pkgconf - python-clang + - if: build_platform != target_platform + then: + - libprotobuf + - libprotobuf-static + host: + # NOTE: static libraries culibos and nvjpeg required for correct feature detection + - if: linux and match(cuda_compiler_version, "13.*") + then: + - cuda-culibos-static + - cuda-cudart-static + - cuda-nvml-dev + - libcufft-dev + - libcufile-dev + - libcurand-dev + - libnpp-dev + - libnvjpeg-dev + - libnvjpeg-static + - cuda-version ${{ cuda_compiler_version }}.* + - aws-sdk-cpp + - cfitsio + - cutlass + - dlpack + - ffmpeg + - ffmpeg * lgpl* + - libabseil + - libboost-headers ${{ libboost_headers }} + - libjpeg-turbo + - if: (arm_variant_type | default("")) != "tegra" + then: + - libnvcomp-dev ${{ libnvcomp }} + - libnvimgcodec-dev ${{ libnvimgcodec }} + - libnvjpeg2k-dev ${{ libnvjpeg2k }} + - libopencv - libprotobuf - libprotobuf-static - host: - # NOTE: static libraries culibos and nvjpeg required for correct feature detection - - if: linux and match(cuda_compiler_version, "13.*") - then: - - cuda-culibos-static - - cuda-cudart-static - - cuda-nvml-dev - - libcufft-dev - - libcufile-dev - - libcurand-dev - - libnpp-dev - - libnvjpeg-dev - - libnvjpeg-static - - cuda-version ${{ cuda_compiler_version }}.* - - aws-sdk-cpp - - cfitsio - - cutlass - - dlpack - - ffmpeg - - ffmpeg * lgpl* - - libabseil - - libboost-headers ${{ libboost_headers }} - - libjpeg-turbo - - if: (arm_variant_type | default("")) != "tegra" - then: - - libnvcomp-dev ${{ libnvcomp }} - - libnvimgcodec-dev ${{ libnvimgcodec }} - - libnvjpeg2k-dev ${{ libnvjpeg2k }} - - libopencv - - libprotobuf - - libprotobuf-static - - libsndfile - - libtar - - libtiff - - lmdb - - nvtx-c - - pip - - protobuf - - pybind11 - - python - - python-clang - - rapidjson - - setuptools - - zlib - # Runtime deps from below, for stub generator - - nvtx - - makefun - - astunparse ${{ astunparse }} - - gast ${{ gast }} - - six ${{ six }} - - dm-tree ${{ dm_tree }} - - packaging ${{ packaging }} - # Stubs autoformat themselves - - black ${{ black }} - run: - - python - - nvtx - - makefun - - astunparse ${{ astunparse }} - - gast ${{ gast }} - - six ${{ six }} - - dm-tree ${{ dm_tree }} - - packaging ${{ packaging }} - - ${{ pin_compatible('cuda-version', lower_bound='x', upper_bound='x') }} - run_constraints: - # These packages are dlopen'd and are already constrained by cuda-version - # FIXME: Consider a meta-package like "nvidia-dali-all" for convenience - # - if: match(cuda_compiler_version, "12.*") - # then: - # - libcufft - # - libcufile - # - libnpp - # - libnvjpeg - - libboost-headers ${{ libboost_headers }} - - if: (arm_variant_type | default("")) != "tegra" - then: - - libnvcomp ${{ libnvcomp }} - - libnvimgcodec ${{ libnvimgcodec }} -tests: - - requirements: + - libsndfile + - libtar + - libtiff + - lmdb + - nvtx-c + - rapidjson + - zlib run: - - pip - # Test that optional dependencies are co-installable - - libcufft - - libcufile - - libnpp - - libnvjpeg - - libboost-headers + - ${{ pin_compatible('cuda-version', lower_bound='x', upper_bound='x') }} + run_constraints: + # These packages are dlopen'd and are already constrained by cuda-version + # FIXME: Consider a meta-package like "nvidia-dali-all" for convenience + # - if: match(cuda_compiler_version, "12.*") + # then: + # - libcufft + # - libcufile + # - libnpp + # - libnvjpeg + - libboost-headers ${{ libboost_headers }} - if: (arm_variant_type | default("")) != "tegra" then: - - libnvcomp - - libnvimgcodec - script: - - pip check - - python -c "import nvidia.dali" - - tfrecord2idx --help - - wds2idx --help + - libnvcomp ${{ libnvcomp }} + - libnvimgcodec ${{ libnvimgcodec }} + about: + summary: DALI native GPU-accelerated data loading libraries (CUDA runtime, Python-independent). + description: | + Native shared libraries for NVIDIA DALI. Contains the core GPU-accelerated + processing engine. Install nvidia-dali-python for the Python API. + license: Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause + license_file: + - LICENSE + - COPYRIGHT + - Acknowledgements.txt # Contains licenses for linked libraries + - third_party/README.rst + homepage: https://github.com/NVIDIA/dali + + - package: + name: nvidia-dali-python + + version: ${{ version }} + build: + number: 2 + script: build_python.sh + skip: + - cuda_compiler_version == "None" + - win + - osx + # - match(python, "!=3.12.*") + requirements: + ignore_run_exports: + by_name: + - cuda-version + from_package: + - libcufft-dev + - libcufile-dev + - libcurand-dev + - libnpp-dev + - libnvjpeg-dev + - libnvimgcodec-dev + - if: (arm_variant_type | default("")) != "tegra" + then: + - libnvcomp-dev + # Added libprotobuf to pick up channel pinnings, but we use the static package + - libprotobuf + build: + - ${{ compiler('cuda') }} + - ${{ compiler('cxx') }} + - ${{ stdlib('c') }} + - if: linux and aarch64 and not match(cuda_compiler_version, "==None") + then: + - arm-variant * ${{ arm_variant_type | default("None") }} + - cmake 3.* + - file + - ninja + - pkgconf + - if: build_platform != target_platform + then: + - cross-python_${{ target_platform }} + - python + - python-clang + - libprotobuf + - libprotobuf-static + host: + - ${{ pin_subpackage('nvidia-dali-native', upper_bound="x.x.x") }} + # NOTE: static libraries culibos and nvjpeg required for correct feature detection + - if: linux and match(cuda_compiler_version, "13.*") + then: + - cuda-culibos-static + - cuda-cudart-static + - cuda-nvml-dev + - libcufft-dev + - libcufile-dev + - libcurand-dev + - libnpp-dev + - libnvjpeg-dev + - libnvjpeg-static + - cuda-version ${{ cuda_compiler_version }}.* + - aws-sdk-cpp + - cfitsio + - cutlass + - dlpack + - ffmpeg + - ffmpeg * lgpl* + - libabseil + - libboost-headers ${{ libboost_headers }} + - libjpeg-turbo + - if: (arm_variant_type | default("")) != "tegra" + then: + - libnvcomp-dev ${{ libnvcomp }} + - libnvimgcodec-dev ${{ libnvimgcodec }} + - libnvjpeg2k-dev ${{ libnvjpeg2k }} + - libopencv + - libprotobuf + - libprotobuf-static + - libsndfile + - libtar + - libtiff + - lmdb + - nvtx-c + - rapidjson + - zlib + - pip + - pybind11 + - python + - python-clang + - setuptools + # Runtime deps also needed at host time for stub generator + - nvtx + - makefun + - astunparse ${{ astunparse }} + - gast ${{ gast }} + - six ${{ six }} + - dm-tree ${{ dm_tree }} + - packaging ${{ packaging }} + # Stubs autoformat themselves + - black ${{ black }} + run: + - ${{ pin_subpackage('nvidia-dali-native', upper_bound="x.x.x") }} + - python + - nvtx + - makefun + - astunparse ${{ astunparse }} + - gast ${{ gast }} + - six ${{ six }} + - dm-tree ${{ dm_tree }} + - packaging ${{ packaging }} + - ${{ pin_compatible('cuda-version', lower_bound='x', upper_bound='x') }} + tests: + - requirements: + run: + - pip + # Test that optional dependencies are co-installable + - libcufft + - libcufile + - libnpp + - libnvjpeg + - libboost-headers + - if: (arm_variant_type | default("")) != "tegra" + then: + - libnvcomp + - libnvimgcodec + script: + - pip check + - python -c "import nvidia.dali" + - tfrecord2idx --help + - wds2idx --help + about: + summary: A GPU-accelerated library for data loading and pre-processing to accelerate deep learning applications. + description: | + A GPU-accelerated library containing highly optimized building blocks and + an execution engine for data processing to accelerate deep learning training + and inference applications. + license: Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause + license_file: + - LICENSE + - COPYRIGHT + - Acknowledgements.txt # Contains licenses for linked libraries + - third_party/README.rst + homepage: https://github.com/NVIDIA/dali + about: summary: A GPU-accelerated library for data loading and pre-processing to accelerate deep learning applications. - description: | - A GPU-accelerated library containing highly optimized building blocks and - an execution engine for data processing to accelerate deep learning training - and inference applications. license: Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause license_file: - LICENSE @@ -170,6 +290,7 @@ about: - Acknowledgements.txt # Contains licenses for linked libraries - third_party/README.rst homepage: https://github.com/NVIDIA/dali + extra: recipe-maintainers: - conda-forge/cuda From b2570809b966f000557956e054cb3fc7d2326f8b Mon Sep 17 00:00:00 2001 From: Janusz Lisiecki Date: Wed, 22 Apr 2026 22:15:29 +0200 Subject: [PATCH 02/24] Rerender Signed-off-by: Janusz Lisiecki --- .azure-pipelines/azure-pipelines-linux.yml | 215 ----------------- .azure-pipelines/azure-pipelines-osx.yml | 70 ++++++ .azure-pipelines/azure-pipelines-win.yml | 69 ++++++ ...version2.17cuda_compiler_version12.9.yaml} | 4 + ...ler_version12.9python3.11.____cpython.yaml | 72 ------ ...ler_version12.9python3.12.____cpython.yaml | 72 ------ ...piler_version12.9python3.13.____cp313.yaml | 72 ------ ...piler_version12.9python3.14.____cp314.yaml | 72 ------ ...version2.28cuda_compiler_version13.0.yaml} | 4 + ...ler_version13.0python3.11.____cpython.yaml | 72 ------ ...ler_version13.0python3.12.____cpython.yaml | 72 ------ ...piler_version13.0python3.13.____cp313.yaml | 72 ------ ...piler_version13.0python3.14.____cp314.yaml | 72 ------ ...version2.17cuda_compiler_version12.9.yaml} | 4 + ...ler_version12.9python3.11.____cpython.yaml | 75 ------ ...ler_version12.9python3.12.____cpython.yaml | 75 ------ ...piler_version12.9python3.13.____cp313.yaml | 75 ------ ...piler_version12.9python3.14.____cp314.yaml | 75 ------ ...version2.28cuda_compiler_version13.0.yaml} | 4 + ...ler_version13.0python3.10.____cpython.yaml | 75 ------ ...ler_version13.0python3.12.____cpython.yaml | 75 ------ ...piler_version13.0python3.13.____cp313.yaml | 75 ------ ...piler_version13.0python3.14.____cp314.yaml | 75 ------ ...version2.34cuda_compiler_version12.9.yaml} | 4 + ...ler_version12.9python3.10.____cpython.yaml | 75 ------ ...ler_version12.9python3.12.____cpython.yaml | 75 ------ ...piler_version12.9python3.13.____cp313.yaml | 75 ------ ...piler_version12.9python3.14.____cp314.yaml | 75 ------ .ci_support/migrations/absl_grpc_proto.yaml | 21 -- .../migrations/absl_grpc_proto_25Q2.yaml | 29 --- .ci_support/migrations/cuda129.yaml | 57 ----- .ci_support/migrations/libopencv4130.yaml | 8 - .ci_support/osx_64_.yaml | 12 + .ci_support/win_64_.yaml | 6 + .github/workflows/conda-build.yml | 220 +++++++++++++++++- .scripts/build_steps.sh | 1 + .scripts/create_conda_build_artifacts.bat | 77 ++++++ .scripts/create_conda_build_artifacts.sh | 12 +- .scripts/run_docker_build.sh | 33 ++- .scripts/run_osx_build.sh | 127 ++++++++++ .scripts/run_win_build.bat | 146 ++++++++++++ README.md | 220 +++++------------- azure-pipelines.yml | 3 +- build-locally.py | 7 - 44 files changed, 836 insertions(+), 1993 deletions(-) delete mode 100755 .azure-pipelines/azure-pipelines-linux.yml create mode 100755 .azure-pipelines/azure-pipelines-osx.yml create mode 100755 .azure-pipelines/azure-pipelines-win.yml rename .ci_support/{linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.10.____cpython.yaml => linux_64_c_stdlib_version2.17cuda_compiler_version12.9.yaml} (92%) delete mode 100644 .ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.11.____cpython.yaml delete mode 100644 .ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.12.____cpython.yaml delete mode 100644 .ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.13.____cp313.yaml delete mode 100644 .ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.14.____cp314.yaml rename .ci_support/{linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.10.____cpython.yaml => linux_64_c_stdlib_version2.28cuda_compiler_version13.0.yaml} (92%) delete mode 100644 .ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.11.____cpython.yaml delete mode 100644 .ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.12.____cpython.yaml delete mode 100644 .ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.13.____cp313.yaml delete mode 100644 .ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.14.____cp314.yaml rename .ci_support/{linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.10.____cpython.yaml => linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9.yaml} (93%) delete mode 100644 .ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.11.____cpython.yaml delete mode 100644 .ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.12.____cpython.yaml delete mode 100644 .ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.13.____cp313.yaml delete mode 100644 .ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.14.____cp314.yaml rename .ci_support/{linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.11.____cpython.yaml => linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0.yaml} (93%) delete mode 100644 .ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.10.____cpython.yaml delete mode 100644 .ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.12.____cpython.yaml delete mode 100644 .ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.13.____cp313.yaml delete mode 100644 .ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.14.____cp314.yaml rename .ci_support/{linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.11.____cpython.yaml => linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9.yaml} (93%) delete mode 100644 .ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.10.____cpython.yaml delete mode 100644 .ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.12.____cpython.yaml delete mode 100644 .ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.13.____cp313.yaml delete mode 100644 .ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.14.____cp314.yaml delete mode 100644 .ci_support/migrations/absl_grpc_proto.yaml delete mode 100644 .ci_support/migrations/absl_grpc_proto_25Q2.yaml delete mode 100644 .ci_support/migrations/cuda129.yaml delete mode 100644 .ci_support/migrations/libopencv4130.yaml create mode 100644 .ci_support/osx_64_.yaml create mode 100644 .ci_support/win_64_.yaml create mode 100755 .scripts/create_conda_build_artifacts.bat create mode 100755 .scripts/run_osx_build.sh create mode 100755 .scripts/run_win_build.bat diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml deleted file mode 100755 index fc31b03..0000000 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ /dev/null @@ -1,215 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -jobs: -- job: linux - pool: - vmImage: ubuntu-latest - strategy: - matrix: - linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.10.____cpython: - CONFIG: linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.10.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_64_c_stdlib_version2.17cuda_compil_h4300bc21 - linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.11.____cpython: - CONFIG: linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.11.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_64_c_stdlib_version2.17cuda_compil_h3747ab2d - linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.12.____cpython: - CONFIG: linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.12.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_64_c_stdlib_version2.17cuda_compil_h86c3c167 - linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.13.____cp313: - CONFIG: linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.13.____cp313 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_64_c_stdlib_version2.17cuda_compil_h88f978e6 - linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.14.____cp314: - CONFIG: linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.14.____cp314 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_64_c_stdlib_version2.17cuda_compil_h1239d2b5 - linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.10.____cpython: - CONFIG: linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.10.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_64_c_stdlib_version2.28cuda_compil_h7bc1faf3 - linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.11.____cpython: - CONFIG: linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.11.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_64_c_stdlib_version2.28cuda_compil_h9cd8e738 - linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.12.____cpython: - CONFIG: linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.12.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_64_c_stdlib_version2.28cuda_compil_h8d03b736 - linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.13.____cp313: - CONFIG: linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.13.____cp313 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_64_c_stdlib_version2.28cuda_compil_h7b65d883 - linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.14.____cp314: - CONFIG: linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.14.____cp314 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_64_c_stdlib_version2.28cuda_compil_h1fc9517a - linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.10.____cpython: - CONFIG: linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.10.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typesbsac_stdl_h49f2462e - linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.11.____cpython: - CONFIG: linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.11.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typesbsac_stdl_he090ee2a - linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.12.____cpython: - CONFIG: linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.12.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typesbsac_stdl_h171bf8a0 - linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.13.____cp313: - CONFIG: linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.13.____cp313 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typesbsac_stdl_h783e5c13 - linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.14.____cp314: - CONFIG: linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.14.____cp314 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typesbsac_stdl_h0fc0f278 - linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.10.____cpython: - CONFIG: linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.10.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typesbsac_stdl_hb49ef32b - linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.11.____cpython: - CONFIG: linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.11.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typesbsac_stdl_h8da13d4b - linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.12.____cpython: - CONFIG: linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.12.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typesbsac_stdl_h071ad0d4 - linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.13.____cp313: - CONFIG: linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.13.____cp313 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typesbsac_stdl_h20e06015 - linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.14.____cp314: - CONFIG: linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.14.____cp314 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typesbsac_stdl_h492f4cc9 - linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.10.____cpython: - CONFIG: linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.10.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typetegrac_std_hf7356fb7 - linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.11.____cpython: - CONFIG: linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.11.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typetegrac_std_hfee6b700 - linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.12.____cpython: - CONFIG: linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.12.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typetegrac_std_h0fcd25d9 - linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.13.____cp313: - CONFIG: linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.13.____cp313 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typetegrac_std_h2fe05f75 - linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.14.____cp314: - CONFIG: linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.14.____cp314 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - SHORT_CONFIG: linux_aarch64_arm_variant_typetegrac_std_h6b0b35ea - timeoutInMinutes: 360 - variables: {} - - steps: - - script: | - sudo mkdir -p /opt/empty_dir || true - for d in \ - /opt/ghc \ - /opt/hostedtoolcache \ - /usr/lib/jvm \ - /usr/local/.ghcup \ - /usr/local/lib/android \ - /usr/local/share/powershell \ - /usr/share/dotnet \ - /usr/share/swift \ - ; do - sudo rsync --stats -a --delete /opt/empty_dir/ $d || true - done - sudo apt-get purge -y -f firefox \ - google-chrome-stable \ - microsoft-edge-stable - sudo apt-get autoremove -y >& /dev/null - sudo apt-get autoclean -y >& /dev/null - df -h - displayName: Manage disk space - # configure qemu binfmt-misc running. This allows us to run docker containers - # embedded qemu-static - - script: | - docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes - ls /proc/sys/fs/binfmt_misc/ - condition: not(startsWith(variables['CONFIG'], 'linux_64')) - displayName: Configure binfmt_misc - - - script: | - export CI=azure - export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) - export remote_url=$(Build.Repository.Uri) - export sha=$(Build.SourceVersion) - export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) - if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then - export IS_PR_BUILD="True" - else - export IS_PR_BUILD="False" - fi - .scripts/run_docker_build.sh - displayName: Run docker build - env: - BINSTAR_TOKEN: $(BINSTAR_TOKEN) - FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) - - script: | - export CI=azure - export CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) - export CONDA_BLD_DIR=build_artifacts - export ARTIFACT_STAGING_DIR="$(Build.ArtifactStagingDirectory)" - # Archive everything in CONDA_BLD_DIR except environments - export BLD_ARTIFACT_PREFIX=conda_artifacts - if [[ "$AGENT_JOBSTATUS" == "Failed" ]]; then - # Archive the CONDA_BLD_DIR environments only when the job fails - export ENV_ARTIFACT_PREFIX=conda_envs - fi - ./.scripts/create_conda_build_artifacts.sh - displayName: Prepare conda build artifacts - condition: succeededOrFailed() - - - task: PublishPipelineArtifact@1 - displayName: Store conda build artifacts - condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) - inputs: - targetPath: $(BLD_ARTIFACT_PATH) - artifactName: $(BLD_ARTIFACT_NAME) - - - task: PublishPipelineArtifact@1 - displayName: Store conda build environment artifacts - condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) - inputs: - targetPath: $(ENV_ARTIFACT_PATH) - artifactName: $(ENV_ARTIFACT_NAME) diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml new file mode 100755 index 0000000..ad63a76 --- /dev/null +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -0,0 +1,70 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: yaml -*- + +jobs: +- job: osx + pool: + vmImage: $(VMIMAGE) + strategy: + matrix: + osx_64_: + CONFIG: osx_64_ + UPLOAD_PACKAGES: 'True' + VMIMAGE: macOS-15 + store_build_artifacts: true + SHORT_CONFIG: osx_64_ + timeoutInMinutes: 360 + variables: {} + + steps: + # TODO: Fast finish on azure pipelines? + - script: | + export CI=azure + export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) + export remote_url=$(Build.Repository.Uri) + export sha=$(Build.SourceVersion) + export OSX_FORCE_SDK_DOWNLOAD="1" + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then + export IS_PR_BUILD="True" + else + export IS_PR_BUILD="False" + fi + ./.scripts/run_osx_build.sh + displayName: Run OSX build + env: + BINSTAR_TOKEN: $(BINSTAR_TOKEN) + FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) + + - script: | + export CI=azure + export CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + export CONDA_BLD_PATH=/Users/runner/miniforge3/conda-bld + export ARTIFACT_STAGING_DIR="$(Build.ArtifactStagingDirectory)" + # Archive everything in CONDA_BLD_PATH except environments + export BLD_ARTIFACT_PREFIX=conda_artifacts + if [[ "$AGENT_JOBSTATUS" == "Failed" ]]; then + # Archive the CONDA_BLD_PATH environments only when the job fails + export ENV_ARTIFACT_PREFIX=conda_envs + fi + ./.scripts/create_conda_build_artifacts.sh + displayName: Prepare conda build artifacts + condition: and(succeededOrFailed(), eq(variables.store_build_artifacts, true)) + + - task: PublishPipelineArtifact@1 + displayName: Store conda build artifacts + condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) + inputs: + targetPath: $(BLD_ARTIFACT_PATH) + artifactName: $(BLD_ARTIFACT_NAME) + + - task: PublishPipelineArtifact@1 + displayName: Store conda build environment artifacts + condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) + inputs: + targetPath: $(ENV_ARTIFACT_PATH) + artifactName: $(ENV_ARTIFACT_NAME) diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml new file mode 100755 index 0000000..493a445 --- /dev/null +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -0,0 +1,69 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: yaml -*- + +jobs: +- job: win + pool: + vmImage: windows-2022 + strategy: + matrix: + win_64_: + CONFIG: win_64_ + UPLOAD_PACKAGES: 'True' + store_build_artifacts: true + SHORT_CONFIG: win_64_ + timeoutInMinutes: 360 + variables: + CONDA_BLD_PATH: D:\\bld\\ + MINIFORGE_HOME: D:\Miniforge + UPLOAD_TEMP: D:\\tmp + + steps: + + - script: | + call ".scripts\run_win_build.bat" + displayName: Run Windows build + env: + MINIFORGE_HOME: $(MINIFORGE_HOME) + CONDA_BLD_PATH: $(CONDA_BLD_PATH) + PYTHONUNBUFFERED: 1 + CONFIG: $(CONFIG) + CI: azure + flow_run_id: azure_$(Build.BuildNumber).$(System.JobAttempt) + remote_url: $(Build.Repository.Uri) + sha: $(Build.SourceVersion) + UPLOAD_PACKAGES: $(UPLOAD_PACKAGES) + UPLOAD_TEMP: $(UPLOAD_TEMP) + BINSTAR_TOKEN: $(BINSTAR_TOKEN) + FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) + + - script: | + set MINIFORGE_HOME=$(MINIFORGE_HOME) + set CI=azure + set CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) + set FEEDSTOCK_NAME=$(build.Repository.Name) + set ARTIFACT_STAGING_DIR=$(Build.ArtifactStagingDirectory) + set CONDA_BLD_PATH=$(CONDA_BLD_PATH) + set BLD_ARTIFACT_PREFIX=conda_artifacts + if "%AGENT_JOBSTATUS%" == "Failed" ( + set ENV_ARTIFACT_PREFIX=conda_envs + ) + call ".scripts\create_conda_build_artifacts.bat" + displayName: Prepare conda build artifacts + condition: and(succeededOrFailed(), eq(variables.store_build_artifacts, true)) + + - task: PublishPipelineArtifact@1 + displayName: Store conda build artifacts + condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) + inputs: + targetPath: $(BLD_ARTIFACT_PATH) + artifactName: $(BLD_ARTIFACT_NAME) + + - task: PublishPipelineArtifact@1 + displayName: Store conda build environment artifacts + condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) + inputs: + targetPath: $(ENV_ARTIFACT_PATH) + artifactName: $(ENV_ARTIFACT_NAME) diff --git a/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.10.____cpython.yaml b/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9.yaml similarity index 92% rename from .ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.10.____cpython.yaml rename to .ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9.yaml index bec3cbf..f2c2bb7 100644 --- a/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.10.____cpython.yaml +++ b/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9.yaml @@ -60,6 +60,10 @@ pin_run_as_build: max_pin: x.x python: - 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.14.* *_cp314 six: - '>=1.16,<=1.17' target_platform: diff --git a/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.11.____cpython.yaml b/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.11.____cpython.yaml deleted file mode 100644 index 2164cfb..0000000 --- a/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.11.____cpython.yaml +++ /dev/null @@ -1,72 +0,0 @@ -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '12.9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.11.* *_cpython -six: -- '>=1.16,<=1.17' -target_platform: -- linux-64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version -zlib: -- '1' diff --git a/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.12.____cpython.yaml b/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.12.____cpython.yaml deleted file mode 100644 index a931acc..0000000 --- a/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.12.____cpython.yaml +++ /dev/null @@ -1,72 +0,0 @@ -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '12.9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.12.* *_cpython -six: -- '>=1.16,<=1.17' -target_platform: -- linux-64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version -zlib: -- '1' diff --git a/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.13.____cp313.yaml b/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.13.____cp313.yaml deleted file mode 100644 index 14c1eda..0000000 --- a/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.13.____cp313.yaml +++ /dev/null @@ -1,72 +0,0 @@ -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '12.9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.13.* *_cp313 -six: -- '>=1.16,<=1.17' -target_platform: -- linux-64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version -zlib: -- '1' diff --git a/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.14.____cp314.yaml b/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.14.____cp314.yaml deleted file mode 100644 index 31f9dcb..0000000 --- a/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.14.____cp314.yaml +++ /dev/null @@ -1,72 +0,0 @@ -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '12.9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.14.* *_cp314 -six: -- '>=1.16,<=1.17' -target_platform: -- linux-64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version -zlib: -- '1' diff --git a/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.10.____cpython.yaml b/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0.yaml similarity index 92% rename from .ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.10.____cpython.yaml rename to .ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0.yaml index e48a4d5..5d1419c 100644 --- a/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.10.____cpython.yaml +++ b/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0.yaml @@ -60,6 +60,10 @@ pin_run_as_build: max_pin: x.x python: - 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.14.* *_cp314 six: - '>=1.16,<=1.17' target_platform: diff --git a/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.11.____cpython.yaml b/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.11.____cpython.yaml deleted file mode 100644 index 3147d8a..0000000 --- a/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.11.____cpython.yaml +++ /dev/null @@ -1,72 +0,0 @@ -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.28' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '13.0' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.11.* *_cpython -six: -- '>=1.16,<=1.17' -target_platform: -- linux-64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version -zlib: -- '1' diff --git a/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.12.____cpython.yaml b/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.12.____cpython.yaml deleted file mode 100644 index 6a07b47..0000000 --- a/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.12.____cpython.yaml +++ /dev/null @@ -1,72 +0,0 @@ -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.28' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '13.0' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.12.* *_cpython -six: -- '>=1.16,<=1.17' -target_platform: -- linux-64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version -zlib: -- '1' diff --git a/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.13.____cp313.yaml b/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.13.____cp313.yaml deleted file mode 100644 index 33a38f4..0000000 --- a/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.13.____cp313.yaml +++ /dev/null @@ -1,72 +0,0 @@ -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.28' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '13.0' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.13.* *_cp313 -six: -- '>=1.16,<=1.17' -target_platform: -- linux-64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version -zlib: -- '1' diff --git a/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.14.____cp314.yaml b/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.14.____cp314.yaml deleted file mode 100644 index 1011543..0000000 --- a/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.14.____cp314.yaml +++ /dev/null @@ -1,72 +0,0 @@ -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.28' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '13.0' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.14.* *_cp314 -six: -- '>=1.16,<=1.17' -target_platform: -- linux-64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.10.____cpython.yaml b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9.yaml similarity index 93% rename from .ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.10.____cpython.yaml rename to .ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9.yaml index cc5ff35..535f11b 100644 --- a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.10.____cpython.yaml +++ b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9.yaml @@ -62,6 +62,10 @@ pin_run_as_build: max_pin: x.x python: - 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.14.* *_cp314 six: - '>=1.16,<=1.17' target_platform: diff --git a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.11.____cpython.yaml b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.11.____cpython.yaml deleted file mode 100644 index 347e3d2..0000000 --- a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.11.____cpython.yaml +++ /dev/null @@ -1,75 +0,0 @@ -arm_variant_type: -- sbsa -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '12.9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.11.* *_cpython -six: -- '>=1.16,<=1.17' -target_platform: -- linux-aarch64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version - - arm_variant_type -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.12.____cpython.yaml b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.12.____cpython.yaml deleted file mode 100644 index 9e1d0af..0000000 --- a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.12.____cpython.yaml +++ /dev/null @@ -1,75 +0,0 @@ -arm_variant_type: -- sbsa -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '12.9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.12.* *_cpython -six: -- '>=1.16,<=1.17' -target_platform: -- linux-aarch64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version - - arm_variant_type -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.13.____cp313.yaml b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.13.____cp313.yaml deleted file mode 100644 index 4bbcce0..0000000 --- a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.13.____cp313.yaml +++ /dev/null @@ -1,75 +0,0 @@ -arm_variant_type: -- sbsa -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '12.9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.13.* *_cp313 -six: -- '>=1.16,<=1.17' -target_platform: -- linux-aarch64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version - - arm_variant_type -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.14.____cp314.yaml b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.14.____cp314.yaml deleted file mode 100644 index fd76b5a..0000000 --- a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.14.____cp314.yaml +++ /dev/null @@ -1,75 +0,0 @@ -arm_variant_type: -- sbsa -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '12.9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.14.* *_cp314 -six: -- '>=1.16,<=1.17' -target_platform: -- linux-aarch64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version - - arm_variant_type -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.11.____cpython.yaml b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0.yaml similarity index 93% rename from .ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.11.____cpython.yaml rename to .ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0.yaml index 31c3fa5..e1e79e9 100644 --- a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.11.____cpython.yaml +++ b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0.yaml @@ -61,7 +61,11 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: +- 3.10.* *_cpython - 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.14.* *_cp314 six: - '>=1.16,<=1.17' target_platform: diff --git a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.10.____cpython.yaml b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.10.____cpython.yaml deleted file mode 100644 index a1cc7be..0000000 --- a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.10.____cpython.yaml +++ /dev/null @@ -1,75 +0,0 @@ -arm_variant_type: -- sbsa -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.28' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '13.0' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -six: -- '>=1.16,<=1.17' -target_platform: -- linux-aarch64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version - - arm_variant_type -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.12.____cpython.yaml b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.12.____cpython.yaml deleted file mode 100644 index 99fe66a..0000000 --- a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.12.____cpython.yaml +++ /dev/null @@ -1,75 +0,0 @@ -arm_variant_type: -- sbsa -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.28' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '13.0' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.12.* *_cpython -six: -- '>=1.16,<=1.17' -target_platform: -- linux-aarch64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version - - arm_variant_type -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.13.____cp313.yaml b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.13.____cp313.yaml deleted file mode 100644 index f82f4dc..0000000 --- a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.13.____cp313.yaml +++ /dev/null @@ -1,75 +0,0 @@ -arm_variant_type: -- sbsa -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.28' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '13.0' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.13.* *_cp313 -six: -- '>=1.16,<=1.17' -target_platform: -- linux-aarch64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version - - arm_variant_type -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.14.____cp314.yaml b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.14.____cp314.yaml deleted file mode 100644 index a73afab..0000000 --- a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.14.____cp314.yaml +++ /dev/null @@ -1,75 +0,0 @@ -arm_variant_type: -- sbsa -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.28' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '13.0' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.14.* *_cp314 -six: -- '>=1.16,<=1.17' -target_platform: -- linux-aarch64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version - - arm_variant_type -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.11.____cpython.yaml b/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9.yaml similarity index 93% rename from .ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.11.____cpython.yaml rename to .ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9.yaml index 21f16b8..f3b9c33 100644 --- a/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.11.____cpython.yaml +++ b/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9.yaml @@ -61,7 +61,11 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: +- 3.10.* *_cpython - 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.14.* *_cp314 six: - '>=1.16,<=1.17' target_platform: diff --git a/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.10.____cpython.yaml b/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.10.____cpython.yaml deleted file mode 100644 index e66453c..0000000 --- a/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.10.____cpython.yaml +++ /dev/null @@ -1,75 +0,0 @@ -arm_variant_type: -- tegra -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.34' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '12.9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -six: -- '>=1.16,<=1.17' -target_platform: -- linux-aarch64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version - - arm_variant_type -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.12.____cpython.yaml b/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.12.____cpython.yaml deleted file mode 100644 index a454f6c..0000000 --- a/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.12.____cpython.yaml +++ /dev/null @@ -1,75 +0,0 @@ -arm_variant_type: -- tegra -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.34' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '12.9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.12.* *_cpython -six: -- '>=1.16,<=1.17' -target_platform: -- linux-aarch64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version - - arm_variant_type -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.13.____cp313.yaml b/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.13.____cp313.yaml deleted file mode 100644 index 07a463e..0000000 --- a/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.13.____cp313.yaml +++ /dev/null @@ -1,75 +0,0 @@ -arm_variant_type: -- tegra -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.34' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '12.9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.13.* *_cp313 -six: -- '>=1.16,<=1.17' -target_platform: -- linux-aarch64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version - - arm_variant_type -zlib: -- '1' diff --git a/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.14.____cp314.yaml b/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.14.____cp314.yaml deleted file mode 100644 index 3aaf1d3..0000000 --- a/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.14.____cp314.yaml +++ /dev/null @@ -1,75 +0,0 @@ -arm_variant_type: -- tegra -astunparse: -- '>=1.6.0,<=1.6.3' -aws_sdk_cpp: -- 1.11.747 -black: -- 25.* -c_stdlib: -- sysroot -c_stdlib_version: -- '2.34' -cfitsio: -- 4.6.3 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- cuda-nvcc -cuda_compiler_version: -- '12.9' -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -dm_tree: -- <=0.1.9 -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -ffmpeg: -- '8' -gast: -- '>=0.3.3,<=0.7.0' -libabseil: -- '20260107' -libboost_headers: -- 1.89.* -libjpeg_turbo: -- '3' -libnvcomp: -- 5.1.0.* -libnvimgcodec: -- 0.7.* -libnvjpeg2k: -- '>=0.8.0,<0.10.0' -libopencv: -- 4.13.0 -libprotobuf: -- 6.33.5 -libsndfile: -- '1.2' -libtiff: -- '4.7' -lmdb: -- 0.9.29 -packaging: -- <=25.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.14.* *_cp314 -six: -- '>=1.16,<=1.17' -target_platform: -- linux-aarch64 -zip_keys: -- - cxx_compiler_version - - c_stdlib_version - - cuda_compiler_version - - arm_variant_type -zlib: -- '1' diff --git a/.ci_support/migrations/absl_grpc_proto.yaml b/.ci_support/migrations/absl_grpc_proto.yaml deleted file mode 100644 index 058ccee..0000000 --- a/.ci_support/migrations/absl_grpc_proto.yaml +++ /dev/null @@ -1,21 +0,0 @@ -__migrator: - build_number: 1 - commit_message: Rebuild for libabseil 20250127, libgrpc 1.71 & libprotobuf 5.29.3 - kind: version - migration_number: 1 - exclude: - - abseil-cpp - - grpc-cpp - - libprotobuf - - protobuf - - re2 -libabseil: -- 20250127 -libgrpc: -- "1.71" -libprotobuf: -- 5.29.3 -# see https://github.com/grpc/grpc/commit/14ac94d923b80650e0df55bed17be5efa0e4becd -c_stdlib_version: # [osx and x86_64] - - 10.14 # [osx and x86_64] -migrator_ts: 1741118046.5882597 diff --git a/.ci_support/migrations/absl_grpc_proto_25Q2.yaml b/.ci_support/migrations/absl_grpc_proto_25Q2.yaml deleted file mode 100644 index 10b7a09..0000000 --- a/.ci_support/migrations/absl_grpc_proto_25Q2.yaml +++ /dev/null @@ -1,29 +0,0 @@ -__migrator: - build_number: 1 - commit_message: Rebuild for libabseil 20250512, libgrpc 1.73 & libprotobuf 6.31.1 - kind: version - migration_number: 1 - exclude: - # core deps - - abseil-cpp - - grpc-cpp - - libprotobuf - # required for building/testing - - protobuf - - re2 - # bazel stack - - bazel - - grpc_java_plugin - - singlejar -libabseil: -- 20250512 -libgrpc: -- "1.73" -libprotobuf: -- 6.31.1 -# we need to leave this migration open until we're ready to move the global baseline, see -# https://github.com/conda-forge/conda-forge.github.io/issues/2467; grpc 1.72 requires 11.0, -# see https://github.com/grpc/grpc/commit/f122d248443c81592e748da1adb240cbf0a0231c -c_stdlib_version: # [osx] - - 11.0 # [osx] -migrator_ts: 1748506837.6039238 diff --git a/.ci_support/migrations/cuda129.yaml b/.ci_support/migrations/cuda129.yaml deleted file mode 100644 index 5074cd1..0000000 --- a/.ci_support/migrations/cuda129.yaml +++ /dev/null @@ -1,57 +0,0 @@ -migrator_ts: 1738229377 -__migrator: - kind: - version - migration_number: - 1 - build_number: - 1 - paused: false - override_cbc_keys: - - cuda_compiler_stub - check_solvable: false - primary_key: cuda_compiler_version - ordering: - cuda_compiler_version: - - 12.4 - - 12.6 - - 12.8 - - None - - 12.9 - # to allow manual opt-in for CUDA 11.8, see - # https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/7472 - # must be last due to how cuda_compiler ordering in that migrator works - - 11.8 - commit_message: | - Upgrade to CUDA 12.9 - - CUDA 12.8 added support for architectures `sm_100`, `sm_101` and `sm_120`, - while CUDA 12.9 further added `sm_103` and `sm_121`. To build for these, - maintainers will need to modify their existing list of specified architectures - (e.g. `CMAKE_CUDA_ARCHITECTURES`, `TORCH_CUDA_ARCH_LIST`, etc.) - for their package. A good balance between broad support and storage - footprint (resp. compilation time) is to add `sm_100` and `sm_120`. - - Since CUDA 12.8, the conda-forge nvcc package now sets `CUDAARCHS` and - `TORCH_CUDA_ARCH_LIST` in its activation script to a string containing all - of the supported real architectures plus the virtual architecture of the - latest. Recipes for packages who use these variables to control their build - but do not want to build for all supported architectures will need to override - these variables in their build script. - - ref: https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#new-features - -cuda_compiler_version: # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 12.9 # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -cuda_compiler_version_min: # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 12.9 # [((linux and (x86_64 or aarch64)) or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -c_compiler_version: # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 14 # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -cxx_compiler_version: # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 14 # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - -fortran_compiler_version: # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] - - 14 # [(linux and (x86_64 or aarch64)) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"] diff --git a/.ci_support/migrations/libopencv4130.yaml b/.ci_support/migrations/libopencv4130.yaml deleted file mode 100644 index 35ce92f..0000000 --- a/.ci_support/migrations/libopencv4130.yaml +++ /dev/null @@ -1,8 +0,0 @@ -__migrator: - build_number: 1 - commit_message: Rebuild for libopencv 4.13.0 - kind: version - migration_number: 1 -libopencv: -- 4.13.0 -migrator_ts: 1769569940.517031 diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml new file mode 100644 index 0000000..bd24ee5 --- /dev/null +++ b/.ci_support/osx_64_.yaml @@ -0,0 +1,12 @@ +MACOSX_DEPLOYMENT_TARGET: +- '11.0' +MACOSX_SDK_VERSION: +- '11.0' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +macos_machine: +- x86_64-apple-darwin13.4.0 +target_platform: +- osx-64 diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml new file mode 100644 index 0000000..e717348 --- /dev/null +++ b/.ci_support/win_64_.yaml @@ -0,0 +1,6 @@ +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +target_platform: +- win-64 diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index a948c6c..37fec99 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -1,15 +1,221 @@ -# This file was added automatically by admin-migrations. Do not modify. -# It ensures that Github Actions can run once rerendered for the first time. +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. # -*- mode: yaml -*- name: Build conda package on: - workflow_dispatch: + push: + + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: true jobs: build: - name: Disabled build - runs-on: ubuntu-slim - if: false + name: ${{ matrix.CONFIG }} + runs-on: ${{ matrix.runs_on }} + timeout-minutes: 360 + strategy: + fail-fast: false + max-parallel: 50 + matrix: + include: + - CONFIG: linux_64_c_stdlib_version2.17cuda_compiler_version12.9 + STORE_BUILD_ARTIFACTS: True + SHORT_CONFIG: linux_64_c_stdlib_version2.17cuda_compil_hd7918865 + UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['ubuntu-latest'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + - CONFIG: linux_64_c_stdlib_version2.28cuda_compiler_version13.0 + STORE_BUILD_ARTIFACTS: True + SHORT_CONFIG: linux_64_c_stdlib_version2.28cuda_compil_h282d3825 + UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['ubuntu-latest'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + - CONFIG: linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9 + STORE_BUILD_ARTIFACTS: True + SHORT_CONFIG: linux_aarch64_arm_variant_typesbsac_stdl_h6a4a0357 + UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['ubuntu-latest'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + - CONFIG: linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0 + STORE_BUILD_ARTIFACTS: True + SHORT_CONFIG: linux_aarch64_arm_variant_typesbsac_stdl_h1d8a58f0 + UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['ubuntu-latest'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + - CONFIG: linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9 + STORE_BUILD_ARTIFACTS: True + SHORT_CONFIG: linux_aarch64_arm_variant_typetegrac_std_h645bfee9 + UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['ubuntu-latest'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 steps: - - run: exit 0 + + - name: Checkout code + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Build on Linux + id: build-linux + if: matrix.os == 'ubuntu' + env: + CONFIG: ${{ matrix.CONFIG }} + UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + DOCKER_IMAGE: ${{ matrix.DOCKER_IMAGE }} + CI: github_actions + CONDA_FORGE_DOCKER_RUN_ARGS: "${{ matrix.CONDA_FORGE_DOCKER_RUN_ARGS }}" + BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} + FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} + STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} + shell: bash + run: | + if [[ "$(uname -m)" == "x86_64" ]]; then + echo "::group::Configure binfmt_misc" + docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + fi + export flow_run_id="github_$GITHUB_RUN_ID" + export remote_url="https://github.com/$GITHUB_REPOSITORY" + export sha="$GITHUB_SHA" + export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" + export GIT_BRANCH="$(basename $GITHUB_REF)" + if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then + export IS_PR_BUILD="True" + else + export IS_PR_BUILD="False" + fi + echo "::endgroup::" + ./.scripts/run_docker_build.sh + + - name: Build on macOS + id: build-macos + if: matrix.os == 'macos' + env: + CONFIG: ${{ matrix.CONFIG }} + UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + CI: github_actions + BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} + FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} + STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} + shell: bash + run: | + export flow_run_id="github_$GITHUB_RUN_ID" + export remote_url="https://github.com/$GITHUB_REPOSITORY" + export sha="$GITHUB_SHA" + export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" + export GIT_BRANCH="$(basename $GITHUB_REF)" + if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then + export IS_PR_BUILD="True" + else + export IS_PR_BUILD="False" + fi + ./.scripts/run_osx_build.sh + + - name: Build on windows + id: build-windows + if: matrix.os == 'windows' + shell: cmd + run: | + set "flow_run_id=github_%GITHUB_RUN_ID%" + set "remote_url=https://github.com/%GITHUB_REPOSITORY%" + set "sha=%GITHUB_SHA%" + call ".scripts\run_win_build.bat" + env: + # default value; make it explicit, as it needs to match with artefact + # generation below. Not configurable for now, can be revisited later + CONDA_BLD_PATH: C:\bld + MINIFORGE_HOME: ${{ contains(runner.arch, 'ARM') && 'C' || 'D' }}:\Miniforge + PYTHONUNBUFFERED: 1 + CONFIG: ${{ matrix.CONFIG }} + CI: github_actions + UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} + FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} + STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} + + - name: Determine build outcome + # this is to merge the status of the linux/osx/win builds into + # something we can easily reuse during artefact generation + id: determine-status + if: ${{ always() }} + shell: bash + env: + OS: ${{ matrix.os }} + run: | + if [[ "$OS" == "ubuntu" ]]; then + STATUS=${{ steps.build-linux.outcome }} + elif [[ "$OS" == "macos" ]]; then + STATUS=${{ steps.build-macos.outcome }} + elif [[ "$OS" == "windows" ]]; then + STATUS=${{ steps.build-windows.outcome }} + fi + if [ -z "$STATUS" ]; then + # steps that never ran will have empty status + STATUS="cancelled" + fi + echo "status=$STATUS" >> $GITHUB_OUTPUT + + - name: Prepare conda build artifacts + continue-on-error: true + id: prepare-artifacts + shell: bash + # we do not want to trigger artefact creation if the build was cancelled + if: ${{ always() && steps.determine-status.outputs.status != 'cancelled' && matrix.STORE_BUILD_ARTIFACTS }} + env: + CI: github_actions + CONFIG: ${{ matrix.CONFIG }} + SHORT_CONFIG: ${{ matrix.SHORT_CONFIG }} + JOB_STATUS: ${{ steps.determine-status.outputs.status }} + OS: ${{ matrix.os }} + run: | + export CI_RUN_ID=$GITHUB_RUN_ID + export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" + export ARTIFACT_STAGING_DIR="$GITHUB_WORKSPACE" + if [ $OS == "macos" ]; then + export CONDA_BLD_PATH="${MINIFORGE_HOME:-${HOME}/miniforge3}/conda-bld" + elif [ $OS == "windows" ]; then + # this needs to be consistent with build step, see above + export CONDA_BLD_PATH="C:\\bld" + else + export CONDA_BLD_PATH="build_artifacts" + fi + # Archive everything in CONDA_BLD_PATH except environments + # Archive the CONDA_BLD_PATH environments only when the job fails + # Use different prefix for successful and failed build artifacts + # so random failures don't prevent rebuilds from creating artifacts. + if [ $JOB_STATUS == "failure" ]; then + export BLD_ARTIFACT_PREFIX="conda_artifacts" + export ENV_ARTIFACT_PREFIX="conda_envs" + else + export BLD_ARTIFACT_PREFIX="conda_pkgs" + fi + if [ $OS == "windows" ]; then + pwsh -Command ". '.scripts/create_conda_build_artifacts.bat'" + else + ./.scripts/create_conda_build_artifacts.sh + fi + + - name: Store conda build artifacts + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 + if: ${{ always() && steps.prepare-artifacts.outcome == 'success' }} + with: + name: ${{ steps.prepare-artifacts.outputs.BLD_ARTIFACT_NAME }} + path: ${{ steps.prepare-artifacts.outputs.BLD_ARTIFACT_PATH }} + retention-days: 14 + continue-on-error: true + + - name: Store conda build environment artifacts + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 + # only relevant if build failed, see above + if: ${{ always() && steps.determine-status.outputs.status == 'failure' && steps.prepare-artifacts.outcome == 'success' }} + with: + name: ${{ steps.prepare-artifacts.outputs.ENV_ARTIFACT_NAME }} + path: ${{ steps.prepare-artifacts.outputs.ENV_ARTIFACT_PATH }} + retention-days: 14 + continue-on-error: true \ No newline at end of file diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 5c71bce..80306f8 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -20,6 +20,7 @@ export PYTHONUNBUFFERED=1 export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" +export RATTLER_CACHE_DIR="${FEEDSTOCK_ROOT}/build_artifacts/pkg_cache" cat >~/.condarc <> !GITHUB_OUTPUT! + echo BLD_ARTIFACT_PATH=!BLD_ARTIFACT_PATH!>> !GITHUB_OUTPUT! + ) +) + +rem Make the environments artifact zip +if defined ENV_ARTIFACT_PREFIX ( + set ENV_ARTIFACT_NAME=!ENV_ARTIFACT_PREFIX!_%ARTIFACT_UNIQUE_ID% + echo ENV_ARTIFACT_NAME: !ENV_ARTIFACT_NAME! + + set "ENV_ARTIFACT_PATH=%ARTIFACT_STAGING_DIR%\%FEEDSTOCK_NAME%_%ENV_ARTIFACT_PREFIX%_%ARCHIVE_UNIQUE_ID%.zip" + 7z a "!ENV_ARTIFACT_PATH!" -r "%CONDA_BLD_PATH%"/_*_env*/ -bb + if errorlevel 1 exit 1 + echo ENV_ARTIFACT_PATH: !ENV_ARTIFACT_PATH! + + if "%CI%" == "azure" ( + echo ##vso[task.setVariable variable=ENV_ARTIFACT_NAME]!ENV_ARTIFACT_NAME! + echo ##vso[task.setVariable variable=ENV_ARTIFACT_PATH]!ENV_ARTIFACT_PATH! + ) + if "%CI%" == "github_actions" ( + echo ENV_ARTIFACT_NAME=!ENV_ARTIFACT_NAME!>> !GITHUB_OUTPUT! + echo ENV_ARTIFACT_PATH=!ENV_ARTIFACT_PATH!>> !GITHUB_OUTPUT! + ) +) diff --git a/.scripts/create_conda_build_artifacts.sh b/.scripts/create_conda_build_artifacts.sh index 819c3b9..1e3acc7 100755 --- a/.scripts/create_conda_build_artifacts.sh +++ b/.scripts/create_conda_build_artifacts.sh @@ -7,7 +7,7 @@ # FEEDSTOCK_NAME # CONFIG (build matrix configuration string) # SHORT_CONFIG (uniquely-shortened configuration string) -# CONDA_BLD_DIR (path to the conda-bld directory) +# CONDA_BLD_PATH (path to the conda-bld directory) # ARTIFACT_STAGING_DIR (use working directory if unset) # BLD_ARTIFACT_PREFIX (prefix for the conda build artifact name, skip if unset) # ENV_ARTIFACT_PREFIX (prefix for the conda build environments artifact name, skip if unset) @@ -26,7 +26,7 @@ source .scripts/logging_utils.sh set -e # Check that the conda-build directory exists -if [ ! -d "$CONDA_BLD_DIR" ]; then +if [ ! -d "$CONDA_BLD_PATH" ]; then echo "conda-build directory does not exist" exit 1 fi @@ -64,8 +64,8 @@ if [[ ! -z "$BLD_ARTIFACT_PREFIX" ]]; then ( startgroup "Archive conda build directory" ) 2> /dev/null # Try 7z and fall back to zip if it fails (for cross-platform use) - if ! 7z a "$BLD_ARTIFACT_PATH" "$CONDA_BLD_DIR" '-xr!.git/' '-xr!_*_env*/' '-xr!*_cache/' -bb; then - pushd "$CONDA_BLD_DIR" + if ! 7z a "$BLD_ARTIFACT_PATH" "$CONDA_BLD_PATH" '-xr!.git/' '-xr!_*_env*/' '-xr!*_cache/' -bb; then + pushd "$CONDA_BLD_PATH" zip -r -y -T "$BLD_ARTIFACT_PATH" . -x '*.git/*' '*_*_env*/*' '*_cache/*' popd fi @@ -92,8 +92,8 @@ if [[ ! -z "$ENV_ARTIFACT_PREFIX" ]]; then ( startgroup "Archive conda build environments" ) 2> /dev/null # Try 7z and fall back to zip if it fails (for cross-platform use) - if ! 7z a "$ENV_ARTIFACT_PATH" -r "$CONDA_BLD_DIR"/'_*_env*/' -bb; then - pushd "$CONDA_BLD_DIR" + if ! 7z a "$ENV_ARTIFACT_PATH" -r "$CONDA_BLD_PATH"/'_*_env*/' -bb; then + pushd "$CONDA_BLD_PATH" zip -r -y -T "$ENV_ARTIFACT_PATH" . -i '*_*_env*/*' popd fi diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index b63b5a0..10d6a2a 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -11,6 +11,8 @@ source .scripts/logging_utils.sh set -xeo pipefail +DOCKER_EXECUTABLE="${DOCKER_EXECUTABLE:-docker}" + THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" PROVIDER_DIR="$(basename "$THISDIR")" @@ -27,7 +29,7 @@ if [[ "${sha:-}" == "" ]]; then popd fi -docker info +${DOCKER_EXECUTABLE} info # In order for the conda-build process in the container to write to the mounted # volumes, we need to run with the same id as the host machine, which is @@ -35,6 +37,7 @@ docker info export HOST_USER_ID=$(id -u) # Check if docker-machine is being used (normally on OSX) and get the uid from # the VM + if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) fi @@ -76,16 +79,34 @@ if [ -z "${CI}" ]; then DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" fi -( endgroup "Configure Docker" ) 2> /dev/null +# Default volume suffix for Docker (preserve original behavior) +VOLUME_SUFFIX=",z" +# Podman-specific handling +if [ "${DOCKER_EXECUTABLE}" = "podman" ]; then + # Fix file permissions for rootless podman builds + podman unshare chown -R ${HOST_USER_ID}:${HOST_USER_ID} "${ARTIFACTS}" + podman unshare chown -R ${HOST_USER_ID}:${HOST_USER_ID} "${RECIPE_ROOT}" + + # Add SELinux label only if enforcing + if command -v getenforce &>/dev/null && [ "$(getenforce)" = "Enforcing" ]; then + VOLUME_SUFFIX=",z" + else + VOLUME_SUFFIX="" + fi +fi + +( endgroup "Configure Docker" ) 2> /dev/null ( startgroup "Start Docker" ) 2> /dev/null export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" export IS_PR_BUILD="${IS_PR_BUILD:-False}" -docker pull "${DOCKER_IMAGE}" -docker run ${DOCKER_RUN_ARGS} \ - -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \ - -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \ + +${DOCKER_EXECUTABLE} pull "${DOCKER_IMAGE}" + +${DOCKER_EXECUTABLE} run ${DOCKER_RUN_ARGS} \ + -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw${VOLUME_SUFFIX},delegated \ + -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw${VOLUME_SUFFIX},delegated \ -e CONFIG \ -e HOST_USER_ID \ -e UPLOAD_PACKAGES \ diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh new file mode 100755 index 0000000..3369f62 --- /dev/null +++ b/.scripts/run_osx_build.sh @@ -0,0 +1,127 @@ +#!/usr/bin/env bash + +# -*- mode: jinja-shell -*- + +source .scripts/logging_utils.sh + +set -xe + +MINIFORGE_HOME="${MINIFORGE_HOME:-${HOME}/miniforge3}" +MINIFORGE_HOME="${MINIFORGE_HOME%/}" # remove trailing slash +export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${MINIFORGE_HOME}/conda-bld}" + +( startgroup "Provisioning base env with micromamba" ) 2> /dev/null +MICROMAMBA_VERSION="1.5.10-0" +if [[ "$(uname -m)" == "arm64" ]]; then + osx_arch="osx-arm64" +else + osx_arch="osx-64" +fi +MICROMAMBA_URL="https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-${osx_arch}" +MAMBA_ROOT_PREFIX="${MINIFORGE_HOME}-micromamba-$(date +%s)" +echo "Downloading micromamba ${MICROMAMBA_VERSION}" +micromamba_exe="$(mktemp -d)/micromamba" +curl -L -o "${micromamba_exe}" "${MICROMAMBA_URL}" +chmod +x "${micromamba_exe}" +echo "Creating environment" +"${micromamba_exe}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ + --channel conda-forge \ + pip rattler-build conda-forge-ci-setup=4 "conda-build>=24.1" +echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" +mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" +echo "Cleaning up micromamba" +rm -rf "${MAMBA_ROOT_PREFIX}" "${micromamba_exe}" || true +( endgroup "Provisioning base env with micromamba" ) 2> /dev/null + +( startgroup "Configuring conda" ) 2> /dev/null +echo "Activating environment" +source "${MINIFORGE_HOME}/etc/profile.d/conda.sh" +conda activate base +export CONDA_SOLVER="libmamba" +export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 + + + + + +echo -e "\n\nSetting up the condarc and mangling the compiler." +setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml + +if [[ "${CI:-}" != "" ]]; then + mangle_compiler ./ ./recipe .ci_support/${CONFIG}.yaml +fi + +if [[ "${CI:-}" != "" ]]; then + echo -e "\n\nMangling homebrew in the CI to avoid conflicts." + /usr/bin/sudo mangle_homebrew + /usr/bin/sudo -k +else + echo -e "\n\nNot mangling homebrew as we are not running in CI" +fi + +if [[ "${sha:-}" == "" ]]; then + sha=$(git rev-parse HEAD) +fi + +if [[ "${OSX_SDK_DIR:-}" == "" ]]; then + if [[ "${CI:-}" == "" ]]; then + echo "Please set OSX_SDK_DIR to a directory where SDKs can be downloaded to. Aborting" + exit 1 + else + export OSX_SDK_DIR=/opt/conda-sdks + /usr/bin/sudo mkdir -p "${OSX_SDK_DIR}" + /usr/bin/sudo chown "${USER}" "${OSX_SDK_DIR}" + fi +else + if tmpf=$(mktemp -p "$OSX_SDK_DIR" tmp.XXXXXXXX 2>/dev/null); then + rm -f "$tmpf" + echo "OSX_SDK_DIR is writeable without sudo, continuing" + else + echo "User-provided OSX_SDK_DIR is not writeable for current user! Aborting" + exit 1 + fi +fi + +echo -e "\n\nRunning the build setup script." +source run_conda_forge_build_setup + + + +( endgroup "Configuring conda" ) 2> /dev/null + +if [[ -f LICENSE.txt ]]; then + cp LICENSE.txt "recipe/recipe-scripts-license.txt" +fi + +if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then + echo "rattler-build does not currently support debug mode" +else + + rattler-build build --recipe ./recipe \ + -m ./.ci_support/${CONFIG}.yaml \ + ${EXTRA_CB_OPTIONS:-} \ + --target-platform "${HOST_PLATFORM}" \ + --extra-meta flow_run_id="$flow_run_id" \ + --extra-meta remote_url="$remote_url" \ + --extra-meta sha="$sha" + + ( startgroup "Inspecting artifacts" ) 2> /dev/null + + # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir ./recipe -m ./.ci_support/${CONFIG}.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" + + ( endgroup "Inspecting artifacts" ) 2> /dev/null + ( startgroup "Validating outputs" ) 2> /dev/null + + validate_recipe_outputs "${FEEDSTOCK_NAME}" + + ( endgroup "Validating outputs" ) 2> /dev/null + + ( startgroup "Uploading packages" ) 2> /dev/null + + if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then + upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" ./ ./recipe ./.ci_support/${CONFIG}.yaml + fi + + ( endgroup "Uploading packages" ) 2> /dev/null +fi diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat new file mode 100755 index 0000000..6ec69f5 --- /dev/null +++ b/.scripts/run_win_build.bat @@ -0,0 +1,146 @@ +:: PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here +:: will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent +:: changes to this script, consider a proposal to conda-smithy so that other feedstocks can also +:: benefit from the improvement. + +:: INPUTS (required environment variables) +:: CONFIG: name of the .ci_support/*.yaml file for this job +:: CI: azure, github_actions, or unset +:: MINIFORGE_HOME: where to install the base conda environment +:: UPLOAD_PACKAGES: true or false +:: UPLOAD_ON_BRANCH: true or false + +setlocal enableextensions enabledelayedexpansion + +FOR %%A IN ("%~dp0.") DO SET "REPO_ROOT=%%~dpA" +if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3" +:: Remove trailing backslash, if present +if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%" +call :start_group "Provisioning base env with micromamba" +set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%" +set "MICROMAMBA_VERSION=1.5.10-0" +set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64" +set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%" +set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" + +echo Downloading micromamba %MICROMAMBA_VERSION% +if not exist "%MICROMAMBA_TMPDIR%" mkdir "%MICROMAMBA_TMPDIR%" +powershell -ExecutionPolicy Bypass -Command "(New-Object Net.WebClient).DownloadFile('%MICROMAMBA_URL%', '%MICROMAMBA_EXE%')" +if !errorlevel! neq 0 exit /b !errorlevel! + +echo Creating environment +call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^ + --channel conda-forge ^ + pip rattler-build conda-forge-ci-setup=4 "conda-build>=24.1" +if !errorlevel! neq 0 exit /b !errorlevel! +echo Removing %MAMBA_ROOT_PREFIX% +del /S /Q "%MAMBA_ROOT_PREFIX%" >nul +del /S /Q "%MICROMAMBA_TMPDIR%" >nul +call :end_group + +call :start_group "Configuring conda" + +:: Activate the base conda environment +echo Activating environment +call "%MINIFORGE_HOME%\Scripts\activate.bat" +:: Configure the solver +set "CONDA_SOLVER=libmamba" +if !errorlevel! neq 0 exit /b !errorlevel! +set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" + +:: Set basic configuration +echo Setting up configuration +setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml +if !errorlevel! neq 0 exit /b !errorlevel! +echo Running build setup +CALL run_conda_forge_build_setup + + +if !errorlevel! neq 0 exit /b !errorlevel! + +if EXIST LICENSE.txt ( + echo Copying feedstock license + copy LICENSE.txt "recipe\\recipe-scripts-license.txt" +) + +if NOT [%flow_run_id%] == [] ( + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% --extra-meta remote_url=%remote_url% --extra-meta sha=%sha%" +) + +call :end_group + +:: Build the recipe +echo Building recipe +rattler-build.exe build --recipe "recipe" -m .ci_support\%CONFIG%.yaml %EXTRA_CB_OPTIONS% --target-platform %HOST_PLATFORM% +if !errorlevel! neq 0 exit /b !errorlevel! + +call :start_group "Inspecting artifacts" +:: inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 +WHERE inspect_artifacts >nul 2>nul && inspect_artifacts --recipe-dir ".\recipe" -m .ci_support\%CONFIG%.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" +call :end_group + +:: Prepare some environment variables for the upload step +if /i "%CI%" == "github_actions" ( + set "FEEDSTOCK_NAME=%GITHUB_REPOSITORY:*/=%" + set "GIT_BRANCH=%GITHUB_REF:refs/heads/=%" + if /i "%GITHUB_EVENT_NAME%" == "pull_request" ( + set "IS_PR_BUILD=True" + ) else ( + set "IS_PR_BUILD=False" + ) + set "TEMP=%RUNNER_TEMP%" +) +if /i "%CI%" == "azure" ( + set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" + set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%" + if /i "%BUILD_REASON%" == "PullRequest" ( + set "IS_PR_BUILD=True" + ) else ( + set "IS_PR_BUILD=False" + ) + set "TEMP=%UPLOAD_TEMP%" +) + +:: Validate +call :start_group "Validating outputs" +validate_recipe_outputs "%FEEDSTOCK_NAME%" +if !errorlevel! neq 0 exit /b !errorlevel! +call :end_group + +if /i "%UPLOAD_PACKAGES%" == "true" ( + if /i "%IS_PR_BUILD%" == "false" ( + call :start_group "Uploading packages" + if not exist "%TEMP%\" md "%TEMP%" + set "TMP=%TEMP%" + upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml + if !errorlevel! neq 0 exit /b !errorlevel! + call :end_group + ) +) + +exit + +:: Logging subroutines + +:start_group +if /i "%CI%" == "github_actions" ( + echo ::group::%~1 + exit /b +) +if /i "%CI%" == "azure" ( + echo ##[group]%~1 + exit /b +) +echo %~1 +exit /b + +:end_group +if /i "%CI%" == "github_actions" ( + echo ::endgroup:: + exit /b +) +if /i "%CI%" == "azure" ( + echo ##[endgroup] + exit /b +) +exit /b diff --git a/README.md b/README.md index 35d5387..3f72ccd 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,33 @@ -About nvidia-dali-python-feedstock -================================== +About nvidia-dali-feedstock +=========================== Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/nvidia-dali-python-feedstock/blob/main/LICENSE.txt) + +About nvidia-dali +----------------- + +Home: https://github.com/NVIDIA/dali + +Package license: Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause + +Summary: A GPU-accelerated library for data loading and pre-processing to accelerate deep learning applications. + +About nvidia-dali-native +------------------------ + +Home: https://github.com/NVIDIA/dali + +Package license: Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause + +Summary: DALI native GPU-accelerated data loading libraries (CUDA runtime, Python-independent). + +Native shared libraries for NVIDIA DALI. Contains the core GPU-accelerated +processing engine. Install nvidia-dali-python for the Python API. + +About nvidia-dali-python +------------------------ + Home: https://github.com/NVIDIA/dali Package license: Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause @@ -31,178 +56,52 @@ Current build status - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + @@ -218,53 +117,54 @@ Current release info | Name | Downloads | Version | Platforms | | --- | --- | --- | --- | +| [![Conda Recipe](https://img.shields.io/badge/recipe-nvidia--dali--native-green.svg)](https://anaconda.org/conda-forge/nvidia-dali-native) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/nvidia-dali-native.svg)](https://anaconda.org/conda-forge/nvidia-dali-native) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/nvidia-dali-native.svg)](https://anaconda.org/conda-forge/nvidia-dali-native) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/nvidia-dali-native.svg)](https://anaconda.org/conda-forge/nvidia-dali-native) | | [![Conda Recipe](https://img.shields.io/badge/recipe-nvidia--dali--python-green.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/nvidia-dali-python.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/nvidia-dali-python.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/nvidia-dali-python.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | -Installing nvidia-dali-python -============================= +Installing nvidia-dali +====================== -Installing `nvidia-dali-python` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: +Installing `nvidia-dali` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: ``` conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `nvidia-dali-python` can be installed with `conda`: +Once the `conda-forge` channel has been enabled, `nvidia-dali-native, nvidia-dali-python` can be installed with `conda`: ``` -conda install nvidia-dali-python +conda install nvidia-dali-native nvidia-dali-python ``` or with `mamba`: ``` -mamba install nvidia-dali-python +mamba install nvidia-dali-native nvidia-dali-python ``` -It is possible to list all of the versions of `nvidia-dali-python` available on your platform with `conda`: +It is possible to list all of the versions of `nvidia-dali-native` available on your platform with `conda`: ``` -conda search nvidia-dali-python --channel conda-forge +conda search nvidia-dali-native --channel conda-forge ``` or with `mamba`: ``` -mamba search nvidia-dali-python --channel conda-forge +mamba search nvidia-dali-native --channel conda-forge ``` Alternatively, `mamba repoquery` may provide more information: ``` # Search all versions available on your platform: -mamba repoquery search nvidia-dali-python --channel conda-forge +mamba repoquery search nvidia-dali-native --channel conda-forge -# List packages depending on `nvidia-dali-python`: -mamba repoquery whoneeds nvidia-dali-python --channel conda-forge +# List packages depending on `nvidia-dali-native`: +mamba repoquery whoneeds nvidia-dali-native --channel conda-forge -# List dependencies of `nvidia-dali-python`: -mamba repoquery depends nvidia-dali-python --channel conda-forge +# List dependencies of `nvidia-dali-native`: +mamba repoquery depends nvidia-dali-native --channel conda-forge ``` @@ -309,17 +209,17 @@ Terminology produce the finished article (built conda distributions) -Updating nvidia-dali-python-feedstock -===================================== +Updating nvidia-dali-feedstock +============================== -If you would like to improve the nvidia-dali-python recipe or build a new +If you would like to improve the nvidia-dali recipe or build a new package version, please fork this repository and submit a PR. Upon submission, your changes will be run on the appropriate platforms to give the reviewer an opportunity to confirm that the changes result in a successful build. Once merged, the recipe will be re-built and uploaded automatically to the `conda-forge` channel, whereupon the built conda packages will be available for everybody to install and use from the `conda-forge` channel. -Note that all branches in the conda-forge/nvidia-dali-python-feedstock are +Note that all branches in the conda-forge/nvidia-dali-feedstock are immediately built and any created packages are uploaded, so PRs should be based on branches in forks, and branches in the main repository should only be used to build distinct package versions. diff --git a/azure-pipelines.yml b/azure-pipelines.yml index aa63c81..03594e4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -28,4 +28,5 @@ stages: condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) dependsOn: Check jobs: - - template: ./.azure-pipelines/azure-pipelines-linux.yml \ No newline at end of file + - template: ./.azure-pipelines/azure-pipelines-osx.yml + - template: ./.azure-pipelines/azure-pipelines-win.yml \ No newline at end of file diff --git a/build-locally.py b/build-locally.py index 825a4af..05493e4 100755 --- a/build-locally.py +++ b/build-locally.py @@ -28,13 +28,6 @@ def setup_environment(ns): os.path.dirname(__file__), "miniforge3" ) - # The default cache location might not be writable using docker on macOS. - if ns.config.startswith("linux") and platform.system() == "Darwin": - os.environ["CONDA_FORGE_DOCKER_RUN_ARGS"] = ( - os.environ.get("CONDA_FORGE_DOCKER_RUN_ARGS", "") - + " -e RATTLER_CACHE_DIR=/tmp/rattler_cache" - ) - def run_docker_build(ns): script = ".scripts/run_docker_build.sh" From dcad57541357dfcadec62b818c968bd79127ee73 Mon Sep 17 00:00:00 2001 From: Janusz Lisiecki Date: Mon, 27 Apr 2026 18:32:59 +0200 Subject: [PATCH 03/24] Address DALI split package review - Rename native output to libdali and update subpackage pins - Move shared skips to the top-level build section and remove duplicate output build numbers - Add native package file tests and Python package ownership checks - Keep DALI native headers out of the Python output - Ignore run exports for native dependencies not linked by the Python extension Signed-off-by: Janusz Lisiecki --- recipe/build_python.sh | 16 +++++++--- recipe/recipe.yaml | 72 ++++++++++++++++++++++++++++++++---------- 2 files changed, 67 insertions(+), 21 deletions(-) diff --git a/recipe/build_python.sh b/recipe/build_python.sh index 5b3ffd4..a1dedf6 100755 --- a/recipe/build_python.sh +++ b/recipe/build_python.sh @@ -103,14 +103,20 @@ cmake ${CMAKE_ARGS} \ $SRC_DIR # Build the python bindings -cmake --build . -t dali_python python_function_plugin copy_post_build_target dali_python_generate_stubs install_headers +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" != "1" || "${CROSSCOMPILING_EMULATOR:-}" != "" ]]; then + echo "Building for the same platform, building dali_python_generate_stubs" + cmake --build . -t dali_python python_function_plugin copy_post_build_target dali_python_generate_stubs install_headers + else + echo "Cross-compiling, skipping dali_python_generate_stubs as it requires running the python interpreter and importing DALI" + cmake --build . -t dali_python python_function_plugin copy_post_build_target install_headers +fi cd dali/python -${PYTHON} -m pip install . -v +${PYTHON} -m pip install . -# Remove boost headers that leaked into site-packages and stray gdk libs -rm -rf ${SP_DIR}/nvidia/dali/include/boost -rm -rf ${PREFIX}/lib/gdk* +# libdali owns the native headers; keep them out of the Python output. +rm -rf "${SP_DIR}"/nvidia/dali/include +rm -rf "${PREFIX}"/lib/gdk* # When cross-compiling, Python extension modules are named for the build arch; # rename them to match the target arch. diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index 2eef53a..8ded121 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -25,19 +25,17 @@ source: build: number: 1 + skip: + - cuda_compiler_version == "None" + - win + - osx outputs: - package: - name: nvidia-dali-native + name: libdali version: ${{ version }} build: - number: 0 script: build_native.sh - skip: - - cuda_compiler_version == "None" - - win - - osx - # - match(python, "!=3.12.*") requirements: ignore_run_exports: by_name: @@ -124,6 +122,14 @@ outputs: then: - libnvcomp ${{ libnvcomp }} - libnvimgcodec ${{ libnvimgcodec }} + tests: + - script: + - test -f "${PREFIX}/lib/libdali.so" + - test -f "${PREFIX}/lib/libdali_core.so" + - test -f "${PREFIX}/lib/libdali_kernels.so" + - test -f "${PREFIX}/lib/libdali_operators.so" + - test -f "${PREFIX}/include/dali/c_api.h" + - test -f "${PREFIX}/include/dali/core/common.h" about: summary: DALI native GPU-accelerated data loading libraries (CUDA runtime, Python-independent). description: | @@ -139,16 +145,9 @@ outputs: - package: name: nvidia-dali-python - version: ${{ version }} build: - number: 2 script: build_python.sh - skip: - - cuda_compiler_version == "None" - - win - - osx - # - match(python, "!=3.12.*") requirements: ignore_run_exports: by_name: @@ -165,6 +164,19 @@ outputs: - libnvcomp-dev # Added libprotobuf to pick up channel pinnings, but we use the static package - libprotobuf + # The Python extension links only against libdali*.so and system libs. + - aws-sdk-cpp + - cfitsio + - ffmpeg + - libabseil + - libjpeg-turbo + - libnvjpeg2k-dev + - libopencv + - libsndfile + - libtar + - libtiff + - lmdb + - zlib build: - ${{ compiler('cuda') }} - ${{ compiler('cxx') }} @@ -184,7 +196,7 @@ outputs: - libprotobuf - libprotobuf-static host: - - ${{ pin_subpackage('nvidia-dali-native', upper_bound="x.x.x") }} + - ${{ pin_subpackage('libdali', upper_bound="x.x.x") }} # NOTE: static libraries culibos and nvjpeg required for correct feature detection - if: linux and match(cuda_compiler_version, "13.*") then: @@ -238,7 +250,7 @@ outputs: # Stubs autoformat themselves - black ${{ black }} run: - - ${{ pin_subpackage('nvidia-dali-native', upper_bound="x.x.x") }} + - ${{ pin_subpackage('libdali', upper_bound="x.x.x") }} - python - nvtx - makefun @@ -265,6 +277,34 @@ outputs: script: - pip check - python -c "import nvidia.dali" + - | + python <<'PY' + import glob + import json + import os + + metadata = glob.glob(os.path.join(os.environ["PREFIX"], "conda-meta", "nvidia-dali-python-*.json")) + if len(metadata) != 1: + raise SystemExit(f"Expected one nvidia-dali-python metadata file, found: {metadata}") + with open(metadata[0], encoding="utf-8") as fh: + files = set(json.load(fh)["files"]) + + native_libs = { + "lib/libdali.so", + "lib/libdali_core.so", + "lib/libdali_kernels.so", + "lib/libdali_operators.so", + } + unexpected = sorted( + path + for path in files + if path.startswith("include/dali/") + or path.startswith("lib/python") and "/site-packages/nvidia/dali/include/" in path + or path in native_libs + ) + if unexpected: + raise SystemExit("nvidia-dali-python owns native files: " + ", ".join(unexpected[:20])) + PY - tfrecord2idx --help - wds2idx --help about: From a1b990bcabf7f98e313f45bac34abfc1cb6b6d60 Mon Sep 17 00:00:00 2001 From: Janusz Lisiecki Date: Tue, 28 Apr 2026 08:44:12 +0200 Subject: [PATCH 04/24] Further improvements Signed-off-by: Janusz Lisiecki --- recipe/build_native.sh | 8 +--- recipe/build_python.sh | 10 +---- ...0005-BLD-Remove-CUDA-arch-validation.patch | 41 ------------------- recipe/recipe.yaml | 1 - 4 files changed, 3 insertions(+), 57 deletions(-) delete mode 100644 recipe/patches/0005-BLD-Remove-CUDA-arch-validation.patch diff --git a/recipe/build_native.sh b/recipe/build_native.sh index 8ef6adb..31b192f 100755 --- a/recipe/build_native.sh +++ b/recipe/build_native.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -e +set -ex [[ ${target_platform} == "linux-64" ]] && targetsDir="targets/x86_64-linux" [[ ${target_platform} == "linux-ppc64le" ]] && targetsDir="targets/ppc64le-linux" @@ -58,12 +58,6 @@ else export CUDAARCHS="all-major" fi -# Compress SASS and PTX in the binary to reduce disk usage -export CUDAFLAGS="${CUDAFLAGS} -Xfatbin -compress-all" -if [[ "${cuda_compiler_version}" == 13.* ]]; then - export CUDAFLAGS="${CUDAFLAGS} -Xfatbin -compress-mode=size" -fi - # https://docs.nvidia.com/deeplearning/dali/user-guide/docs/compilation.html#optional-cmake-build-parameters # -DCUDA_TARGET_ARCHS="$CUDAARCHS" \ cmake ${CMAKE_ARGS} \ diff --git a/recipe/build_python.sh b/recipe/build_python.sh index a1dedf6..50ecf94 100755 --- a/recipe/build_python.sh +++ b/recipe/build_python.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -e +set -ex [[ ${target_platform} == "linux-64" ]] && targetsDir="targets/x86_64-linux" [[ ${target_platform} == "linux-ppc64le" ]] && targetsDir="targets/ppc64le-linux" @@ -58,12 +58,6 @@ else export CUDAARCHS="all-major" fi -# Compress SASS and PTX in the binary to reduce disk usage -export CUDAFLAGS="${CUDAFLAGS} -Xfatbin -compress-all" -if [[ "${cuda_compiler_version}" == 13.* ]]; then - export CUDAFLAGS="${CUDAFLAGS} -Xfatbin -compress-mode=size" -fi - # https://docs.nvidia.com/deeplearning/dali/user-guide/docs/compilation.html#optional-cmake-build-parameters # -DCUDA_TARGET_ARCHS="$CUDAARCHS" \ cmake ${CMAKE_ARGS} \ @@ -120,7 +114,7 @@ rm -rf "${PREFIX}"/lib/gdk* # When cross-compiling, Python extension modules are named for the build arch; # rename them to match the target arch. -if [[ "$target_platform" != "$build_platform" ]]; then +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" != "1" || "${CROSSCOMPILING_EMULATOR:-}" != "" ]]; then build_arch="${build_platform/linux-/}" target_arch="${target_platform/linux-/}" for file in "${SP_DIR}"/nvidia/dali/*cpython-*-"${build_arch}"-linux-gnu.so; do diff --git a/recipe/patches/0005-BLD-Remove-CUDA-arch-validation.patch b/recipe/patches/0005-BLD-Remove-CUDA-arch-validation.patch deleted file mode 100644 index 83aa2b2..0000000 --- a/recipe/patches/0005-BLD-Remove-CUDA-arch-validation.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 6dbe1c70246a4c01e63b6adf4b1d2d67d10b4f90 Mon Sep 17 00:00:00 2001 -From: Daniel Ching -Date: Thu, 5 Mar 2026 15:53:05 -0600 -Subject: [PATCH 5/5] BLD: Remove CUDA arch validation - ---- - CMakeLists.txt | 11 ----------- - 1 file changed, 11 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 54d076cd..a16f5254 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -281,16 +281,6 @@ message(STATUS "CUDA .cu files compiler: ${USED_CUDA_COMPILER}") - CUDA_find_supported_arch_values(CUDA_supported_archs ${USED_CUDA_COMPILER} ${CUDA_known_archs}) - message(STATUS "CUDA supported archs: ${CUDA_supported_archs}") - --set(CUDA_TARGET_ARCHS_SORTED ${CUDA_TARGET_ARCHS}) --list(SORT CUDA_TARGET_ARCHS_SORTED COMPARE NATURAL) --CUDA_find_supported_arch_values(CUDA_targeted_archs ${USED_CUDA_COMPILER} ${CUDA_TARGET_ARCHS_SORTED}) --message(STATUS "CUDA targeted archs: ${CUDA_targeted_archs}") --if (NOT CUDA_targeted_archs) -- message(FATAL_ERROR "None of the provided CUDA architectures ({${CUDA_TARGET_ARCHS}})" -- " is supported by ${USED_CUDA_COMPILER}, use one or more of: ${CUDA_supported_archs}") --endif() -- -- - # Add gpu-arch and toolkit flags for clang when compiling cuda (if used) - if (DALI_CLANG_ONLY) - CUDA_get_gencode_args(CUDA_gencode_flags_clang ${USED_CUDA_COMPILER} ${CUDA_targeted_archs}) -@@ -302,7 +292,6 @@ if (DALI_CLANG_ONLY) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CUDA_TOOLKIT_PATH_VAR}/include/cccl") - endif() - --CUDA_get_cmake_cuda_archs(CMAKE_CUDA_ARCHITECTURES ${CUDA_targeted_archs}) - message(STATUS "Generated CMAKE_CUDA_ARCHITECTURES: ${CMAKE_CUDA_ARCHITECTURES}") - - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --compiler-options \"-fvisibility=hidden -Wno-free-nonheap-object\" --Wno-deprecated-gpu-targets -Xfatbin -compress-all") --- -2.53.0 - diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index 8ded121..be1d1b2 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -14,7 +14,6 @@ source: - patches/0001-BLD-Use-CUDA-target-include-directory-to-support-cro.patch - patches/0004-BLD-Dynamically-link-nvjpeg2k.patch - patches/0002-DOC-Patch-dlopen-failure-message-and-dlopen-search-p.patch - - patches/0005-BLD-Remove-CUDA-arch-validation.patch - patches/0003-BLD-Use-shared-libtar-instead-of-static.patch - url: https://github.com/cocodataset/cocoapi/archive/8c9bcc3cf640524c4c20a9c40e89cb6a2f2fa0e9.tar.gz sha256: 4dd3450bab2287d1c1b271cf4a1420db05294194f0ad9af4e3af592d6f2b4410 From 252848fff21ddd4efc466ed86f9940ef333d91d2 Mon Sep 17 00:00:00 2001 From: Janusz Lisiecki Date: Tue, 28 Apr 2026 16:38:02 +0200 Subject: [PATCH 05/24] Fix Signed-off-by: Janusz Lisiecki --- recipe/build_python.sh | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/recipe/build_python.sh b/recipe/build_python.sh index 50ecf94..90061c4 100755 --- a/recipe/build_python.sh +++ b/recipe/build_python.sh @@ -114,14 +114,11 @@ rm -rf "${PREFIX}"/lib/gdk* # When cross-compiling, Python extension modules are named for the build arch; # rename them to match the target arch. -if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" != "1" || "${CROSSCOMPILING_EMULATOR:-}" != "" ]]; then - build_arch="${build_platform/linux-/}" - target_arch="${target_platform/linux-/}" - for file in "${SP_DIR}"/nvidia/dali/*cpython-*-"${build_arch}"-linux-gnu.so; do - [[ -e "$file" ]] || continue - newname="${file/${build_arch}/${target_arch}}" +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" && "${CROSSCOMPILING_EMULATOR:-}" == "" ]]; then + for file in "${SP_DIR}"/nvidia/dali/*cpython-*-x86_64-linux-gnu.so; do + newname="${file/x86_64/aarch64}" mv "$file" "$newname" - echo "Renamed: $file -> $newname" + echo "Renamed: $file → $newname" done fi From 9004e6845380bbee6f4e8a73c3d40230beba9bd9 Mon Sep 17 00:00:00 2001 From: Janusz Lisiecki Date: Thu, 7 May 2026 18:07:00 +0200 Subject: [PATCH 06/24] Customize for tegra Signed-off-by: Janusz Lisiecki --- recipe/build_native.sh | 8 +++----- recipe/build_python.sh | 8 +++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/recipe/build_native.sh b/recipe/build_native.sh index 31b192f..df44df8 100755 --- a/recipe/build_native.sh +++ b/recipe/build_native.sh @@ -50,16 +50,13 @@ DALI_LINKING_ARGS=( -DCUDAToolkit_TARGET_DIR="${PREFIX}/${targetsDir}" ) -# Debug with fewer archs for shorter build times -# export CUDAARCHS="50" if [[ "${arm_variant_type:-}" == "tegra" ]]; then - export CUDAARCHS="87-real;101f-real;101-virtual" + export CUDAARCHS="87;101f" else - export CUDAARCHS="all-major" + export CUDAARCHS="" fi # https://docs.nvidia.com/deeplearning/dali/user-guide/docs/compilation.html#optional-cmake-build-parameters -# -DCUDA_TARGET_ARCHS="$CUDAARCHS" \ cmake ${CMAKE_ARGS} \ -GNinja \ -DBUILD_PYTHON=OFF \ @@ -90,6 +87,7 @@ cmake ${CMAKE_ARGS} \ -DBUILD_WITH_UBSAN=OFF \ -DFFMPEG_ROOT_DIR=$PREFIX \ -DNVCOMP_ROOT_DIR=$PREFIX \ + -DCUDA_TARGET_ARCHS=${CUDAARCHS} \ "${DALI_LINKING_ARGS[@]}" \ $SRC_DIR diff --git a/recipe/build_python.sh b/recipe/build_python.sh index 90061c4..758386b 100755 --- a/recipe/build_python.sh +++ b/recipe/build_python.sh @@ -50,16 +50,13 @@ DALI_LINKING_ARGS=( -DCUDAToolkit_TARGET_DIR="${PREFIX}/${targetsDir}" ) -# Debug with fewer archs for shorter build times -# export CUDAARCHS="50" if [[ "${arm_variant_type:-}" == "tegra" ]]; then - export CUDAARCHS="87-real;101f-real;101-virtual" + export CUDAARCHS="87;101f" else - export CUDAARCHS="all-major" + export CUDAARCHS="" fi # https://docs.nvidia.com/deeplearning/dali/user-guide/docs/compilation.html#optional-cmake-build-parameters -# -DCUDA_TARGET_ARCHS="$CUDAARCHS" \ cmake ${CMAKE_ARGS} \ -GNinja \ -DBUILD_PYTHON=ON \ @@ -93,6 +90,7 @@ cmake ${CMAKE_ARGS} \ -DUSE_PREBUILD_PYBIND11=ON \ -DFFMPEG_ROOT_DIR=$PREFIX \ -DNVCOMP_ROOT_DIR=$PREFIX \ + -DCUDA_TARGET_ARCHS=${CUDAARCHS} \ "${DALI_LINKING_ARGS[@]}" \ $SRC_DIR From 19f180b2ee62773f27d747543cb68f3ed2b3a7cb Mon Sep 17 00:00:00 2001 From: Daniel Ching Date: Thu, 7 May 2026 10:27:32 -0500 Subject: [PATCH 07/24] MNT: Re-rendered with conda-smithy 3.61.2 and conda-forge-pinning 2026.05.04.16.48.45 Other tools: - conda-build 26.3.0 - rattler-build 0.63.0 - rattler-build-conda-compat 1.4.13 --- .azure-pipelines/azure-pipelines-osx.yml | 70 ----------- .azure-pipelines/azure-pipelines-win.yml | 69 ---------- .ci_support/osx_64_.yaml | 12 -- .ci_support/win_64_.yaml | 6 - .gitignore | 1 + .scripts/create_conda_build_artifacts.bat | 77 ------------ .scripts/run_osx_build.sh | 127 ------------------- .scripts/run_win_build.bat | 146 ---------------------- README.md | 122 ++++-------------- azure-pipelines.yml | 32 ----- 10 files changed, 24 insertions(+), 638 deletions(-) delete mode 100755 .azure-pipelines/azure-pipelines-osx.yml delete mode 100755 .azure-pipelines/azure-pipelines-win.yml delete mode 100644 .ci_support/osx_64_.yaml delete mode 100644 .ci_support/win_64_.yaml delete mode 100755 .scripts/create_conda_build_artifacts.bat delete mode 100755 .scripts/run_osx_build.sh delete mode 100755 .scripts/run_win_build.bat delete mode 100644 azure-pipelines.yml diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml deleted file mode 100755 index ad63a76..0000000 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ /dev/null @@ -1,70 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -jobs: -- job: osx - pool: - vmImage: $(VMIMAGE) - strategy: - matrix: - osx_64_: - CONFIG: osx_64_ - UPLOAD_PACKAGES: 'True' - VMIMAGE: macOS-15 - store_build_artifacts: true - SHORT_CONFIG: osx_64_ - timeoutInMinutes: 360 - variables: {} - - steps: - # TODO: Fast finish on azure pipelines? - - script: | - export CI=azure - export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) - export remote_url=$(Build.Repository.Uri) - export sha=$(Build.SourceVersion) - export OSX_FORCE_SDK_DOWNLOAD="1" - export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) - if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then - export IS_PR_BUILD="True" - else - export IS_PR_BUILD="False" - fi - ./.scripts/run_osx_build.sh - displayName: Run OSX build - env: - BINSTAR_TOKEN: $(BINSTAR_TOKEN) - FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) - - - script: | - export CI=azure - export CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) - export CONDA_BLD_PATH=/Users/runner/miniforge3/conda-bld - export ARTIFACT_STAGING_DIR="$(Build.ArtifactStagingDirectory)" - # Archive everything in CONDA_BLD_PATH except environments - export BLD_ARTIFACT_PREFIX=conda_artifacts - if [[ "$AGENT_JOBSTATUS" == "Failed" ]]; then - # Archive the CONDA_BLD_PATH environments only when the job fails - export ENV_ARTIFACT_PREFIX=conda_envs - fi - ./.scripts/create_conda_build_artifacts.sh - displayName: Prepare conda build artifacts - condition: and(succeededOrFailed(), eq(variables.store_build_artifacts, true)) - - - task: PublishPipelineArtifact@1 - displayName: Store conda build artifacts - condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) - inputs: - targetPath: $(BLD_ARTIFACT_PATH) - artifactName: $(BLD_ARTIFACT_NAME) - - - task: PublishPipelineArtifact@1 - displayName: Store conda build environment artifacts - condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) - inputs: - targetPath: $(ENV_ARTIFACT_PATH) - artifactName: $(ENV_ARTIFACT_NAME) diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml deleted file mode 100755 index 493a445..0000000 --- a/.azure-pipelines/azure-pipelines-win.yml +++ /dev/null @@ -1,69 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -jobs: -- job: win - pool: - vmImage: windows-2022 - strategy: - matrix: - win_64_: - CONFIG: win_64_ - UPLOAD_PACKAGES: 'True' - store_build_artifacts: true - SHORT_CONFIG: win_64_ - timeoutInMinutes: 360 - variables: - CONDA_BLD_PATH: D:\\bld\\ - MINIFORGE_HOME: D:\Miniforge - UPLOAD_TEMP: D:\\tmp - - steps: - - - script: | - call ".scripts\run_win_build.bat" - displayName: Run Windows build - env: - MINIFORGE_HOME: $(MINIFORGE_HOME) - CONDA_BLD_PATH: $(CONDA_BLD_PATH) - PYTHONUNBUFFERED: 1 - CONFIG: $(CONFIG) - CI: azure - flow_run_id: azure_$(Build.BuildNumber).$(System.JobAttempt) - remote_url: $(Build.Repository.Uri) - sha: $(Build.SourceVersion) - UPLOAD_PACKAGES: $(UPLOAD_PACKAGES) - UPLOAD_TEMP: $(UPLOAD_TEMP) - BINSTAR_TOKEN: $(BINSTAR_TOKEN) - FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) - - - script: | - set MINIFORGE_HOME=$(MINIFORGE_HOME) - set CI=azure - set CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) - set FEEDSTOCK_NAME=$(build.Repository.Name) - set ARTIFACT_STAGING_DIR=$(Build.ArtifactStagingDirectory) - set CONDA_BLD_PATH=$(CONDA_BLD_PATH) - set BLD_ARTIFACT_PREFIX=conda_artifacts - if "%AGENT_JOBSTATUS%" == "Failed" ( - set ENV_ARTIFACT_PREFIX=conda_envs - ) - call ".scripts\create_conda_build_artifacts.bat" - displayName: Prepare conda build artifacts - condition: and(succeededOrFailed(), eq(variables.store_build_artifacts, true)) - - - task: PublishPipelineArtifact@1 - displayName: Store conda build artifacts - condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) - inputs: - targetPath: $(BLD_ARTIFACT_PATH) - artifactName: $(BLD_ARTIFACT_NAME) - - - task: PublishPipelineArtifact@1 - displayName: Store conda build environment artifacts - condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) - inputs: - targetPath: $(ENV_ARTIFACT_PATH) - artifactName: $(ENV_ARTIFACT_NAME) diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml deleted file mode 100644 index bd24ee5..0000000 --- a/.ci_support/osx_64_.yaml +++ /dev/null @@ -1,12 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' -MACOSX_SDK_VERSION: -- '11.0' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -macos_machine: -- x86_64-apple-darwin13.4.0 -target_platform: -- osx-64 diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml deleted file mode 100644 index e717348..0000000 --- a/.ci_support/win_64_.yaml +++ /dev/null @@ -1,6 +0,0 @@ -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -target_platform: -- win-64 diff --git a/.gitignore b/.gitignore index 47b5408..86a9c55 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ # Ignore all files and folders in root * !/conda-forge.yml +!.recipe_maintainers.json # Don't ignore any files/folders if the parent folder is 'un-ignored' # This also avoids warnings when adding an already-checked file with an ignored parent. diff --git a/.scripts/create_conda_build_artifacts.bat b/.scripts/create_conda_build_artifacts.bat deleted file mode 100755 index 6120712..0000000 --- a/.scripts/create_conda_build_artifacts.bat +++ /dev/null @@ -1,77 +0,0 @@ -setlocal enableextensions enabledelayedexpansion - -rem INPUTS (environment variables that need to be set before calling this script): -rem -rem CI (azure/github_actions/UNSET) -rem CI_RUN_ID (unique identifier for the CI job run) -rem FEEDSTOCK_NAME -rem CONFIG (build matrix configuration string) -rem SHORT_CONFIG (uniquely-shortened configuration string) -rem CONDA_BLD_PATH (path to the conda-bld directory) -rem ARTIFACT_STAGING_DIR (use working directory if unset) -rem BLD_ARTIFACT_PREFIX (prefix for the conda build artifact name, skip if unset) -rem ENV_ARTIFACT_PREFIX (prefix for the conda build environments artifact name, skip if unset) - -rem OUTPUTS -rem -rem BLD_ARTIFACT_NAME -rem BLD_ARTIFACT_PATH -rem ENV_ARTIFACT_NAME -rem ENV_ARTIFACT_PATH - -rem Check that the conda-build directory exists -if not exist %CONDA_BLD_PATH% ( - echo conda-build directory does not exist - exit 1 -) - -if not defined ARTIFACT_STAGING_DIR ( - rem Set staging dir to the working dir - set ARTIFACT_STAGING_DIR=%cd% -) - -rem Set a unique ID for the artifact(s), specialized for this particular job run -set ARTIFACT_UNIQUE_ID=%CI_RUN_ID%_%CONFIG% -if not "%ARTIFACT_UNIQUE_ID%" == "%ARTIFACT_UNIQUE_ID:~0,80%" ( - set ARTIFACT_UNIQUE_ID=%CI_RUN_ID%_%SHORT_CONFIG% -) - -rem Make the build artifact zip -if defined BLD_ARTIFACT_PREFIX ( - set BLD_ARTIFACT_NAME=%BLD_ARTIFACT_PREFIX%_%ARTIFACT_UNIQUE_ID% - echo BLD_ARTIFACT_NAME: !BLD_ARTIFACT_NAME! - - set "BLD_ARTIFACT_PATH=%ARTIFACT_STAGING_DIR%\%FEEDSTOCK_NAME%_%BLD_ARTIFACT_PREFIX%_%ARCHIVE_UNIQUE_ID%.zip" - 7z a "!BLD_ARTIFACT_PATH!" "%CONDA_BLD_PATH%" -xr^^!.git/ -xr^^!_*_env*/ -xr^^!*_cache/ -bb - if errorlevel 1 exit 1 - echo BLD_ARTIFACT_PATH: !BLD_ARTIFACT_PATH! - - if "%CI%" == "azure" ( - echo ##vso[task.setVariable variable=BLD_ARTIFACT_NAME]!BLD_ARTIFACT_NAME! - echo ##vso[task.setVariable variable=BLD_ARTIFACT_PATH]!BLD_ARTIFACT_PATH! - ) - if "%CI%" == "github_actions" ( - echo BLD_ARTIFACT_NAME=!BLD_ARTIFACT_NAME!>> !GITHUB_OUTPUT! - echo BLD_ARTIFACT_PATH=!BLD_ARTIFACT_PATH!>> !GITHUB_OUTPUT! - ) -) - -rem Make the environments artifact zip -if defined ENV_ARTIFACT_PREFIX ( - set ENV_ARTIFACT_NAME=!ENV_ARTIFACT_PREFIX!_%ARTIFACT_UNIQUE_ID% - echo ENV_ARTIFACT_NAME: !ENV_ARTIFACT_NAME! - - set "ENV_ARTIFACT_PATH=%ARTIFACT_STAGING_DIR%\%FEEDSTOCK_NAME%_%ENV_ARTIFACT_PREFIX%_%ARCHIVE_UNIQUE_ID%.zip" - 7z a "!ENV_ARTIFACT_PATH!" -r "%CONDA_BLD_PATH%"/_*_env*/ -bb - if errorlevel 1 exit 1 - echo ENV_ARTIFACT_PATH: !ENV_ARTIFACT_PATH! - - if "%CI%" == "azure" ( - echo ##vso[task.setVariable variable=ENV_ARTIFACT_NAME]!ENV_ARTIFACT_NAME! - echo ##vso[task.setVariable variable=ENV_ARTIFACT_PATH]!ENV_ARTIFACT_PATH! - ) - if "%CI%" == "github_actions" ( - echo ENV_ARTIFACT_NAME=!ENV_ARTIFACT_NAME!>> !GITHUB_OUTPUT! - echo ENV_ARTIFACT_PATH=!ENV_ARTIFACT_PATH!>> !GITHUB_OUTPUT! - ) -) diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh deleted file mode 100755 index 3369f62..0000000 --- a/.scripts/run_osx_build.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/usr/bin/env bash - -# -*- mode: jinja-shell -*- - -source .scripts/logging_utils.sh - -set -xe - -MINIFORGE_HOME="${MINIFORGE_HOME:-${HOME}/miniforge3}" -MINIFORGE_HOME="${MINIFORGE_HOME%/}" # remove trailing slash -export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${MINIFORGE_HOME}/conda-bld}" - -( startgroup "Provisioning base env with micromamba" ) 2> /dev/null -MICROMAMBA_VERSION="1.5.10-0" -if [[ "$(uname -m)" == "arm64" ]]; then - osx_arch="osx-arm64" -else - osx_arch="osx-64" -fi -MICROMAMBA_URL="https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-${osx_arch}" -MAMBA_ROOT_PREFIX="${MINIFORGE_HOME}-micromamba-$(date +%s)" -echo "Downloading micromamba ${MICROMAMBA_VERSION}" -micromamba_exe="$(mktemp -d)/micromamba" -curl -L -o "${micromamba_exe}" "${MICROMAMBA_URL}" -chmod +x "${micromamba_exe}" -echo "Creating environment" -"${micromamba_exe}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ - --channel conda-forge \ - pip rattler-build conda-forge-ci-setup=4 "conda-build>=24.1" -echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" -mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" -echo "Cleaning up micromamba" -rm -rf "${MAMBA_ROOT_PREFIX}" "${micromamba_exe}" || true -( endgroup "Provisioning base env with micromamba" ) 2> /dev/null - -( startgroup "Configuring conda" ) 2> /dev/null -echo "Activating environment" -source "${MINIFORGE_HOME}/etc/profile.d/conda.sh" -conda activate base -export CONDA_SOLVER="libmamba" -export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 - - - - - -echo -e "\n\nSetting up the condarc and mangling the compiler." -setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml - -if [[ "${CI:-}" != "" ]]; then - mangle_compiler ./ ./recipe .ci_support/${CONFIG}.yaml -fi - -if [[ "${CI:-}" != "" ]]; then - echo -e "\n\nMangling homebrew in the CI to avoid conflicts." - /usr/bin/sudo mangle_homebrew - /usr/bin/sudo -k -else - echo -e "\n\nNot mangling homebrew as we are not running in CI" -fi - -if [[ "${sha:-}" == "" ]]; then - sha=$(git rev-parse HEAD) -fi - -if [[ "${OSX_SDK_DIR:-}" == "" ]]; then - if [[ "${CI:-}" == "" ]]; then - echo "Please set OSX_SDK_DIR to a directory where SDKs can be downloaded to. Aborting" - exit 1 - else - export OSX_SDK_DIR=/opt/conda-sdks - /usr/bin/sudo mkdir -p "${OSX_SDK_DIR}" - /usr/bin/sudo chown "${USER}" "${OSX_SDK_DIR}" - fi -else - if tmpf=$(mktemp -p "$OSX_SDK_DIR" tmp.XXXXXXXX 2>/dev/null); then - rm -f "$tmpf" - echo "OSX_SDK_DIR is writeable without sudo, continuing" - else - echo "User-provided OSX_SDK_DIR is not writeable for current user! Aborting" - exit 1 - fi -fi - -echo -e "\n\nRunning the build setup script." -source run_conda_forge_build_setup - - - -( endgroup "Configuring conda" ) 2> /dev/null - -if [[ -f LICENSE.txt ]]; then - cp LICENSE.txt "recipe/recipe-scripts-license.txt" -fi - -if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - echo "rattler-build does not currently support debug mode" -else - - rattler-build build --recipe ./recipe \ - -m ./.ci_support/${CONFIG}.yaml \ - ${EXTRA_CB_OPTIONS:-} \ - --target-platform "${HOST_PLATFORM}" \ - --extra-meta flow_run_id="$flow_run_id" \ - --extra-meta remote_url="$remote_url" \ - --extra-meta sha="$sha" - - ( startgroup "Inspecting artifacts" ) 2> /dev/null - - # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 - command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir ./recipe -m ./.ci_support/${CONFIG}.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" - - ( endgroup "Inspecting artifacts" ) 2> /dev/null - ( startgroup "Validating outputs" ) 2> /dev/null - - validate_recipe_outputs "${FEEDSTOCK_NAME}" - - ( endgroup "Validating outputs" ) 2> /dev/null - - ( startgroup "Uploading packages" ) 2> /dev/null - - if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then - upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" ./ ./recipe ./.ci_support/${CONFIG}.yaml - fi - - ( endgroup "Uploading packages" ) 2> /dev/null -fi diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat deleted file mode 100755 index 6ec69f5..0000000 --- a/.scripts/run_win_build.bat +++ /dev/null @@ -1,146 +0,0 @@ -:: PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here -:: will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent -:: changes to this script, consider a proposal to conda-smithy so that other feedstocks can also -:: benefit from the improvement. - -:: INPUTS (required environment variables) -:: CONFIG: name of the .ci_support/*.yaml file for this job -:: CI: azure, github_actions, or unset -:: MINIFORGE_HOME: where to install the base conda environment -:: UPLOAD_PACKAGES: true or false -:: UPLOAD_ON_BRANCH: true or false - -setlocal enableextensions enabledelayedexpansion - -FOR %%A IN ("%~dp0.") DO SET "REPO_ROOT=%%~dpA" -if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3" -:: Remove trailing backslash, if present -if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%" -call :start_group "Provisioning base env with micromamba" -set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%" -set "MICROMAMBA_VERSION=1.5.10-0" -set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64" -set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%" -set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" - -echo Downloading micromamba %MICROMAMBA_VERSION% -if not exist "%MICROMAMBA_TMPDIR%" mkdir "%MICROMAMBA_TMPDIR%" -powershell -ExecutionPolicy Bypass -Command "(New-Object Net.WebClient).DownloadFile('%MICROMAMBA_URL%', '%MICROMAMBA_EXE%')" -if !errorlevel! neq 0 exit /b !errorlevel! - -echo Creating environment -call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^ - --channel conda-forge ^ - pip rattler-build conda-forge-ci-setup=4 "conda-build>=24.1" -if !errorlevel! neq 0 exit /b !errorlevel! -echo Removing %MAMBA_ROOT_PREFIX% -del /S /Q "%MAMBA_ROOT_PREFIX%" >nul -del /S /Q "%MICROMAMBA_TMPDIR%" >nul -call :end_group - -call :start_group "Configuring conda" - -:: Activate the base conda environment -echo Activating environment -call "%MINIFORGE_HOME%\Scripts\activate.bat" -:: Configure the solver -set "CONDA_SOLVER=libmamba" -if !errorlevel! neq 0 exit /b !errorlevel! -set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" - -:: Set basic configuration -echo Setting up configuration -setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml -if !errorlevel! neq 0 exit /b !errorlevel! -echo Running build setup -CALL run_conda_forge_build_setup - - -if !errorlevel! neq 0 exit /b !errorlevel! - -if EXIST LICENSE.txt ( - echo Copying feedstock license - copy LICENSE.txt "recipe\\recipe-scripts-license.txt" -) - -if NOT [%flow_run_id%] == [] ( - set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% --extra-meta remote_url=%remote_url% --extra-meta sha=%sha%" -) - -call :end_group - -:: Build the recipe -echo Building recipe -rattler-build.exe build --recipe "recipe" -m .ci_support\%CONFIG%.yaml %EXTRA_CB_OPTIONS% --target-platform %HOST_PLATFORM% -if !errorlevel! neq 0 exit /b !errorlevel! - -call :start_group "Inspecting artifacts" -:: inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 -WHERE inspect_artifacts >nul 2>nul && inspect_artifacts --recipe-dir ".\recipe" -m .ci_support\%CONFIG%.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" -call :end_group - -:: Prepare some environment variables for the upload step -if /i "%CI%" == "github_actions" ( - set "FEEDSTOCK_NAME=%GITHUB_REPOSITORY:*/=%" - set "GIT_BRANCH=%GITHUB_REF:refs/heads/=%" - if /i "%GITHUB_EVENT_NAME%" == "pull_request" ( - set "IS_PR_BUILD=True" - ) else ( - set "IS_PR_BUILD=False" - ) - set "TEMP=%RUNNER_TEMP%" -) -if /i "%CI%" == "azure" ( - set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" - set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%" - if /i "%BUILD_REASON%" == "PullRequest" ( - set "IS_PR_BUILD=True" - ) else ( - set "IS_PR_BUILD=False" - ) - set "TEMP=%UPLOAD_TEMP%" -) - -:: Validate -call :start_group "Validating outputs" -validate_recipe_outputs "%FEEDSTOCK_NAME%" -if !errorlevel! neq 0 exit /b !errorlevel! -call :end_group - -if /i "%UPLOAD_PACKAGES%" == "true" ( - if /i "%IS_PR_BUILD%" == "false" ( - call :start_group "Uploading packages" - if not exist "%TEMP%\" md "%TEMP%" - set "TMP=%TEMP%" - upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml - if !errorlevel! neq 0 exit /b !errorlevel! - call :end_group - ) -) - -exit - -:: Logging subroutines - -:start_group -if /i "%CI%" == "github_actions" ( - echo ::group::%~1 - exit /b -) -if /i "%CI%" == "azure" ( - echo ##[group]%~1 - exit /b -) -echo %~1 -exit /b - -:end_group -if /i "%CI%" == "github_actions" ( - echo ::endgroup:: - exit /b -) -if /i "%CI%" == "azure" ( - echo ##[endgroup] - exit /b -) -exit /b diff --git a/README.md b/README.md index 3f72ccd..8d0dfa1 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,11 @@ -About nvidia-dali-feedstock -=========================== +About libdali-feedstock +======================= Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/nvidia-dali-python-feedstock/blob/main/LICENSE.txt) -About nvidia-dali ------------------ - -Home: https://github.com/NVIDIA/dali - -Package license: Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause - -Summary: A GPU-accelerated library for data loading and pre-processing to accelerate deep learning applications. - -About nvidia-dali-native ------------------------- +About libdali +------------- Home: https://github.com/NVIDIA/dali @@ -43,73 +34,6 @@ Current build status
VariantStatus
linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.10.____cpython - - variant - -
linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.11.____cpython - - variant - -
linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.12.____cpython - - variant - -
linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.13.____cp313 - - variant - -
linux_64_c_stdlib_version2.17cuda_compiler_version12.9python3.14.____cp314 - - variant - -
linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.10.____cpython - - variant - -
linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.11.____cpython - - variant - -
linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.12.____cpython - - variant - -
linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.13.____cp313 - - variant - -
linux_64_c_stdlib_version2.28cuda_compiler_version13.0python3.14.____cp314 - - variant - -
linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.10.____cpython - - variant - -
linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.11.____cpython - - variant - -
linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.12.____cpython - - variant - -
linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.13.____cp313 - - variant - -
linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9python3.14.____cp314 - - variant - -
linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.10.____cpython - - variant - -
linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.11.____cpython - - variant - -
linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.12.____cpython - - variant - -
linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.13.____cp313linux_64_c_stdlib_version2.17cuda_compiler_version12.9 - variant + variant
linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0python3.14.____cp314linux_64_c_stdlib_version2.28cuda_compiler_version13.0 - variant + variant
linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.10.____cpythonlinux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9 - variant + variant
linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.11.____cpythonlinux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0 - variant + variant
linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.12.____cpythonlinux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9 - variant + variant
linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.13.____cp313osx_64 - variant + variant
linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9python3.14.____cp314win_64 - variant + variant
- - - - -
Azure -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VariantStatus
linux_64_c_stdlib_version2.17cuda_compiler_version12.9 - - variant - -
linux_64_c_stdlib_version2.28cuda_compiler_version13.0 - - variant - -
linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9 - - variant - -
linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0 - - variant - -
linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9 - - variant - -
osx_64 - - variant - -
win_64 - - variant - -
-
-
Current release info @@ -117,54 +41,54 @@ Current release info | Name | Downloads | Version | Platforms | | --- | --- | --- | --- | -| [![Conda Recipe](https://img.shields.io/badge/recipe-nvidia--dali--native-green.svg)](https://anaconda.org/conda-forge/nvidia-dali-native) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/nvidia-dali-native.svg)](https://anaconda.org/conda-forge/nvidia-dali-native) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/nvidia-dali-native.svg)](https://anaconda.org/conda-forge/nvidia-dali-native) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/nvidia-dali-native.svg)](https://anaconda.org/conda-forge/nvidia-dali-native) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-libdali-green.svg)](https://anaconda.org/conda-forge/libdali) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libdali.svg)](https://anaconda.org/conda-forge/libdali) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libdali.svg)](https://anaconda.org/conda-forge/libdali) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libdali.svg)](https://anaconda.org/conda-forge/libdali) | | [![Conda Recipe](https://img.shields.io/badge/recipe-nvidia--dali--python-green.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/nvidia-dali-python.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/nvidia-dali-python.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/nvidia-dali-python.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | -Installing nvidia-dali -====================== +Installing libdali +================== -Installing `nvidia-dali` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: +Installing `libdali` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: ``` conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `nvidia-dali-native, nvidia-dali-python` can be installed with `conda`: +Once the `conda-forge` channel has been enabled, `libdali, nvidia-dali-python` can be installed with `conda`: ``` -conda install nvidia-dali-native nvidia-dali-python +conda install libdali nvidia-dali-python ``` or with `mamba`: ``` -mamba install nvidia-dali-native nvidia-dali-python +mamba install libdali nvidia-dali-python ``` -It is possible to list all of the versions of `nvidia-dali-native` available on your platform with `conda`: +It is possible to list all of the versions of `libdali` available on your platform with `conda`: ``` -conda search nvidia-dali-native --channel conda-forge +conda search libdali --channel conda-forge ``` or with `mamba`: ``` -mamba search nvidia-dali-native --channel conda-forge +mamba search libdali --channel conda-forge ``` Alternatively, `mamba repoquery` may provide more information: ``` # Search all versions available on your platform: -mamba repoquery search nvidia-dali-native --channel conda-forge +mamba repoquery search libdali --channel conda-forge -# List packages depending on `nvidia-dali-native`: -mamba repoquery whoneeds nvidia-dali-native --channel conda-forge +# List packages depending on `libdali`: +mamba repoquery whoneeds libdali --channel conda-forge -# List dependencies of `nvidia-dali-native`: -mamba repoquery depends nvidia-dali-native --channel conda-forge +# List dependencies of `libdali`: +mamba repoquery depends libdali --channel conda-forge ``` @@ -209,17 +133,17 @@ Terminology produce the finished article (built conda distributions) -Updating nvidia-dali-feedstock -============================== +Updating libdali-feedstock +========================== -If you would like to improve the nvidia-dali recipe or build a new +If you would like to improve the libdali recipe or build a new package version, please fork this repository and submit a PR. Upon submission, your changes will be run on the appropriate platforms to give the reviewer an opportunity to confirm that the changes result in a successful build. Once merged, the recipe will be re-built and uploaded automatically to the `conda-forge` channel, whereupon the built conda packages will be available for everybody to install and use from the `conda-forge` channel. -Note that all branches in the conda-forge/nvidia-dali-feedstock are +Note that all branches in the conda-forge/libdali-feedstock are immediately built and any created packages are uploaded, so PRs should be based on branches in forks, and branches in the main repository should only be used to build distinct package versions. diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index 03594e4..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,32 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -stages: -- stage: Check - jobs: - - job: Skip - pool: - vmImage: 'ubuntu-latest' - variables: - DECODE_PERCENTS: 'false' - RET: 'true' - steps: - - checkout: self - fetchDepth: '2' - - bash: | - git_log=`git log --max-count=1 --skip=1 --pretty=format:"%B" | tr "\n" " "` - echo "##vso[task.setvariable variable=log]$git_log" - displayName: Obtain commit message - - bash: echo "##vso[task.setvariable variable=RET]false" - condition: and(eq(variables['Build.Reason'], 'PullRequest'), or(contains(variables.log, '[skip azp]'), contains(variables.log, '[azp skip]'), contains(variables.log, '[skip ci]'), contains(variables.log, '[ci skip]'))) - displayName: Skip build? - - bash: echo "##vso[task.setvariable variable=start_main;isOutput=true]$RET" - name: result - displayName: Export result -- stage: Build - condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) - dependsOn: Check - jobs: - - template: ./.azure-pipelines/azure-pipelines-osx.yml - - template: ./.azure-pipelines/azure-pipelines-win.yml \ No newline at end of file From f28fd885750e70342990fad0eb5f5d45577f7cf7 Mon Sep 17 00:00:00 2001 From: Daniel Ching Date: Thu, 7 May 2026 18:45:35 -0500 Subject: [PATCH 08/24] REF: Combine build scripts into one script --- recipe/{build_python.sh => build.sh} | 73 ++++++++++++++---- recipe/build_native.sh | 108 --------------------------- recipe/recipe.yaml | 91 ++++++++++++++++++++-- 3 files changed, 143 insertions(+), 129 deletions(-) rename recipe/{build_python.sh => build.sh} (70%) mode change 100755 => 100644 delete mode 100755 recipe/build_native.sh diff --git a/recipe/build_python.sh b/recipe/build.sh old mode 100755 new mode 100644 similarity index 70% rename from recipe/build_python.sh rename to recipe/build.sh index 758386b..f72d4f3 --- a/recipe/build_python.sh +++ b/recipe/build.sh @@ -1,5 +1,30 @@ #!/bin/bash set -ex +# rattler-build leaves PKG_NAME unset for `staging:` outputs (no package to name). +# Our only staging output is core-build, so treat unset PKG_NAME as core-build. +PKG_NAME="${PKG_NAME:-core-build}" + +case "${PKG_NAME}" in + libdali) + # Install only — core-build already populated the build tree. + cd build + cmake --install . --strip --prefix "$PREFIX" + rm -rf "${SP_DIR}/nvidia/dali/include/boost" + rm -rf "${PREFIX}"/lib/gdk* + find . -name "*.pb.h" | sed 's|^\./||' | while IFS= read -r FILE; do + DEST="$PREFIX/include/$FILE" + mkdir -p "$(dirname "$DEST")" + cp "$FILE" "$DEST" + done + exit 0 + ;; + core-build|nvidia-dali-python) + ;; + *) + echo "Unknown PKG_NAME: ${PKG_NAME}" >&2 + exit 1 + ;; +esac [[ ${target_platform} == "linux-64" ]] && targetsDir="targets/x86_64-linux" [[ ${target_platform} == "linux-ppc64le" ]] && targetsDir="targets/ppc64le-linux" @@ -30,8 +55,8 @@ sed -i "s/@DALI_INSTALL_REQUIRES_NVIMGCODEC@//g" dali/python/setup.py.in sed -i "s/@DALI_INSTALL_REQUIRES_NVJPEG2K@//g" dali/python/setup.py.in sed -i "s/@DALI_INSTALL_REQUIRES_NVTIFF@//g" dali/python/setup.py.in -mkdir -p build_python -cd build_python +mkdir -p build +cd build DALI_LINKING_ARGS=( -DLINK_DRIVER=OFF @@ -50,18 +75,28 @@ DALI_LINKING_ARGS=( -DCUDAToolkit_TARGET_DIR="${PREFIX}/${targetsDir}" ) -if [[ "${arm_variant_type:-}" == "tegra" ]]; then - export CUDAARCHS="87;101f" +if [[ "${PKG_NAME}" == "nvidia-dali-python" ]]; then + PYTHON_CMAKE_ARGS=( + -DBUILD_PYTHON=ON + -DPREBUILD_DALI_LIBS=ON + -DPYTHON_VERSIONS="${PY_VER}" + -DUSE_PREBUILD_PYBIND11=ON + ) else - export CUDAARCHS="" + PYTHON_CMAKE_ARGS=(-DBUILD_PYTHON=OFF) fi +# Debug with fewer archs for shorter build times +export CUDAARCHS="89" +# if [[ "${arm_variant_type:-}" == "tegra" ]]; then +# export CUDAARCHS="87-real;101f-real;101-virtual" +# else +# export CUDAARCHS="all-major" +# fi + # https://docs.nvidia.com/deeplearning/dali/user-guide/docs/compilation.html#optional-cmake-build-parameters cmake ${CMAKE_ARGS} \ -GNinja \ - -DBUILD_PYTHON=ON \ - -DPREBUILD_DALI_LIBS=ON \ - -DPYTHON_VERSIONS=${PY_VER} \ -DBUILD_AWSSDK=ON \ -DBUILD_BENCHMARK=OFF \ -DBUILD_CFITSIO=ON \ @@ -87,18 +122,23 @@ cmake ${CMAKE_ARGS} \ -DBUILD_WITH_ASAN=OFF \ -DBUILD_WITH_LSAN=OFF \ -DBUILD_WITH_UBSAN=OFF \ - -DUSE_PREBUILD_PYBIND11=ON \ -DFFMPEG_ROOT_DIR=$PREFIX \ -DNVCOMP_ROOT_DIR=$PREFIX \ -DCUDA_TARGET_ARCHS=${CUDAARCHS} \ + "${PYTHON_CMAKE_ARGS[@]}" \ "${DALI_LINKING_ARGS[@]}" \ $SRC_DIR -# Build the python bindings +if [[ "${PKG_NAME}" == "core-build" ]]; then + cmake --build . + exit 0 +fi + +# Python bindings only — third-party static libs reuse the cache from core-build. if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" != "1" || "${CROSSCOMPILING_EMULATOR:-}" != "" ]]; then echo "Building for the same platform, building dali_python_generate_stubs" cmake --build . -t dali_python python_function_plugin copy_post_build_target dali_python_generate_stubs install_headers - else +else echo "Cross-compiling, skipping dali_python_generate_stubs as it requires running the python interpreter and importing DALI" cmake --build . -t dali_python python_function_plugin copy_post_build_target install_headers fi @@ -108,16 +148,17 @@ ${PYTHON} -m pip install . # libdali owns the native headers; keep them out of the Python output. rm -rf "${SP_DIR}"/nvidia/dali/include +rm -rf "${SP_DIR}"/nvidia/dali/libdali*.so rm -rf "${PREFIX}"/lib/gdk* # When cross-compiling, Python extension modules are named for the build arch; # rename them to match the target arch. if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" && "${CROSSCOMPILING_EMULATOR:-}" == "" ]]; then - for file in "${SP_DIR}"/nvidia/dali/*cpython-*-x86_64-linux-gnu.so; do - newname="${file/x86_64/aarch64}" - mv "$file" "$newname" - echo "Renamed: $file → $newname" - done + for file in "${SP_DIR}"/nvidia/dali/*cpython-*-x86_64-linux-gnu.so; do + newname="${file/x86_64/aarch64}" + mv "$file" "$newname" + echo "Renamed: $file -> $newname" + done fi # Sanity-check that binaries target the correct architecture diff --git a/recipe/build_native.sh b/recipe/build_native.sh deleted file mode 100755 index df44df8..0000000 --- a/recipe/build_native.sh +++ /dev/null @@ -1,108 +0,0 @@ -#!/bin/bash -set -ex - -[[ ${target_platform} == "linux-64" ]] && targetsDir="targets/x86_64-linux" -[[ ${target_platform} == "linux-ppc64le" ]] && targetsDir="targets/ppc64le-linux" -# https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html?highlight=tegra#cross-compilation -[[ ${target_platform} == "linux-aarch64" && ${arm_variant_type:-"sbsa"} == "sbsa" ]] && targetsDir="targets/sbsa-linux" -[[ ${target_platform} == "linux-aarch64" && ${arm_variant_type:-"sbsa"} == "tegra" ]] && targetsDir="targets/aarch64-linux" - -if [ -z "${targetsDir+x}" ]; then - echo "target_platform: ${target_platform} is unknown! targetsDir must be defined!" >&2 - exit 1 -fi - -mkdir -p third_party/boost/preprocessor/include -ln -sf $PREFIX/include/boost third_party/boost/preprocessor/include/ - -mkdir -p third_party/dlpack/include/ -ln -sf $PREFIX/include/dlpack third_party/dlpack/include/ - -mkdir -p third_party/cutlass/include/ -ln -sf $PREFIX/include/cute third_party/cutlass/include/ -ln -sf $PREFIX/include/cutlass third_party/cutlass/include/ - -export CXXFLAGS="$CXXFLAGS -isystem $PREFIX/include/opencv4" - -# Remove pip-install-time requirements that conda manages separately -sed -i "s/@DALI_INSTALL_REQUIRES_NVCOMP@//g" dali/python/setup.py.in -sed -i "s/@DALI_INSTALL_REQUIRES_NVIMGCODEC@//g" dali/python/setup.py.in -sed -i "s/@DALI_INSTALL_REQUIRES_NVJPEG2K@//g" dali/python/setup.py.in -sed -i "s/@DALI_INSTALL_REQUIRES_NVTIFF@//g" dali/python/setup.py.in - -mkdir -p build_native -cd build_native - -DALI_LINKING_ARGS=( - -DLINK_DRIVER=OFF -# Continue to dlopen nvimgcodec so that it can be optionally installed - -DWITH_DYNAMIC_NVIMGCODEC=ON - -DNVIMGCODEC_DEFAULT_INSTALL_PATH=${PREFIX} -# Enable all dynamic (dlopen) linkages because it lets us install DALI without CUDA - -DWITH_DYNAMIC_CUDA_TOOLKIT=ON -# FFTS (third-party) needs to be available in order for cuFFT dlopen to work - -DWITH_DYNAMIC_CUFFT=ON - -DWITH_DYNAMIC_NPP=ON - -DWITH_DYNAMIC_NVCOMP=ON - -DWITH_DYNAMIC_NVJPEG=ON - -DSTATIC_LIBS=OFF - # BLD: Use CUDA target include directory to support cross-compiling - -DCUDAToolkit_TARGET_DIR="${PREFIX}/${targetsDir}" -) - -if [[ "${arm_variant_type:-}" == "tegra" ]]; then - export CUDAARCHS="87;101f" -else - export CUDAARCHS="" -fi - -# https://docs.nvidia.com/deeplearning/dali/user-guide/docs/compilation.html#optional-cmake-build-parameters -cmake ${CMAKE_ARGS} \ - -GNinja \ - -DBUILD_PYTHON=OFF \ - -DBUILD_AWSSDK=ON \ - -DBUILD_BENCHMARK=OFF \ - -DBUILD_CFITSIO=ON \ - -DBUILD_CUFILE=ON \ - -DBUILD_CVCUDA=OFF \ - -DBUILD_FFMPEG=ON \ - -DBUILD_FFTS=ON \ - -DBUILD_JPEG_TURBO=ON \ - -DBUILD_LIBSND=ON \ - -DBUILD_LIBTAR=ON \ - -DBUILD_LIBTIFF=ON \ - -DBUILD_LMDB=ON \ - -DBUILD_NVCOMP=$( [[ "${arm_variant_type:-}" == "tegra" ]] && echo "OFF" || echo "ON" ) \ - -DBUILD_NVDEC=ON \ - -DBUILD_NVIMAGECODEC=ON \ - -DBUILD_NVJPEG=ON \ - -DBUILD_NVJPEG2K=ON \ - -DBUILD_NVML=ON \ - -DBUILD_NVOF=ON \ - -DBUILD_NVTX=ON \ - -DBUILD_OPENCV=ON \ - -DBUILD_TEST=OFF \ - -DBUILD_WITH_ASAN=OFF \ - -DBUILD_WITH_LSAN=OFF \ - -DBUILD_WITH_UBSAN=OFF \ - -DFFMPEG_ROOT_DIR=$PREFIX \ - -DNVCOMP_ROOT_DIR=$PREFIX \ - -DCUDA_TARGET_ARCHS=${CUDAARCHS} \ - "${DALI_LINKING_ARGS[@]}" \ - $SRC_DIR - -cmake --build . - -# Install native shared libs and headers to PREFIX so the Python bindings -# build (PREBUILD_DALI_LIBS=ON) can locate them via standard cmake search paths. -cmake --install . --strip --prefix $PREFIX - -rm ${SP_DIR}/nvidia/dali/include/boost -rf -rm ${PREFIX}/lib/gdk* -rf - -# Install generated protobuf headers needed by the Python bindings cmake pass. -find . -name "*.pb.h" | sed 's|^\./||' | while IFS= read -r FILE; do - DEST="$PREFIX/include/$FILE" - mkdir -p "$(dirname "$DEST")" - cp "$FILE" "$DEST" -done diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index be1d1b2..dc74ab7 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -30,11 +30,10 @@ build: - osx outputs: - - package: - name: libdali - version: ${{ version }} + - staging: + name: core-build build: - script: build_native.sh + script: build.sh requirements: ignore_run_exports: by_name: @@ -105,6 +104,85 @@ outputs: - nvtx-c - rapidjson - zlib + + - package: + name: libdali + version: ${{ version }} + inherit: + from: core-build + run_exports: true + build: + script: build.sh + requirements: + ignore_run_exports: + by_name: + - cuda-version + from_package: + - libcufft-dev + - libcufile-dev + - libcurand-dev + - libnpp-dev + - libnvjpeg-dev + - libnvimgcodec-dev + - if: (arm_variant_type | default("")) != "tegra" + then: + - libnvcomp-dev + # Added libprotobuf to pick up channel pinnings, but we use the static package + - libprotobuf + build: + - ${{ compiler('cuda') }} + - ${{ compiler('cxx') }} + - ${{ stdlib('c') }} + - if: linux and aarch64 and not match(cuda_compiler_version, "==None") + then: + - arm-variant * ${{ arm_variant_type | default("None") }} + - cmake 3.* + - file + - ninja + - pkgconf + # - python-clang + # - if: build_platform != target_platform + # then: + # - libprotobuf + # - libprotobuf-static + host: + # # NOTE: static libraries culibos and nvjpeg required for correct feature detection + # - if: linux and match(cuda_compiler_version, "13.*") + # then: + # - cuda-culibos-static + # - cuda-cudart-static + # - cuda-nvml-dev + # - libcufft-dev + # - libcufile-dev + # - libcurand-dev + # - libnpp-dev + # - libnvjpeg-dev + # - libnvjpeg-static + - cuda-version ${{ cuda_compiler_version }}.* + # - aws-sdk-cpp + # - cfitsio + # - cutlass + # - dlpack + # - ffmpeg + # - ffmpeg * lgpl* + # - libabseil + # - libboost-headers ${{ libboost_headers }} + # - libjpeg-turbo + # - if: (arm_variant_type | default("")) != "tegra" + # then: + # - libnvcomp-dev ${{ libnvcomp }} + # - libnvimgcodec-dev ${{ libnvimgcodec }} + # - libnvjpeg2k-dev ${{ libnvjpeg2k }} + # - libopencv + # - libprotobuf + # - libprotobuf-static + # - libsndfile + # - libtar + # - libtiff + # - lmdb + # - nvtx-c + # - rapidjson + # - zlib run: - ${{ pin_compatible('cuda-version', lower_bound='x', upper_bound='x') }} run_constraints: @@ -145,8 +223,11 @@ outputs: - package: name: nvidia-dali-python version: ${{ version }} + inherit: + from: core-build + run_exports: false build: - script: build_python.sh + script: build.sh requirements: ignore_run_exports: by_name: From 3ccbfbaf50182500c9288a19431b846a5d073582 Mon Sep 17 00:00:00 2001 From: Daniel Ching Date: Thu, 7 May 2026 18:51:08 -0500 Subject: [PATCH 09/24] BLD: Trim dependencies --- recipe/recipe.yaml | 93 ---------------------------------------------- 1 file changed, 93 deletions(-) diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index dc74ab7..8688048 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -35,21 +35,6 @@ outputs: build: script: build.sh requirements: - ignore_run_exports: - by_name: - - cuda-version - from_package: - - libcufft-dev - - libcufile-dev - - libcurand-dev - - libnpp-dev - - libnvjpeg-dev - - libnvimgcodec-dev - - if: (arm_variant_type | default("")) != "tegra" - then: - - libnvcomp-dev - # Added libprotobuf to pick up channel pinnings, but we use the static package - - libprotobuf build: - ${{ compiler('cuda') }} - ${{ compiler('cxx') }} @@ -140,49 +125,8 @@ outputs: - file - ninja - pkgconf - # - python-clang - # - if: build_platform != target_platform - # then: - # - libprotobuf - # - libprotobuf-static host: - # # NOTE: static libraries culibos and nvjpeg required for correct feature detection - # - if: linux and match(cuda_compiler_version, "13.*") - # then: - # - cuda-culibos-static - # - cuda-cudart-static - # - cuda-nvml-dev - # - libcufft-dev - # - libcufile-dev - # - libcurand-dev - # - libnpp-dev - # - libnvjpeg-dev - # - libnvjpeg-static - cuda-version ${{ cuda_compiler_version }}.* - # - aws-sdk-cpp - # - cfitsio - # - cutlass - # - dlpack - # - ffmpeg - # - ffmpeg * lgpl* - # - libabseil - # - libboost-headers ${{ libboost_headers }} - # - libjpeg-turbo - # - if: (arm_variant_type | default("")) != "tegra" - # then: - # - libnvcomp-dev ${{ libnvcomp }} - # - libnvimgcodec-dev ${{ libnvimgcodec }} - # - libnvjpeg2k-dev ${{ libnvjpeg2k }} - # - libopencv - # - libprotobuf - # - libprotobuf-static - # - libsndfile - # - libtar - # - libtiff - # - lmdb - # - nvtx-c - # - rapidjson - # - zlib run: - ${{ pin_compatible('cuda-version', lower_bound='x', upper_bound='x') }} run_constraints: @@ -233,29 +177,11 @@ outputs: by_name: - cuda-version from_package: - - libcufft-dev - - libcufile-dev - - libcurand-dev - - libnpp-dev - libnvjpeg-dev - - libnvimgcodec-dev - - if: (arm_variant_type | default("")) != "tegra" - then: - - libnvcomp-dev # Added libprotobuf to pick up channel pinnings, but we use the static package - libprotobuf # The Python extension links only against libdali*.so and system libs. - - aws-sdk-cpp - - cfitsio - - ffmpeg - - libabseil - - libjpeg-turbo - libnvjpeg2k-dev - - libopencv - - libsndfile - - libtar - - libtiff - - lmdb - zlib build: - ${{ compiler('cuda') }} @@ -283,34 +209,15 @@ outputs: - cuda-culibos-static - cuda-cudart-static - cuda-nvml-dev - - libcufft-dev - - libcufile-dev - - libcurand-dev - - libnpp-dev - libnvjpeg-dev - libnvjpeg-static - cuda-version ${{ cuda_compiler_version }}.* - - aws-sdk-cpp - - cfitsio - cutlass - dlpack - - ffmpeg - - ffmpeg * lgpl* - - libabseil - libboost-headers ${{ libboost_headers }} - - libjpeg-turbo - - if: (arm_variant_type | default("")) != "tegra" - then: - - libnvcomp-dev ${{ libnvcomp }} - - libnvimgcodec-dev ${{ libnvimgcodec }} - libnvjpeg2k-dev ${{ libnvjpeg2k }} - - libopencv - libprotobuf - libprotobuf-static - - libsndfile - - libtar - - libtiff - - lmdb - nvtx-c - rapidjson - zlib From 12f0e2cc1d9b77ad58bc23ce1bd1a30be16ef0cb Mon Sep 17 00:00:00 2001 From: Daniel Ching Date: Thu, 7 May 2026 19:03:07 -0500 Subject: [PATCH 10/24] DOC: Transfer the build script comments --- recipe/build.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) mode change 100644 => 100755 recipe/build.sh diff --git a/recipe/build.sh b/recipe/build.sh old mode 100644 new mode 100755 index f72d4f3..83c5bd6 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -1,5 +1,10 @@ #!/bin/bash set -ex + +export CMAKE_C_COMPILER_LAUNCHER=sccache +export CMAKE_CXX_COMPILER_LAUNCHER=sccache +export CMAKE_CUDA_COMPILER_LAUNCHER=sccache + # rattler-build leaves PKG_NAME unset for `staging:` outputs (no package to name). # Our only staging output is core-build, so treat unset PKG_NAME as core-build. PKG_NAME="${PKG_NAME:-core-build}" @@ -8,9 +13,15 @@ case "${PKG_NAME}" in libdali) # Install only — core-build already populated the build tree. cd build + + # Install native shared libs and headers to PREFIX so the Python bindings + # build (PREBUILD_DALI_LIBS=ON) can locate them via standard cmake search paths. cmake --install . --strip --prefix "$PREFIX" + rm -rf "${SP_DIR}/nvidia/dali/include/boost" rm -rf "${PREFIX}"/lib/gdk* + + # Install generated protobuf headers needed by the Python bindings cmake pass. find . -name "*.pb.h" | sed 's|^\./||' | while IFS= read -r FILE; do DEST="$PREFIX/include/$FILE" mkdir -p "$(dirname "$DEST")" From 094357ec9ec190c55d6890d1a57a77fc7ffcdf76 Mon Sep 17 00:00:00 2001 From: Daniel Ching Date: Thu, 7 May 2026 19:25:48 -0500 Subject: [PATCH 11/24] REF: Add -dev output --- recipe/build.sh | 2 +- recipe/recipe.yaml | 55 +++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 53 insertions(+), 4 deletions(-) diff --git a/recipe/build.sh b/recipe/build.sh index 83c5bd6..2787e9c 100755 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -10,7 +10,7 @@ export CMAKE_CUDA_COMPILER_LAUNCHER=sccache PKG_NAME="${PKG_NAME:-core-build}" case "${PKG_NAME}" in - libdali) + libdali|libdali-dev) # Install only — core-build already populated the build tree. cd build diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index 8688048..f33c643 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -98,6 +98,8 @@ outputs: run_exports: true build: script: build.sh + files: + - lib/libdali*.so requirements: ignore_run_exports: by_name: @@ -149,8 +151,8 @@ outputs: - test -f "${PREFIX}/lib/libdali_core.so" - test -f "${PREFIX}/lib/libdali_kernels.so" - test -f "${PREFIX}/lib/libdali_operators.so" - - test -f "${PREFIX}/include/dali/c_api.h" - - test -f "${PREFIX}/include/dali/core/common.h" + # Negative check: headers live in libdali-dev now, not here. + - test ! -f "${PREFIX}/include/dali/c_api.h" about: summary: DALI native GPU-accelerated data loading libraries (CUDA runtime, Python-independent). description: | @@ -164,6 +166,53 @@ outputs: - third_party/README.rst homepage: https://github.com/NVIDIA/dali + - package: + name: libdali-dev + version: ${{ version }} + inherit: + from: core-build + run_exports: false + build: + script: build.sh + files: + - include/dali/** + requirements: + build: + - ${{ compiler('cuda') }} + - ${{ compiler('cxx') }} + - ${{ stdlib('c') }} + - if: linux and aarch64 and not match(cuda_compiler_version, "==None") + then: + - arm-variant * ${{ arm_variant_type | default("None") }} + - cmake 3.* + - file + - ninja + - pkgconf + host: + - cuda-version ${{ cuda_compiler_version }}.* + run: + - ${{ pin_compatible('cuda-version', lower_bound='x', upper_bound='x') }} + - ${{ pin_subpackage('libdali', exact=True) }} + run_exports: + - ${{ pin_subpackage('libdali', upper_bound="x.x.x") }} + tests: + - script: + - test -f "${PREFIX}/include/dali/c_api.h" + - test -f "${PREFIX}/include/dali/core/common.h" + - test -f "${PREFIX}/include/dali/pipeline/dali.pb.h" + about: + summary: DALI development headers (C++ API). + description: | + Development headers for NVIDIA DALI. Required for building software + that links against libdali. Install libdali for the runtime libraries. + license: Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause + license_file: + - LICENSE + - COPYRIGHT + - Acknowledgements.txt # Contains licenses for linked libraries + - third_party/README.rst + homepage: https://github.com/NVIDIA/dali + - package: name: nvidia-dali-python version: ${{ version }} @@ -202,7 +251,7 @@ outputs: - libprotobuf - libprotobuf-static host: - - ${{ pin_subpackage('libdali', upper_bound="x.x.x") }} + - ${{ pin_subpackage('libdali-dev', upper_bound="x.x.x") }} # NOTE: static libraries culibos and nvjpeg required for correct feature detection - if: linux and match(cuda_compiler_version, "13.*") then: From 29f92a36bc9a5b919bc4090298732738d496e211 Mon Sep 17 00:00:00 2001 From: Daniel Ching Date: Thu, 7 May 2026 19:41:52 -0500 Subject: [PATCH 12/24] DEV: Build a single arch for debugging --- recipe/build.sh | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/recipe/build.sh b/recipe/build.sh index 2787e9c..bb195d9 100755 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -1,10 +1,6 @@ #!/bin/bash set -ex -export CMAKE_C_COMPILER_LAUNCHER=sccache -export CMAKE_CXX_COMPILER_LAUNCHER=sccache -export CMAKE_CUDA_COMPILER_LAUNCHER=sccache - # rattler-build leaves PKG_NAME unset for `staging:` outputs (no package to name). # Our only staging output is core-build, so treat unset PKG_NAME as core-build. PKG_NAME="${PKG_NAME:-core-build}" @@ -98,12 +94,13 @@ else fi # Debug with fewer archs for shorter build times -export CUDAARCHS="89" -# if [[ "${arm_variant_type:-}" == "tegra" ]]; then -# export CUDAARCHS="87-real;101f-real;101-virtual" -# else +if [[ "${arm_variant_type:-}" == "tegra" ]]; then + export CUDAARCHS="87" +# export CUDAARCHS="87;101" +else + export CUDAARCHS="89" # export CUDAARCHS="all-major" -# fi +fi # https://docs.nvidia.com/deeplearning/dali/user-guide/docs/compilation.html#optional-cmake-build-parameters cmake ${CMAKE_ARGS} \ From f5f6f071970dcc5c0ce7956570c7ae0681e59f6d Mon Sep 17 00:00:00 2001 From: Daniel Ching Date: Mon, 13 Apr 2026 17:38:53 -0500 Subject: [PATCH 13/24] NEW: Manually add freethreading migrator --- .ci_support/migrations/python314t.yaml | 54 ++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .ci_support/migrations/python314t.yaml diff --git a/.ci_support/migrations/python314t.yaml b/.ci_support/migrations/python314t.yaml new file mode 100644 index 0000000..a88ee49 --- /dev/null +++ b/.ci_support/migrations/python314t.yaml @@ -0,0 +1,54 @@ +migrator_ts: 1755739493 +__migrator: + commit_message: Rebuild for python 3.14 freethreading + migration_number: 1 + operation: key_add + primary_key: python + ordering: + python: + - 3.9.* *_cpython + - 3.10.* *_cpython + - 3.11.* *_cpython + - 3.12.* *_cpython + - 3.13.* *_cp313 + - 3.13.* *_cp313t + - 3.14.* *_cp314 # new entry + - 3.14.* *_cp314t # new entry + longterm: true + pr_limit: 20 + max_solver_attempts: 3 # this will make the bot retry "not solvable" stuff 12 times + exclude: + # this shouldn't attempt to modify the python feedstocks + - python + - pypy3.6 + - pypy-meta + - cross-python + - python_abi + exclude_pinned_pkgs: false + # if feedstock already has 3.13t migrator this is redundant, but harmless + additional_zip_keys: + - is_freethreading + - is_abi3 + wait_for_migrators: + - python314 + ignored_deps_per_node: + matplotlib: + - pyqt + pyarrow: + # optional test dependencies + - numba + - sparse + pyzmq: + # test dependency not used with free-threaded + - auditwheel + allowlist_file: free-threaded-314.txt + +python: +- 3.14.* *_cp314t +# additional entries to add for zip_keys +is_freethreading: +- true +is_python_min: +- false +is_abi3: +- false From bbd620535206ae2bf431b1828e34dca4cdf62561 Mon Sep 17 00:00:00 2001 From: Daniel Ching <9604511+carterbox@users.noreply.github.com> Date: Wed, 15 Apr 2026 13:49:54 -0500 Subject: [PATCH 14/24] BLD: Overwrite SP_DIR from conda-build --- recipe/build.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/recipe/build.sh b/recipe/build.sh index bb195d9..f6cd7a0 100755 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -5,6 +5,9 @@ set -ex # Our only staging output is core-build, so treat unset PKG_NAME as core-build. PKG_NAME="${PKG_NAME:-core-build}" +# 2026.04.15 - Overwrite SP_DIR because conda-build doesn't yet add the `t` for freethreading +export SP_DIR=$PREFIX/lib/python`python -c "import sysconfig; print(sysconfig.get_config_var('LDVERSION'))"`/site-packages + case "${PKG_NAME}" in libdali|libdali-dev) # Install only — core-build already populated the build tree. From 8907c4fe13416d408148ed4180a51518585c26aa Mon Sep 17 00:00:00 2001 From: Daniel Ching Date: Thu, 7 May 2026 20:10:43 -0500 Subject: [PATCH 15/24] MNT: Re-rendered with conda-smithy 3.61.2 and conda-forge-pinning 2026.05.07.16.24.33 Other tools: - conda-build 26.3.0 - rattler-build 0.64.1 - rattler-build-conda-compat 1.4.14 --- ..._version2.17cuda_compiler_version12.9.yaml | 1 + ..._version2.28cuda_compiler_version13.0.yaml | 1 + ..._version2.17cuda_compiler_version12.9.yaml | 1 + ..._version2.28cuda_compiler_version13.0.yaml | 1 + ..._version2.34cuda_compiler_version12.9.yaml | 1 + README.md | 19 ++++++++++++++++--- 6 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9.yaml b/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9.yaml index f2c2bb7..46a0f4c 100644 --- a/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9.yaml +++ b/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9.yaml @@ -64,6 +64,7 @@ python: - 3.12.* *_cpython - 3.13.* *_cp313 - 3.14.* *_cp314 +- 3.14.* *_cp314t six: - '>=1.16,<=1.17' target_platform: diff --git a/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0.yaml b/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0.yaml index 5d1419c..6cce0ad 100644 --- a/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0.yaml +++ b/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0.yaml @@ -64,6 +64,7 @@ python: - 3.12.* *_cpython - 3.13.* *_cp313 - 3.14.* *_cp314 +- 3.14.* *_cp314t six: - '>=1.16,<=1.17' target_platform: diff --git a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9.yaml b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9.yaml index 535f11b..70a352e 100644 --- a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9.yaml +++ b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9.yaml @@ -66,6 +66,7 @@ python: - 3.12.* *_cpython - 3.13.* *_cp313 - 3.14.* *_cp314 +- 3.14.* *_cp314t six: - '>=1.16,<=1.17' target_platform: diff --git a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0.yaml b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0.yaml index e1e79e9..0a45c83 100644 --- a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0.yaml +++ b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0.yaml @@ -66,6 +66,7 @@ python: - 3.12.* *_cpython - 3.13.* *_cp313 - 3.14.* *_cp314 +- 3.14.* *_cp314t six: - '>=1.16,<=1.17' target_platform: diff --git a/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9.yaml b/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9.yaml index f3b9c33..08f8cbb 100644 --- a/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9.yaml +++ b/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9.yaml @@ -66,6 +66,7 @@ python: - 3.12.* *_cpython - 3.13.* *_cp313 - 3.14.* *_cp314 +- 3.14.* *_cp314t six: - '>=1.16,<=1.17' target_platform: diff --git a/README.md b/README.md index 8d0dfa1..3893918 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,18 @@ Summary: DALI native GPU-accelerated data loading libraries (CUDA runtime, Pytho Native shared libraries for NVIDIA DALI. Contains the core GPU-accelerated processing engine. Install nvidia-dali-python for the Python API. +About libdali-dev +----------------- + +Home: https://github.com/NVIDIA/dali + +Package license: Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause + +Summary: DALI development headers (C++ API). + +Development headers for NVIDIA DALI. Required for building software +that links against libdali. Install libdali for the runtime libraries. + About nvidia-dali-python ------------------------ @@ -42,6 +54,7 @@ Current release info | Name | Downloads | Version | Platforms | | --- | --- | --- | --- | | [![Conda Recipe](https://img.shields.io/badge/recipe-libdali-green.svg)](https://anaconda.org/conda-forge/libdali) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libdali.svg)](https://anaconda.org/conda-forge/libdali) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libdali.svg)](https://anaconda.org/conda-forge/libdali) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libdali.svg)](https://anaconda.org/conda-forge/libdali) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-libdali--dev-green.svg)](https://anaconda.org/conda-forge/libdali-dev) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libdali-dev.svg)](https://anaconda.org/conda-forge/libdali-dev) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libdali-dev.svg)](https://anaconda.org/conda-forge/libdali-dev) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libdali-dev.svg)](https://anaconda.org/conda-forge/libdali-dev) | | [![Conda Recipe](https://img.shields.io/badge/recipe-nvidia--dali--python-green.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/nvidia-dali-python.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/nvidia-dali-python.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/nvidia-dali-python.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | Installing libdali @@ -54,16 +67,16 @@ conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `libdali, nvidia-dali-python` can be installed with `conda`: +Once the `conda-forge` channel has been enabled, `libdali, libdali-dev, nvidia-dali-python` can be installed with `conda`: ``` -conda install libdali nvidia-dali-python +conda install libdali libdali-dev nvidia-dali-python ``` or with `mamba`: ``` -mamba install libdali nvidia-dali-python +mamba install libdali libdali-dev nvidia-dali-python ``` It is possible to list all of the versions of `libdali` available on your platform with `conda`: From 77dabad663fd0e2fbf7adf452bfe53e71dc3d59c Mon Sep 17 00:00:00 2001 From: Janusz Lisiecki Date: Fri, 8 May 2026 09:57:26 +0200 Subject: [PATCH 16/24] Restore right sm builds Signed-off-by: Janusz Lisiecki --- recipe/build.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/recipe/build.sh b/recipe/build.sh index f6cd7a0..155ff02 100755 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -99,10 +99,8 @@ fi # Debug with fewer archs for shorter build times if [[ "${arm_variant_type:-}" == "tegra" ]]; then export CUDAARCHS="87" -# export CUDAARCHS="87;101" else - export CUDAARCHS="89" -# export CUDAARCHS="all-major" + export CUDAARCHS="" fi # https://docs.nvidia.com/deeplearning/dali/user-guide/docs/compilation.html#optional-cmake-build-parameters From 41811f7885dd33e979bae80cac608e6e72409bc4 Mon Sep 17 00:00:00 2001 From: Janusz Lisiecki Date: Fri, 8 May 2026 16:29:08 +0200 Subject: [PATCH 17/24] Add missing tegra sm Signed-off-by: Janusz Lisiecki --- recipe/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/build.sh b/recipe/build.sh index 155ff02..974f510 100755 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -98,7 +98,7 @@ fi # Debug with fewer archs for shorter build times if [[ "${arm_variant_type:-}" == "tegra" ]]; then - export CUDAARCHS="87" + export CUDAARCHS="87,101f" else export CUDAARCHS="" fi From f22c22d36626e3d0fd535e9d5b2702998a84c15f Mon Sep 17 00:00:00 2001 From: Daniel Ching Date: Fri, 8 May 2026 09:37:29 -0500 Subject: [PATCH 18/24] DOC: Add feedstock-name to extras --- recipe/recipe.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index f33c643..ff36c27 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -368,6 +368,7 @@ about: homepage: https://github.com/NVIDIA/dali extra: + feedstock-name: nvidia-dali-python recipe-maintainers: - conda-forge/cuda - isuruf From 2dd6aa46a013ed0d3c021dd9a9090f9ee755ee27 Mon Sep 17 00:00:00 2001 From: Janusz Lisiecki Date: Fri, 8 May 2026 18:03:40 +0200 Subject: [PATCH 19/24] Bugfix Signed-off-by: Janusz Lisiecki --- recipe/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/build.sh b/recipe/build.sh index 974f510..3eeb018 100755 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -98,7 +98,7 @@ fi # Debug with fewer archs for shorter build times if [[ "${arm_variant_type:-}" == "tegra" ]]; then - export CUDAARCHS="87,101f" + export CUDAARCHS="87;101f" else export CUDAARCHS="" fi From 5bfa2a4a85ee3be67cf54a258f6c97b5ba2c48a8 Mon Sep 17 00:00:00 2001 From: Janusz Lisiecki Date: Thu, 21 May 2026 11:33:38 +0200 Subject: [PATCH 20/24] Move to 2.1.0 release Signed-off-by: Janusz Lisiecki --- ...-failure-message-and-dlopen-search-p.patch | 21 ++++++------------- recipe/recipe.yaml | 6 +++--- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/recipe/patches/0002-DOC-Patch-dlopen-failure-message-and-dlopen-search-p.patch b/recipe/patches/0002-DOC-Patch-dlopen-failure-message-and-dlopen-search-p.patch index c52e8c0..15e56b2 100644 --- a/recipe/patches/0002-DOC-Patch-dlopen-failure-message-and-dlopen-search-p.patch +++ b/recipe/patches/0002-DOC-Patch-dlopen-failure-message-and-dlopen-search-p.patch @@ -5,7 +5,7 @@ Subject: [PATCH 2/5] DOC: Patch dlopen failure message and dlopen search paths --- CMakeLists.txt | 2 +- - dali/core/CMakeLists.txt | 5 ++--- + dali/core/CMakeLists.txt | 3 +-- dali/core/dynlink_cufile.cc | 2 +- dali/core/dynlink_nvcomp.cc | 2 +- dali/kernels/signal/fft/cufft_wrap.cc | 2 +- @@ -14,7 +14,7 @@ Subject: [PATCH 2/5] DOC: Patch dlopen failure message and dlopen search paths dali/nvjpeg/nvjpeg_wrap.cc | 2 +- dali/operators/operators.cc | 6 +++--- dali/util/nvml_wrap.cc | 2 +- - 10 files changed, 19 insertions(+), 21 deletions(-) + 10 files changed, 18 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c3fba512..54d076cd 100644 @@ -33,24 +33,16 @@ diff --git a/dali/core/CMakeLists.txt b/dali/core/CMakeLists.txt index 1aa32ba1..be6acbd7 100644 --- a/dali/core/CMakeLists.txt +++ b/dali/core/CMakeLists.txt -@@ -102,15 +102,14 @@ if (BUILD_NVCOMP) - OUTPUT ${NVCOMP_GENERATED_STUB} +@@ -104,8 +104,7 @@ if (BUILD_NVCOMP) COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/../../internal_tools/stub_generator/stub_codegen.py --unique_prefix=nvComp -- "${CMAKE_CURRENT_SOURCE_DIR}/../../internal_tools/stub_generator/nvcomp.json" ${NVCOMP_GENERATED_STUB} -- "${CUDA_TOOLKIT_INCLUDE_MAJOR_DIRECTORY}/nvcomp/lz4.h" + "${nvcomp_INCLUDE_DIR}/nvcomp/lz4.h" +- "-I${nvcomp_INCLUDE_DIR}" - ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES_DIRECTIVE} -+ "${NVCOMP_ROOT_DIR}/include/nvcomp/lz4.h" "-I${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}" ++ "-I${nvcomp_INCLUDE_DIR}" "-I${CUDAToolkit_TARGET_DIR}/include" # for some reason QNX fails with 'too many errors emitted' is this is not set "-ferror-limit=0" # let clang know which architecutre we compile for - "--target=${CMAKE_SYSTEM_PROCESSOR}-linux-gnu" - ${DEFAULT_COMPILER_INCLUDE} - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../../internal_tools/stub_generator/stub_codegen.py -- "${CUDA_TOOLKIT_INCLUDE_MAJOR_DIRECTORY}/nvcomp/lz4.h" -+ "${NVCOMP_ROOT_DIR}/include/nvcomp/lz4.h" - "${CMAKE_CURRENT_SOURCE_DIR}/../../internal_tools/stub_generator/nvcomp.json" - COMMENT "Running nvcomp/lz4.hstub generator" - VERBATIM) diff --git a/dali/core/dynlink_cufile.cc b/dali/core/dynlink_cufile.cc index 64bce978..825adc8a 100644 --- a/dali/core/dynlink_cufile.cc @@ -197,4 +189,3 @@ index b2cfe612..a8d95a4b 100644 return ret; -- 2.53.0 - diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index ff36c27..99af29d 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -1,7 +1,7 @@ # TODO: Update package pinnings in conda_build_config for every release schema_version: 1 context: - version: "2.0.0" + version: "2.1.0" recipe: name: nvidia-dali @@ -9,7 +9,7 @@ recipe: source: - url: https://github.com/NVIDIA/DALI/archive/refs/tags/v${{ version }}.tar.gz - sha256: 6423d941cefc5c052ad0ea9dda8e58f84019a2e4de288a3d6b35e67d09479e79 + sha256: c131146e16ba00dff19b09b323d02c038e1fed6d46da935e6158b23cc7fd9fc3 patches: - patches/0001-BLD-Use-CUDA-target-include-directory-to-support-cro.patch - patches/0004-BLD-Dynamically-link-nvjpeg2k.patch @@ -23,7 +23,7 @@ source: target_directory: third_party/ffts build: - number: 1 + number: 0 skip: - cuda_compiler_version == "None" - win From 1b6e79a1114136ea57542e0d5e5fcfdcc9832e4b Mon Sep 17 00:00:00 2001 From: Janusz Lisiecki Date: Thu, 21 May 2026 14:00:09 +0200 Subject: [PATCH 21/24] Use optree Signed-off-by: Janusz Lisiecki --- recipe/conda_build_config.yaml | 2 -- recipe/recipe.yaml | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index edddb17..de32cff 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -15,8 +15,6 @@ gast: - ">=0.3.3,<=0.7.0" six: - ">=1.16,<=1.17" -dm_tree: - - "<=0.1.9" packaging: - "<=25.0" # https://github.com/NVIDIA/DALI/blob/v1.47.0/pyproject.toml diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index 99af29d..e7ce942 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -281,7 +281,7 @@ outputs: - astunparse ${{ astunparse }} - gast ${{ gast }} - six ${{ six }} - - dm-tree ${{ dm_tree }} + - optree - packaging ${{ packaging }} # Stubs autoformat themselves - black ${{ black }} @@ -293,7 +293,7 @@ outputs: - astunparse ${{ astunparse }} - gast ${{ gast }} - six ${{ six }} - - dm-tree ${{ dm_tree }} + - optree - packaging ${{ packaging }} - ${{ pin_compatible('cuda-version', lower_bound='x', upper_bound='x') }} tests: From 66ee6ee047c6a6dcad587419cec290cc9f128ca3 Mon Sep 17 00:00:00 2001 From: Daniel Ching <9604511+carterbox@users.noreply.github.com> Date: Wed, 27 May 2026 10:54:42 -0500 Subject: [PATCH 22/24] Rename libdali-dev to libdali-devel in recipe.yaml --- recipe/recipe.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml index e7ce942..b947bc4 100644 --- a/recipe/recipe.yaml +++ b/recipe/recipe.yaml @@ -151,7 +151,7 @@ outputs: - test -f "${PREFIX}/lib/libdali_core.so" - test -f "${PREFIX}/lib/libdali_kernels.so" - test -f "${PREFIX}/lib/libdali_operators.so" - # Negative check: headers live in libdali-dev now, not here. + # Negative check: headers live in libdali-devel now, not here. - test ! -f "${PREFIX}/include/dali/c_api.h" about: summary: DALI native GPU-accelerated data loading libraries (CUDA runtime, Python-independent). @@ -167,7 +167,7 @@ outputs: homepage: https://github.com/NVIDIA/dali - package: - name: libdali-dev + name: libdali-devel version: ${{ version }} inherit: from: core-build @@ -251,7 +251,7 @@ outputs: - libprotobuf - libprotobuf-static host: - - ${{ pin_subpackage('libdali-dev', upper_bound="x.x.x") }} + - ${{ pin_subpackage('libdali-devel', upper_bound="x.x.x") }} # NOTE: static libraries culibos and nvjpeg required for correct feature detection - if: linux and match(cuda_compiler_version, "13.*") then: From aa4d21a52adc4a02525195d4b16bfeca822ead3c Mon Sep 17 00:00:00 2001 From: "conda-forge-webservices[bot]" <91080706+conda-forge-webservices[bot]@users.noreply.github.com> Date: Wed, 27 May 2026 15:59:31 +0000 Subject: [PATCH 23/24] MNT: Re-rendered with conda-smithy 3.62.0 and conda-forge-pinning 2026.05.27.05.30.0 --- ..._version2.17cuda_compiler_version12.9.yaml | 2 - ..._version2.28cuda_compiler_version13.0.yaml | 2 - ..._version2.17cuda_compiler_version12.9.yaml | 2 - ..._version2.28cuda_compiler_version13.0.yaml | 2 - ..._version2.34cuda_compiler_version12.9.yaml | 2 - .ci_support/migrations/libboost188.yaml | 12 ------ .github/workflows/conda-build.yml | 42 ++++++++++++------ .scripts/build_steps.sh | 2 +- README.md | 43 +++++++++++-------- 9 files changed, 55 insertions(+), 54 deletions(-) delete mode 100644 .ci_support/migrations/libboost188.yaml diff --git a/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9.yaml b/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9.yaml index 46a0f4c..dd2cfee 100644 --- a/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9.yaml +++ b/.ci_support/linux_64_c_stdlib_version2.17cuda_compiler_version12.9.yaml @@ -22,8 +22,6 @@ cxx_compiler: - gxx cxx_compiler_version: - '14' -dm_tree: -- <=0.1.9 docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 ffmpeg: diff --git a/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0.yaml b/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0.yaml index 6cce0ad..d65486c 100644 --- a/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0.yaml +++ b/.ci_support/linux_64_c_stdlib_version2.28cuda_compiler_version13.0.yaml @@ -22,8 +22,6 @@ cxx_compiler: - gxx cxx_compiler_version: - '14' -dm_tree: -- <=0.1.9 docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 ffmpeg: diff --git a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9.yaml b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9.yaml index 70a352e..d7a55ad 100644 --- a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9.yaml +++ b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9.yaml @@ -24,8 +24,6 @@ cxx_compiler: - gxx cxx_compiler_version: - '14' -dm_tree: -- <=0.1.9 docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 ffmpeg: diff --git a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0.yaml b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0.yaml index 0a45c83..5ff433e 100644 --- a/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0.yaml +++ b/.ci_support/linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0.yaml @@ -24,8 +24,6 @@ cxx_compiler: - gxx cxx_compiler_version: - '14' -dm_tree: -- <=0.1.9 docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 ffmpeg: diff --git a/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9.yaml b/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9.yaml index 08f8cbb..2642b37 100644 --- a/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9.yaml +++ b/.ci_support/linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9.yaml @@ -24,8 +24,6 @@ cxx_compiler: - gxx cxx_compiler_version: - '14' -dm_tree: -- <=0.1.9 docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 ffmpeg: diff --git a/.ci_support/migrations/libboost188.yaml b/.ci_support/migrations/libboost188.yaml deleted file mode 100644 index 6eca3fb..0000000 --- a/.ci_support/migrations/libboost188.yaml +++ /dev/null @@ -1,12 +0,0 @@ -__migrator: - build_number: 1 - kind: version - commit_message: "Rebuild for libboost 1.88" - migration_number: 1 -libboost_devel: -- "1.88" -libboost_headers: -- "1.88" -libboost_python_devel: -- "1.88" -migrator_ts: 1753251695.3315456 diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index 37fec99..ab07f7f 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -29,6 +29,9 @@ jobs: os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + tools_install_dir: ~/miniforge3 + build_workspace_dir: build_artifacts + docker_run_args: - CONFIG: linux_64_c_stdlib_version2.28cuda_compiler_version13.0 STORE_BUILD_ARTIFACTS: True SHORT_CONFIG: linux_64_c_stdlib_version2.28cuda_compil_h282d3825 @@ -36,6 +39,9 @@ jobs: os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + tools_install_dir: ~/miniforge3 + build_workspace_dir: build_artifacts + docker_run_args: - CONFIG: linux_aarch64_arm_variant_typesbsac_stdlib_version2.17cuda_compiler_version12.9 STORE_BUILD_ARTIFACTS: True SHORT_CONFIG: linux_aarch64_arm_variant_typesbsac_stdl_h6a4a0357 @@ -43,6 +49,9 @@ jobs: os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + tools_install_dir: ~/miniforge3 + build_workspace_dir: build_artifacts + docker_run_args: - CONFIG: linux_aarch64_arm_variant_typesbsac_stdlib_version2.28cuda_compiler_version13.0 STORE_BUILD_ARTIFACTS: True SHORT_CONFIG: linux_aarch64_arm_variant_typesbsac_stdl_h1d8a58f0 @@ -50,6 +59,9 @@ jobs: os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + tools_install_dir: ~/miniforge3 + build_workspace_dir: build_artifacts + docker_run_args: - CONFIG: linux_aarch64_arm_variant_typetegrac_stdlib_version2.34cuda_compiler_version12.9 STORE_BUILD_ARTIFACTS: True SHORT_CONFIG: linux_aarch64_arm_variant_typetegrac_std_h645bfee9 @@ -57,6 +69,9 @@ jobs: os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + tools_install_dir: ~/miniforge3 + build_workspace_dir: build_artifacts + docker_run_args: steps: - name: Checkout code @@ -66,11 +81,13 @@ jobs: id: build-linux if: matrix.os == 'ubuntu' env: + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} CONFIG: ${{ matrix.CONFIG }} UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} DOCKER_IMAGE: ${{ matrix.DOCKER_IMAGE }} CI: github_actions - CONDA_FORGE_DOCKER_RUN_ARGS: "${{ matrix.CONDA_FORGE_DOCKER_RUN_ARGS }}" + CONDA_FORGE_DOCKER_RUN_ARGS: "${{ matrix.docker_run_args }}" BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} @@ -90,6 +107,8 @@ jobs: else export IS_PR_BUILD="False" fi + export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" + export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" echo "::endgroup::" ./.scripts/run_docker_build.sh @@ -97,6 +116,8 @@ jobs: id: build-macos if: matrix.os == 'macos' env: + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} CONFIG: ${{ matrix.CONFIG }} UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} CI: github_actions @@ -115,6 +136,8 @@ jobs: else export IS_PR_BUILD="False" fi + export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" + export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" ./.scripts/run_osx_build.sh - name: Build on windows @@ -127,10 +150,8 @@ jobs: set "sha=%GITHUB_SHA%" call ".scripts\run_win_build.bat" env: - # default value; make it explicit, as it needs to match with artefact - # generation below. Not configurable for now, can be revisited later - CONDA_BLD_PATH: C:\bld - MINIFORGE_HOME: ${{ contains(runner.arch, 'ARM') && 'C' || 'D' }}:\Miniforge + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} PYTHONUNBUFFERED: 1 CONFIG: ${{ matrix.CONFIG }} CI: github_actions @@ -168,23 +189,18 @@ jobs: # we do not want to trigger artefact creation if the build was cancelled if: ${{ always() && steps.determine-status.outputs.status != 'cancelled' && matrix.STORE_BUILD_ARTIFACTS }} env: + CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} CI: github_actions CONFIG: ${{ matrix.CONFIG }} SHORT_CONFIG: ${{ matrix.SHORT_CONFIG }} JOB_STATUS: ${{ steps.determine-status.outputs.status }} OS: ${{ matrix.os }} run: | + export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" + export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" export CI_RUN_ID=$GITHUB_RUN_ID export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" export ARTIFACT_STAGING_DIR="$GITHUB_WORKSPACE" - if [ $OS == "macos" ]; then - export CONDA_BLD_PATH="${MINIFORGE_HOME:-${HOME}/miniforge3}/conda-bld" - elif [ $OS == "windows" ]; then - # this needs to be consistent with build step, see above - export CONDA_BLD_PATH="C:\\bld" - else - export CONDA_BLD_PATH="build_artifacts" - fi # Archive everything in CONDA_BLD_PATH except environments # Archive the CONDA_BLD_PATH environments only when the job fails # Use different prefix for successful and failed build artifacts diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 80306f8..88aca38 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -36,7 +36,7 @@ mv /opt/conda/conda-meta/history /opt/conda/conda-meta/history.$(date +%Y-%m-%d- echo > /opt/conda/conda-meta/history micromamba install --root-prefix ~/.conda --prefix /opt/conda \ --yes --override-channels --channel conda-forge --strict-channel-priority \ - pip rattler-build conda-forge-ci-setup=4 "conda-build>=24.1" + pip rattler-build conda-forge-ci-setup=4 "conda-build>=26.3" export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 # set up the condarc diff --git a/README.md b/README.md index 3893918..5f1b8c9 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -About libdali-feedstock -======================= +About nvidia-dali-python-feedstock +================================== Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/nvidia-dali-python-feedstock/blob/main/LICENSE.txt) -About libdali -------------- +About nvidia-dali-python +------------------------ Home: https://github.com/NVIDIA/dali @@ -16,8 +16,8 @@ Summary: DALI native GPU-accelerated data loading libraries (CUDA runtime, Pytho Native shared libraries for NVIDIA DALI. Contains the core GPU-accelerated processing engine. Install nvidia-dali-python for the Python API. -About libdali-dev ------------------ +About libdali-devel +------------------- Home: https://github.com/NVIDIA/dali @@ -45,7 +45,14 @@ Current build status ==================== - +
+ + +
GitHub Actions + + + +
Current release info @@ -54,29 +61,29 @@ Current release info | Name | Downloads | Version | Platforms | | --- | --- | --- | --- | | [![Conda Recipe](https://img.shields.io/badge/recipe-libdali-green.svg)](https://anaconda.org/conda-forge/libdali) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libdali.svg)](https://anaconda.org/conda-forge/libdali) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libdali.svg)](https://anaconda.org/conda-forge/libdali) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libdali.svg)](https://anaconda.org/conda-forge/libdali) | -| [![Conda Recipe](https://img.shields.io/badge/recipe-libdali--dev-green.svg)](https://anaconda.org/conda-forge/libdali-dev) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libdali-dev.svg)](https://anaconda.org/conda-forge/libdali-dev) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libdali-dev.svg)](https://anaconda.org/conda-forge/libdali-dev) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libdali-dev.svg)](https://anaconda.org/conda-forge/libdali-dev) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-libdali--devel-green.svg)](https://anaconda.org/conda-forge/libdali-devel) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libdali-devel.svg)](https://anaconda.org/conda-forge/libdali-devel) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libdali-devel.svg)](https://anaconda.org/conda-forge/libdali-devel) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libdali-devel.svg)](https://anaconda.org/conda-forge/libdali-devel) | | [![Conda Recipe](https://img.shields.io/badge/recipe-nvidia--dali--python-green.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/nvidia-dali-python.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/nvidia-dali-python.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/nvidia-dali-python.svg)](https://anaconda.org/conda-forge/nvidia-dali-python) | -Installing libdali -================== +Installing nvidia-dali-python +============================= -Installing `libdali` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: +Installing `nvidia-dali-python` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: ``` conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `libdali, libdali-dev, nvidia-dali-python` can be installed with `conda`: +Once the `conda-forge` channel has been enabled, `libdali, libdali-devel, nvidia-dali-python` can be installed with `conda`: ``` -conda install libdali libdali-dev nvidia-dali-python +conda install libdali libdali-devel nvidia-dali-python ``` or with `mamba`: ``` -mamba install libdali libdali-dev nvidia-dali-python +mamba install libdali libdali-devel nvidia-dali-python ``` It is possible to list all of the versions of `libdali` available on your platform with `conda`: @@ -146,17 +153,17 @@ Terminology produce the finished article (built conda distributions) -Updating libdali-feedstock -========================== +Updating nvidia-dali-python-feedstock +===================================== -If you would like to improve the libdali recipe or build a new +If you would like to improve the nvidia-dali-python recipe or build a new package version, please fork this repository and submit a PR. Upon submission, your changes will be run on the appropriate platforms to give the reviewer an opportunity to confirm that the changes result in a successful build. Once merged, the recipe will be re-built and uploaded automatically to the `conda-forge` channel, whereupon the built conda packages will be available for everybody to install and use from the `conda-forge` channel. -Note that all branches in the conda-forge/libdali-feedstock are +Note that all branches in the conda-forge/nvidia-dali-python-feedstock are immediately built and any created packages are uploaded, so PRs should be based on branches in forks, and branches in the main repository should only be used to build distinct package versions. From c025a5b464f89e66d8cd44050af71c9082e9d500 Mon Sep 17 00:00:00 2001 From: Daniel Ching Date: Wed, 27 May 2026 13:03:43 -0500 Subject: [PATCH 24/24] BUG: libdali-dev -> libdali-devel --- recipe/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/build.sh b/recipe/build.sh index 3eeb018..77c40ad 100755 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -9,7 +9,7 @@ PKG_NAME="${PKG_NAME:-core-build}" export SP_DIR=$PREFIX/lib/python`python -c "import sysconfig; print(sysconfig.get_config_var('LDVERSION'))"`/site-packages case "${PKG_NAME}" in - libdali|libdali-dev) + libdali|libdali-devel) # Install only — core-build already populated the build tree. cd build