diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml
deleted file mode 100755
index b8e38ee0..00000000
--- a/.azure-pipelines/azure-pipelines-linux.yml
+++ /dev/null
@@ -1,146 +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_is_freethreadingfalsepython3.10.____cpython:
- CONFIG: linux_64_is_freethreadingfalsepython3.10.____cpython
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_64_is_freethreadingfalsepython3.11.____cpython:
- CONFIG: linux_64_is_freethreadingfalsepython3.11.____cpython
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_64_is_freethreadingfalsepython3.12.____cpython:
- CONFIG: linux_64_is_freethreadingfalsepython3.12.____cpython
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_64_is_freethreadingfalsepython3.13.____cp313:
- CONFIG: linux_64_is_freethreadingfalsepython3.13.____cp313
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_64_is_freethreadingfalsepython3.14.____cp314:
- CONFIG: linux_64_is_freethreadingfalsepython3.14.____cp314
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_64_is_freethreadingtruepython3.14.____cp314t:
- CONFIG: linux_64_is_freethreadingtruepython3.14.____cp314t
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.10.____cpython:
- CONFIG: linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.10.____cpython
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.11.____cpython:
- CONFIG: linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.11.____cpython
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.12.____cpython:
- CONFIG: linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.12.____cpython
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.13.____cp313:
- CONFIG: linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.13.____cp313
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.14.____cp314:
- CONFIG: linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.14.____cp314
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_aarch64_cufile_supportedFalseis_freethreadingtruepython3.14.____cp314t:
- CONFIG: linux_aarch64_cufile_supportedFalseis_freethreadingtruepython3.14.____cp314t
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.10.____cpython:
- CONFIG: linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.10.____cpython
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.11.____cpython:
- CONFIG: linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.11.____cpython
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.12.____cpython:
- CONFIG: linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.12.____cpython
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.13.____cp313:
- CONFIG: linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.13.____cp313
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.14.____cp314:
- CONFIG: linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.14.____cp314
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- linux_aarch64_cufile_supportedTrueis_freethreadingtruepython3.14.____cp314t:
- CONFIG: linux_aarch64_cufile_supportedTrueis_freethreadingtruepython3.14.____cp314t
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- 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
- - script: |
- SWAPFILE=/swapfile
- # If there is already a swapfile, disable it and remove it
- if swapon --show | grep -q $SWAPFILE; then
- echo "Disabling existing swapfile..."
- sudo swapoff $SWAPFILE || true
- fi
- [ -f "$SWAPFILE" ] && sudo rm -f $SWAPFILE
- sudo fallocate -l 10GiB $SWAPFILE
- sudo chmod 600 $SWAPFILE
- sudo mkswap $SWAPFILE
- sudo swapon $SWAPFILE
- displayName: Create swap file
- # 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)
diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml
index 324665f0..a4c29f2e 100755
--- a/.azure-pipelines/azure-pipelines-win.yml
+++ b/.azure-pipelines/azure-pipelines-win.yml
@@ -8,46 +8,84 @@ jobs:
vmImage: windows-2022
strategy:
matrix:
- win_64_is_freethreadingfalsepython3.10.____cpython:
- CONFIG: win_64_is_freethreadingfalsepython3.10.____cpython
+ win_64_python3.10.____cpython:
+ CONFIG: win_64_python3.10.____cpython
UPLOAD_PACKAGES: 'True'
- win_64_is_freethreadingfalsepython3.11.____cpython:
- CONFIG: win_64_is_freethreadingfalsepython3.11.____cpython
+ build_workspace_dir: D:\\bld\\
+ free_disk_space: quick
+ pagefile_size: 0
+ resize_partitions: false
+ store_build_artifacts: false
+ tools_install_dir: D:\Miniforge
+ win_64_python3.11.____cpython:
+ CONFIG: win_64_python3.11.____cpython
UPLOAD_PACKAGES: 'True'
- win_64_is_freethreadingfalsepython3.12.____cpython:
- CONFIG: win_64_is_freethreadingfalsepython3.12.____cpython
+ build_workspace_dir: D:\\bld\\
+ free_disk_space: quick
+ pagefile_size: 0
+ resize_partitions: false
+ store_build_artifacts: false
+ tools_install_dir: D:\Miniforge
+ win_64_python3.12.____cpython:
+ CONFIG: win_64_python3.12.____cpython
UPLOAD_PACKAGES: 'True'
- win_64_is_freethreadingfalsepython3.13.____cp313:
- CONFIG: win_64_is_freethreadingfalsepython3.13.____cp313
+ build_workspace_dir: D:\\bld\\
+ free_disk_space: quick
+ pagefile_size: 0
+ resize_partitions: false
+ store_build_artifacts: false
+ tools_install_dir: D:\Miniforge
+ win_64_python3.13.____cp313:
+ CONFIG: win_64_python3.13.____cp313
UPLOAD_PACKAGES: 'True'
- win_64_is_freethreadingfalsepython3.14.____cp314:
- CONFIG: win_64_is_freethreadingfalsepython3.14.____cp314
+ build_workspace_dir: D:\\bld\\
+ free_disk_space: quick
+ pagefile_size: 0
+ resize_partitions: false
+ store_build_artifacts: false
+ tools_install_dir: D:\Miniforge
+ win_64_python3.14.____cp314:
+ CONFIG: win_64_python3.14.____cp314
UPLOAD_PACKAGES: 'True'
- win_64_is_freethreadingtruepython3.14.____cp314t:
- CONFIG: win_64_is_freethreadingtruepython3.14.____cp314t
+ build_workspace_dir: D:\\bld\\
+ free_disk_space: quick
+ pagefile_size: 0
+ resize_partitions: false
+ store_build_artifacts: false
+ tools_install_dir: D:\Miniforge
+ win_64_python3.14.____cp314t:
+ CONFIG: win_64_python3.14.____cp314t
UPLOAD_PACKAGES: 'True'
+ build_workspace_dir: D:\\bld\\
+ free_disk_space: quick
+ pagefile_size: 0
+ resize_partitions: false
+ store_build_artifacts: false
+ tools_install_dir: D:\Miniforge
timeoutInMinutes: 360
variables:
- CONDA_BLD_PATH: D:\\bld\\
- MINIFORGE_HOME: D:\Miniforge
UPLOAD_TEMP: D:\\tmp
steps:
-
+ - bash: |
+ .scripts/free_disk_space.sh "$(free_disk_space)"
+ displayName: Manage disk space
+ env:
+ OS: windows
- 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
+ CONFIG: $(CONFIG)
+ CONDA_BLD_PATH: $(build_workspace_dir)
+ MINIFORGE_HOME: $(tools_install_dir)
+ PYTHONUNBUFFERED: 1
+ UPLOAD_PACKAGES: $(UPLOAD_PACKAGES)
+ UPLOAD_TEMP: $(UPLOAD_TEMP)
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)
diff --git a/.ci_support/linux_64_is_freethreadingfalsepython3.10.____cpython.yaml b/.ci_support/linux_64_python3.10.____cpython.yaml
similarity index 85%
rename from .ci_support/linux_64_is_freethreadingfalsepython3.10.____cpython.yaml
rename to .ci_support/linux_64_python3.10.____cpython.yaml
index 03d6002a..5735c1eb 100644
--- a/.ci_support/linux_64_is_freethreadingfalsepython3.10.____cpython.yaml
+++ b/.ci_support/linux_64_python3.10.____cpython.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- true
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_64_is_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/linux_64_python3.11.____cpython.yaml
similarity index 85%
rename from .ci_support/linux_64_is_freethreadingfalsepython3.11.____cpython.yaml
rename to .ci_support/linux_64_python3.11.____cpython.yaml
index 5e4582d2..1d3881a9 100644
--- a/.ci_support/linux_64_is_freethreadingfalsepython3.11.____cpython.yaml
+++ b/.ci_support/linux_64_python3.11.____cpython.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- true
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_64_is_freethreadingfalsepython3.12.____cpython.yaml b/.ci_support/linux_64_python3.12.____cpython.yaml
similarity index 85%
rename from .ci_support/linux_64_is_freethreadingfalsepython3.12.____cpython.yaml
rename to .ci_support/linux_64_python3.12.____cpython.yaml
index b34e762a..b52d4751 100644
--- a/.ci_support/linux_64_is_freethreadingfalsepython3.12.____cpython.yaml
+++ b/.ci_support/linux_64_python3.12.____cpython.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- true
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_64_is_freethreadingfalsepython3.13.____cp313.yaml b/.ci_support/linux_64_python3.13.____cp313.yaml
similarity index 85%
rename from .ci_support/linux_64_is_freethreadingfalsepython3.13.____cp313.yaml
rename to .ci_support/linux_64_python3.13.____cp313.yaml
index dcf83eba..0e68c605 100644
--- a/.ci_support/linux_64_is_freethreadingfalsepython3.13.____cp313.yaml
+++ b/.ci_support/linux_64_python3.13.____cp313.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- true
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_64_is_freethreadingfalsepython3.14.____cp314.yaml b/.ci_support/linux_64_python3.14.____cp314.yaml
similarity index 85%
rename from .ci_support/linux_64_is_freethreadingfalsepython3.14.____cp314.yaml
rename to .ci_support/linux_64_python3.14.____cp314.yaml
index e6987e12..eabc9035 100644
--- a/.ci_support/linux_64_is_freethreadingfalsepython3.14.____cp314.yaml
+++ b/.ci_support/linux_64_python3.14.____cp314.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- true
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_64_is_freethreadingtruepython3.14.____cp314t.yaml b/.ci_support/linux_64_python3.14.____cp314t.yaml
similarity index 87%
rename from .ci_support/linux_64_is_freethreadingtruepython3.14.____cp314t.yaml
rename to .ci_support/linux_64_python3.14.____cp314t.yaml
index 335276c8..c8554700 100644
--- a/.ci_support/linux_64_is_freethreadingtruepython3.14.____cp314t.yaml
+++ b/.ci_support/linux_64_python3.14.____cp314t.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- true
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- true
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.10.____cpython.yaml b/.ci_support/linux_aarch64_cufile_supportedfalsepython3.10.____cpython.yaml
similarity index 87%
rename from .ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.10.____cpython.yaml
rename to .ci_support/linux_aarch64_cufile_supportedfalsepython3.10.____cpython.yaml
index a0e3339c..28f5a94a 100644
--- a/.ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.10.____cpython.yaml
+++ b/.ci_support/linux_aarch64_cufile_supportedfalsepython3.10.____cpython.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- false
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/linux_aarch64_cufile_supportedfalsepython3.11.____cpython.yaml
similarity index 87%
rename from .ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.11.____cpython.yaml
rename to .ci_support/linux_aarch64_cufile_supportedfalsepython3.11.____cpython.yaml
index c1f1ba52..d2dec9b1 100644
--- a/.ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.11.____cpython.yaml
+++ b/.ci_support/linux_aarch64_cufile_supportedfalsepython3.11.____cpython.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- false
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.12.____cpython.yaml b/.ci_support/linux_aarch64_cufile_supportedfalsepython3.12.____cpython.yaml
similarity index 87%
rename from .ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.12.____cpython.yaml
rename to .ci_support/linux_aarch64_cufile_supportedfalsepython3.12.____cpython.yaml
index 6a88ea0f..cf1b3e95 100644
--- a/.ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.12.____cpython.yaml
+++ b/.ci_support/linux_aarch64_cufile_supportedfalsepython3.12.____cpython.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- false
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.13.____cp313.yaml b/.ci_support/linux_aarch64_cufile_supportedfalsepython3.13.____cp313.yaml
similarity index 87%
rename from .ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.13.____cp313.yaml
rename to .ci_support/linux_aarch64_cufile_supportedfalsepython3.13.____cp313.yaml
index 895accf4..d06f88be 100644
--- a/.ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.13.____cp313.yaml
+++ b/.ci_support/linux_aarch64_cufile_supportedfalsepython3.13.____cp313.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- false
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.14.____cp314.yaml b/.ci_support/linux_aarch64_cufile_supportedfalsepython3.14.____cp314.yaml
similarity index 87%
rename from .ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.14.____cp314.yaml
rename to .ci_support/linux_aarch64_cufile_supportedfalsepython3.14.____cp314.yaml
index 23bd022d..eaa4839e 100644
--- a/.ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.14.____cp314.yaml
+++ b/.ci_support/linux_aarch64_cufile_supportedfalsepython3.14.____cp314.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- false
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingtruepython3.14.____cp314t.yaml b/.ci_support/linux_aarch64_cufile_supportedfalsepython3.14.____cp314t.yaml
similarity index 85%
rename from .ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingtruepython3.14.____cp314t.yaml
rename to .ci_support/linux_aarch64_cufile_supportedfalsepython3.14.____cp314t.yaml
index 75cb959c..6b3684a4 100644
--- a/.ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingtruepython3.14.____cp314t.yaml
+++ b/.ci_support/linux_aarch64_cufile_supportedfalsepython3.14.____cp314t.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'False'
+- false
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- true
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.10.____cpython.yaml b/.ci_support/linux_aarch64_cufile_supportedtruepython3.10.____cpython.yaml
similarity index 85%
rename from .ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.10.____cpython.yaml
rename to .ci_support/linux_aarch64_cufile_supportedtruepython3.10.____cpython.yaml
index 5c3459d4..4c85ec8c 100644
--- a/.ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.10.____cpython.yaml
+++ b/.ci_support/linux_aarch64_cufile_supportedtruepython3.10.____cpython.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'False'
+- true
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/linux_aarch64_cufile_supportedtruepython3.11.____cpython.yaml
similarity index 85%
rename from .ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.11.____cpython.yaml
rename to .ci_support/linux_aarch64_cufile_supportedtruepython3.11.____cpython.yaml
index c79de687..5693c49a 100644
--- a/.ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.11.____cpython.yaml
+++ b/.ci_support/linux_aarch64_cufile_supportedtruepython3.11.____cpython.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'False'
+- true
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.12.____cpython.yaml b/.ci_support/linux_aarch64_cufile_supportedtruepython3.12.____cpython.yaml
similarity index 85%
rename from .ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.12.____cpython.yaml
rename to .ci_support/linux_aarch64_cufile_supportedtruepython3.12.____cpython.yaml
index bba161f2..44ef8afc 100644
--- a/.ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.12.____cpython.yaml
+++ b/.ci_support/linux_aarch64_cufile_supportedtruepython3.12.____cpython.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'False'
+- true
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.13.____cp313.yaml b/.ci_support/linux_aarch64_cufile_supportedtruepython3.13.____cp313.yaml
similarity index 85%
rename from .ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.13.____cp313.yaml
rename to .ci_support/linux_aarch64_cufile_supportedtruepython3.13.____cp313.yaml
index dee1c31b..9afb2385 100644
--- a/.ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.13.____cp313.yaml
+++ b/.ci_support/linux_aarch64_cufile_supportedtruepython3.13.____cp313.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'False'
+- true
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.14.____cp314.yaml b/.ci_support/linux_aarch64_cufile_supportedtruepython3.14.____cp314.yaml
similarity index 85%
rename from .ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.14.____cp314.yaml
rename to .ci_support/linux_aarch64_cufile_supportedtruepython3.14.____cp314.yaml
index 79d79b87..78fef3c9 100644
--- a/.ci_support/linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.14.____cp314.yaml
+++ b/.ci_support/linux_aarch64_cufile_supportedtruepython3.14.____cp314.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'False'
+- true
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingtruepython3.14.____cp314t.yaml b/.ci_support/linux_aarch64_cufile_supportedtruepython3.14.____cp314t.yaml
similarity index 87%
rename from .ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingtruepython3.14.____cp314t.yaml
rename to .ci_support/linux_aarch64_cufile_supportedtruepython3.14.____cp314t.yaml
index 4d224baf..b8fc2ac8 100644
--- a/.ci_support/linux_aarch64_cufile_supportedTrueis_freethreadingtruepython3.14.____cp314t.yaml
+++ b/.ci_support/linux_aarch64_cufile_supportedtruepython3.14.____cp314t.yaml
@@ -11,17 +11,13 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- true
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
-is_freethreading:
-- true
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -35,5 +31,3 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
-- - python
- - is_freethreading
diff --git a/.ci_support/win_64_is_freethreadingfalsepython3.10.____cpython.yaml b/.ci_support/win_64_python3.10.____cpython.yaml
similarity index 75%
rename from .ci_support/win_64_is_freethreadingfalsepython3.10.____cpython.yaml
rename to .ci_support/win_64_python3.10.____cpython.yaml
index 7310cf86..8e7c968f 100644
--- a/.ci_support/win_64_is_freethreadingfalsepython3.10.____cpython.yaml
+++ b/.ci_support/win_64_python3.10.____cpython.yaml
@@ -7,13 +7,9 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- true
cxx_compiler:
- vs2022
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -24,6 +20,3 @@ python_min:
- '3.10'
target_platform:
- win-64
-zip_keys:
-- - python
- - is_freethreading
diff --git a/.ci_support/win_64_is_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/win_64_python3.11.____cpython.yaml
similarity index 75%
rename from .ci_support/win_64_is_freethreadingfalsepython3.11.____cpython.yaml
rename to .ci_support/win_64_python3.11.____cpython.yaml
index dd317d16..89185c9b 100644
--- a/.ci_support/win_64_is_freethreadingfalsepython3.11.____cpython.yaml
+++ b/.ci_support/win_64_python3.11.____cpython.yaml
@@ -7,13 +7,9 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- true
cxx_compiler:
- vs2022
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -24,6 +20,3 @@ python_min:
- '3.10'
target_platform:
- win-64
-zip_keys:
-- - python
- - is_freethreading
diff --git a/.ci_support/win_64_is_freethreadingfalsepython3.12.____cpython.yaml b/.ci_support/win_64_python3.12.____cpython.yaml
similarity index 75%
rename from .ci_support/win_64_is_freethreadingfalsepython3.12.____cpython.yaml
rename to .ci_support/win_64_python3.12.____cpython.yaml
index 1e7b7111..6fd8561c 100644
--- a/.ci_support/win_64_is_freethreadingfalsepython3.12.____cpython.yaml
+++ b/.ci_support/win_64_python3.12.____cpython.yaml
@@ -7,13 +7,9 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- true
cxx_compiler:
- vs2022
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -24,6 +20,3 @@ python_min:
- '3.10'
target_platform:
- win-64
-zip_keys:
-- - python
- - is_freethreading
diff --git a/.ci_support/win_64_is_freethreadingfalsepython3.13.____cp313.yaml b/.ci_support/win_64_python3.13.____cp313.yaml
similarity index 75%
rename from .ci_support/win_64_is_freethreadingfalsepython3.13.____cp313.yaml
rename to .ci_support/win_64_python3.13.____cp313.yaml
index 09a4707e..c0894b17 100644
--- a/.ci_support/win_64_is_freethreadingfalsepython3.13.____cp313.yaml
+++ b/.ci_support/win_64_python3.13.____cp313.yaml
@@ -7,13 +7,9 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- true
cxx_compiler:
- vs2022
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -24,6 +20,3 @@ python_min:
- '3.10'
target_platform:
- win-64
-zip_keys:
-- - python
- - is_freethreading
diff --git a/.ci_support/win_64_is_freethreadingfalsepython3.14.____cp314.yaml b/.ci_support/win_64_python3.14.____cp314.yaml
similarity index 75%
rename from .ci_support/win_64_is_freethreadingfalsepython3.14.____cp314.yaml
rename to .ci_support/win_64_python3.14.____cp314.yaml
index f28f9e6d..c8b1b67e 100644
--- a/.ci_support/win_64_is_freethreadingfalsepython3.14.____cp314.yaml
+++ b/.ci_support/win_64_python3.14.____cp314.yaml
@@ -7,13 +7,9 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- true
cxx_compiler:
- vs2022
-is_freethreading:
-- false
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -24,6 +20,3 @@ python_min:
- '3.10'
target_platform:
- win-64
-zip_keys:
-- - python
- - is_freethreading
diff --git a/.ci_support/win_64_is_freethreadingtruepython3.14.____cp314t.yaml b/.ci_support/win_64_python3.14.____cp314t.yaml
similarity index 77%
rename from .ci_support/win_64_is_freethreadingtruepython3.14.____cp314t.yaml
rename to .ci_support/win_64_python3.14.____cp314t.yaml
index 0ac3003c..822bf92b 100644
--- a/.ci_support/win_64_is_freethreadingtruepython3.14.____cp314t.yaml
+++ b/.ci_support/win_64_python3.14.____cp314t.yaml
@@ -7,13 +7,9 @@ channel_sources:
channel_targets:
- conda-forge main
cufile_supported:
-- 'True'
+- true
cxx_compiler:
- vs2022
-is_freethreading:
-- true
-numpy:
-- '2'
pin_run_as_build:
python:
min_pin: x.x
@@ -24,6 +20,3 @@ python_min:
- '3.10'
target_platform:
- win-64
-zip_keys:
-- - python
- - is_freethreading
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index b9406591..ac836bb4 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1 +1 @@
-* @bdice @cpcloud @jakirkham @kkraus14 @leofang @m3vaz @mmccarty @oleksandr-pavlyk @vyasr @vzhurba01
\ No newline at end of file
+* @bdice @jakirkham @kkraus14 @leofang @m3vaz @mmccarty @oleksandr-pavlyk @vyasr @vzhurba01
\ No newline at end of file
diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml
new file mode 100644
index 00000000..342faf53
--- /dev/null
+++ b/.github/workflows/conda-build.yml
@@ -0,0 +1,335 @@
+# 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:
+ push:
+
+ pull_request:
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
+ cancel-in-progress: true
+
+jobs:
+ build:
+ name: ${{ matrix.CONFIG }}
+ runs-on: ${{ matrix.runs_on }}
+ timeout-minutes: 360
+ strategy:
+ fail-fast: false
+ max-parallel: 50
+ matrix:
+ include:
+ - CONFIG: linux_64_python3.10.____cpython
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_64_python3.11.____cpython
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_64_python3.12.____cpython
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_64_python3.13.____cp313
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_64_python3.14.____cp314
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_64_python3.14.____cp314t
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_aarch64_cufile_supportedfalsepython3.10.____cpython
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_aarch64_cufile_supportedfalsepython3.11.____cpython
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_aarch64_cufile_supportedfalsepython3.12.____cpython
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_aarch64_cufile_supportedfalsepython3.13.____cp313
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_aarch64_cufile_supportedfalsepython3.14.____cp314
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_aarch64_cufile_supportedfalsepython3.14.____cp314t
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_aarch64_cufile_supportedtruepython3.10.____cpython
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_aarch64_cufile_supportedtruepython3.11.____cpython
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_aarch64_cufile_supportedtruepython3.12.____cpython
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_aarch64_cufile_supportedtruepython3.13.____cp313
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_aarch64_cufile_supportedtruepython3.14.____cp314
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ - CONFIG: linux_aarch64_cufile_supportedtruepython3.14.____cp314t
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ build_workspace_dir: build_artifacts
+ docker_run_args:
+ free_disk_space: skip
+ os: ubuntu
+ pagefile_size: 0
+ resize_partitions: False
+ runs_on: ['ubuntu-latest']
+ tools_install_dir: ~/miniforge3
+ steps:
+
+ - name: Checkout code
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ - name: Configure binfmt_misc
+ if: matrix.os == 'ubuntu'
+ shell: bash
+ run: |
+ if [[ "$(uname -m)" == "x86_64" ]]; then
+ docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes
+ fi
+
+ - name: Build on Linux
+ id: build-linux
+ if: matrix.os == 'ubuntu'
+ env:
+ CI: github_actions
+ CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }}
+ CONDA_FORGE_DOCKER_RUN_ARGS: ${{ matrix.docker_run_args }}
+ CONFIG: ${{ matrix.CONFIG }}
+ MINIFORGE_HOME: ${{ matrix.tools_install_dir }}
+ DOCKER_IMAGE: ${{ matrix.DOCKER_IMAGE }}
+ UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }}
+ RATTLER_BUILD_COLOR: always
+ RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true'
+ BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }}
+ FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }}
+ STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }}
+ shell: bash
+ run: |
+ export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}"
+ export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)"
+ export GIT_BRANCH="$(basename $GITHUB_REF)"
+ export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}"
+ export flow_run_id="github_$GITHUB_RUN_ID"
+ export remote_url="https://github.com/$GITHUB_REPOSITORY"
+ export sha="$GITHUB_SHA"
+ if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
+ export IS_PR_BUILD="True"
+ else
+ export IS_PR_BUILD="False"
+ fi
+ ./.scripts/run_docker_build.sh
+
+ - name: Build on macOS
+ id: build-macos
+ if: matrix.os == 'macos'
+ env:
+ CI: github_actions
+ CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }}
+ CONFIG: ${{ matrix.CONFIG }}
+ MINIFORGE_HOME: ${{ matrix.tools_install_dir }}
+ UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }}
+ RATTLER_BUILD_COLOR: always
+ RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true'
+ BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }}
+ FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }}
+ STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }}
+ shell: bash
+ run: |
+ export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}"
+ export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)"
+ export GIT_BRANCH="$(basename $GITHUB_REF)"
+ export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}"
+ export flow_run_id="github_$GITHUB_RUN_ID"
+ export remote_url="https://github.com/$GITHUB_REPOSITORY"
+ export sha="$GITHUB_SHA"
+ 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:
+ CI: github_actions
+ CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }}
+ CONFIG: ${{ matrix.CONFIG }}
+ MINIFORGE_HOME: ${{ matrix.tools_install_dir }}
+ PYTHONUNBUFFERED: 1
+ UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }}
+ RATTLER_BUILD_COLOR: always
+ RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true'
+ BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }}
+ FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }}
+ STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }}
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 47b5408a..86a9c55b 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/build_steps.sh b/.scripts/build_steps.sh
index d7df163b..d3e3e6d5 100755
--- a/.scripts/build_steps.sh
+++ b/.scripts/build_steps.sh
@@ -32,11 +32,19 @@ pkgs_dirs:
solver: libmamba
CONDARC
-mv /opt/conda/conda-meta/history /opt/conda/conda-meta/history.$(date +%Y-%m-%d-%H-%M-%S)
-echo > /opt/conda/conda-meta/history
-micromamba install --root-prefix ~/.conda --prefix /opt/conda \
- --yes --override-channels --channel conda-forge --strict-channel-priority \
- pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1"
+pushd "${FEEDSTOCK_ROOT}"
+arch=$(uname -m)
+if [[ "$arch" == "x86_64" ]]; then
+ arch="64"
+fi
+sed -i.bak -e "s/platforms = .*/platforms = [\"linux-${arch}\"]/" -e "s/# __PLATFORM_SPECIFIC_ENV__ =/docker-build-linux-$arch =/" pixi.toml
+echo "Creating environment"
+PIXI_CACHE_DIR=/opt/conda pixi install --environment docker-build-linux-$arch
+pixi list
+echo "Activating environment"
+eval "$(pixi shell-hook --environment docker-build-linux-$arch)"
+mv pixi.toml.bak pixi.toml
+popd
export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1
# set up the condarc
@@ -58,20 +66,37 @@ if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then
fi
if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then
- if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then
- EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}"
- fi
- conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \
+ # differences between conda-build vs. rattler-build
+ # - 1 step (conda debug + manually open shell) vs. 2 step (rb debug {setup, shell})
+ # - recipe is positional vs. --recipe "${RECIPE_ROOT}"
+ # - --output-id vs. --output-name
+ # - --clobber-file vs. none
+ # - none vs. --target-platform
+ export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${FEEDSTOCK_ROOT}/build_artifacts}"
+ rattler-build debug setup \
+ --recipe "${RECIPE_ROOT}" \
+ -m "${CI_SUPPORT}/${CONFIG}.yaml" \
${EXTRA_CB_OPTIONS:-} \
- --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml"
+ ${BUILD_OUTPUT_ID:+--output-name "${BUILD_OUTPUT_ID}"} \
+ --target-platform "${HOST_PLATFORM}"
- # Drop into an interactive shell
- /bin/bash
+ rattler-build debug shell
else
- conda-build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \
- --suppress-variables ${EXTRA_CB_OPTIONS:-} \
- --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \
- --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}"
+ # differences between conda-build vs. rattler-build
+ # - recipe is positional vs. --recipe "${RECIPE_ROOT}"
+ # - --suppress-variables vs. none
+ # - --clobber-file vs. none
+ # - none vs. --target-platform
+ # - --extra-meta a=b c=d vs. --extra-meta a=b --extra-meta c=d
+
+ rattler-build build \
+ --recipe "${RECIPE_ROOT}" \
+ -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
diff --git a/.scripts/free_disk_space.sh b/.scripts/free_disk_space.sh
new file mode 100755
index 00000000..5c716a94
--- /dev/null
+++ b/.scripts/free_disk_space.sh
@@ -0,0 +1,62 @@
+#!/usr/bin/env bash
+
+set -ex
+
+FREE_DISK_SPACE=${1}
+
+if [[ ${FREE_DISK_SPACE} == skip ]]; then
+ exit 0
+fi
+
+df -h
+
+case ${OS} in
+ ubuntu)
+ DIRS_TO_REMOVE=(
+ /opt/ghc
+ /opt/hostedtoolcache
+ /usr/lib/jvm
+ /usr/local/.ghcup
+ /usr/local/lib/android
+ /usr/local/share/powershell
+ /usr/share/dotnet
+ /usr/share/swift
+ )
+
+ sudo rm -rf "${DIRS_TO_REMOVE[@]}"
+
+ if type apt-get; then
+ BROWSERS="firefox google-chrome-stable microsoft-edge-stable"
+ BROWSERS_TO_REMOVE=$(dpkg --get-selections $BROWSERS 2>/dev/null | awk '{print $1}')
+ if [[ -n ${BROWSERS_TO_REMOVE} ]]; then
+ sudo apt-get remove --purge -y $BROWSERS_TO_REMOVE
+ fi
+
+ sudo apt-get autoremove -y >& /dev/null
+ sudo apt-get autoclean -y >& /dev/null
+ fi
+
+ if [[ ${FREE_DISK_SPACE} == max ]] && type docker; then
+ sudo docker image prune --all --force
+ fi
+ ;;
+ macos)
+ DIRS_TO_REMOVE=(
+ /Users/runner/Library/Android
+ /Users/runner/.dotnet
+ /Users/runner/hostedtoolcache
+ )
+ rm -rf "${DIRS_TO_REMOVE[@]}"
+ ;;
+ windows)
+ DIRS_TO_REMOVE=(
+ C:/hostedtoolcache/windows
+ C:/Android
+ )
+
+ # rm is one of the fastest methods to remove files on Windows
+ rm -rf "${DIRS_TO_REMOVE[@]}"
+ ;;
+esac
+
+df -h
diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh
index b63b5a05..17d983f1 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,27 +79,56 @@ 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
+
+# When running on GitHub Actions, mount the step summary file into the container
+# and point GITHUB_STEP_SUMMARY at it so that rattler-build's GitHub integration
+# can write its summary. GitHub writes the file out to the job summary after the
+# step finishes.
+if [[ -n "${GITHUB_STEP_SUMMARY:-}" ]]; then
+ DOCKER_RUN_ARGS="${DOCKER_RUN_ARGS} -v ${GITHUB_STEP_SUMMARY}:/home/conda/github_step_summary:rw${VOLUME_SUFFIX},delegated -e GITHUB_STEP_SUMMARY=/home/conda/github_step_summary"
+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 BUILD_OUTPUT_ID \
+ -e BUILD_WITH_CONDA_DEBUG \
+ -e CI \
-e CONFIG \
+ -e CPU_COUNT \
+ -e FEEDSTOCK_NAME \
+ -e GIT_BRANCH \
+ -e GITHUB_ACTIONS \
-e HOST_USER_ID \
- -e UPLOAD_PACKAGES \
-e IS_PR_BUILD \
- -e GIT_BRANCH \
+ -e RATTLER_BUILD_COLOR \
+ -e RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION \
-e UPLOAD_ON_BRANCH \
- -e CI \
- -e FEEDSTOCK_NAME \
- -e CPU_COUNT \
- -e BUILD_WITH_CONDA_DEBUG \
- -e BUILD_OUTPUT_ID \
+ -e UPLOAD_PACKAGES \
-e flow_run_id \
-e remote_url \
-e sha \
diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat
index 2b9fd756..90effaac 100755
--- a/.scripts/run_win_build.bat
+++ b/.scripts/run_win_build.bat
@@ -13,36 +13,49 @@
setlocal enableextensions enabledelayedexpansion
FOR %%A IN ("%~dp0.") DO SET "REPO_ROOT=%%~dpA"
-if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3"
+if "%MINIFORGE_HOME%"=="" (
+ set "MINIFORGE_HOME=%REPO_ROOT%\.pixi\envs\default"
+) else (
+ set "PIXI_CACHE_DIR=%MINIFORGE_HOME%"
+)
:: 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%')"
+call :start_group "Provisioning base env with pixi"
+echo Installing pixi
+powershell -NoProfile -ExecutionPolicy unrestricted -Command "iwr -useb https://pixi.sh/install.ps1 | iex"
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 python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1"
+set "PATH=%USERPROFILE%\.pixi\bin;%PATH%"
+echo Installing environment
+if "%PIXI_CACHE_DIR%"=="%MINIFORGE_HOME%" (
+ mkdir "%MINIFORGE_HOME%"
+ copy /Y pixi.toml "%MINIFORGE_HOME%"
+ pushd "%MINIFORGE_HOME%"
+) else (
+ pushd "%REPO_ROOT%"
+)
+move /y pixi.toml pixi.toml.bak
+set "arch=64"
+if "%PROCESSOR_ARCHITECTURE%"=="ARM64" set "arch=arm64"
+powershell -NoProfile -ExecutionPolicy unrestricted -Command "(Get-Content pixi.toml.bak -Encoding UTF8) -replace 'platforms = .*', 'platforms = [''win-%arch%'']' | Out-File pixi.toml -Encoding UTF8"
+:: Git on Windows needs to run post link scripts to properly set up SSL certificates
+pixi config set --global run-post-link-scripts insecure
+if !errorlevel! neq 0 exit /b !errorlevel!
+pixi install
+if !errorlevel! neq 0 exit /b !errorlevel!
+pixi list
+if !errorlevel! neq 0 exit /b !errorlevel!
+set "ACTIVATE_PIXI=%TMP%\pixi-activate-%RANDOM%.bat"
+pixi shell-hook > "%ACTIVATE_PIXI%"
+if !errorlevel! neq 0 exit /b !errorlevel!
+call "%ACTIVATE_PIXI%"
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
+move /y pixi.toml.bak pixi.toml
+popd
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!
@@ -64,14 +77,14 @@ if EXIST LICENSE.txt (
)
if NOT [%flow_run_id%] == [] (
- set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%"
+ 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
-conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS%
+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"
diff --git a/README.md b/README.md
index f10330be..c4bf1e1f 100644
--- a/README.md
+++ b/README.md
@@ -7,25 +7,9 @@ Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/cuda-python-fee
About cuda-python
-----------------
-Home: https://nvidia.github.io/cuda-python/
-
-Package license: [LicenseRef-NVIDIA-SOFTWARE-LICENSE](https://github.com/NVIDIA/cuda-python/blob/main/LICENSE)
-
-Summary: CUDA Python
-
-Development: https://github.com/NVIDIA/cuda-python
-
-Documentation: https://nvidia.github.io/cuda-python/
-
-CUDA Python is the home for accessing NVIDIA's CUDA platform from Python.
-
-
-About cuda-bindings
--------------------
-
Home: https://nvidia.github.io/cuda-python/cuda-bindings
-Package license: [LicenseRef-NVIDIA-SOFTWARE-LICENSE](https://github.com/NVIDIA/cuda-python/blob/main/LICENSE)
+Package license: LicenseRef-NVIDIA-SOFTWARE-LICENSE
Summary: CUDA Python Low-level Bindings
@@ -36,13 +20,12 @@ Documentation: https://nvidia.github.io/cuda-python/cuda-bindings
CUDA Python provides a standard set of low-level interfaces,
providing full coverage of and access to the CUDA host APIs from Python.
-
About cuda-python
-----------------
Home: https://nvidia.github.io/cuda-python/
-Package license: [LicenseRef-NVIDIA-SOFTWARE-LICENSE](https://github.com/NVIDIA/cuda-python/blob/main/LICENSE)
+Package license: LicenseRef-NVIDIA-SOFTWARE-LICENSE
Summary: CUDA Python
@@ -52,12 +35,18 @@ Documentation: https://nvidia.github.io/cuda-python/
CUDA Python is the home for accessing NVIDIA’s CUDA platform from Python.
-
Current build status
====================
-
+
+ | GitHub Actions |
+
+
+
+
+ |
+
| Azure |
@@ -71,171 +60,129 @@ Current build status
| Variant | Status |
- | linux_64_is_freethreadingfalsepython3.10.____cpython |
-
-
-
-
- |
-
- | linux_64_is_freethreadingfalsepython3.11.____cpython |
-
-
-
-
- |
-
- | linux_64_is_freethreadingfalsepython3.12.____cpython |
-
-
-
-
- |
-
- | linux_64_is_freethreadingfalsepython3.13.____cp313 |
-
-
-
-
- |
-
- | linux_64_is_freethreadingfalsepython3.14.____cp314 |
-
-
-
-
- |
-
- | linux_64_is_freethreadingtruepython3.14.____cp314t |
-
-
-
-
- |
-
- | linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.10.____cpython |
+ linux_aarch64_cufile_supportedfalsepython3.10.____cpython |
-
+
|
- | linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.11.____cpython |
+ linux_aarch64_cufile_supportedfalsepython3.11.____cpython |
-
+
|
- | linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.12.____cpython |
+ linux_aarch64_cufile_supportedfalsepython3.12.____cpython |
-
+
|
- | linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.13.____cp313 |
+ linux_aarch64_cufile_supportedfalsepython3.13.____cp313 |
-
+
|
- | linux_aarch64_cufile_supportedFalseis_freethreadingfalsepython3.14.____cp314 |
+ linux_aarch64_cufile_supportedfalsepython3.14.____cp314 |
-
+
|
- | linux_aarch64_cufile_supportedFalseis_freethreadingtruepython3.14.____cp314t |
+ linux_aarch64_cufile_supportedfalsepython3.14.____cp314t |
-
+
|
- | linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.10.____cpython |
+ linux_aarch64_cufile_supportedtruepython3.10.____cpython |
-
+
|
- | linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.11.____cpython |
+ linux_aarch64_cufile_supportedtruepython3.11.____cpython |
-
+
|
- | linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.12.____cpython |
+ linux_aarch64_cufile_supportedtruepython3.12.____cpython |
-
+
|
- | linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.13.____cp313 |
+ linux_aarch64_cufile_supportedtruepython3.13.____cp313 |
-
+
|
- | linux_aarch64_cufile_supportedTrueis_freethreadingfalsepython3.14.____cp314 |
+ linux_aarch64_cufile_supportedtruepython3.14.____cp314 |
-
+
|
- | linux_aarch64_cufile_supportedTrueis_freethreadingtruepython3.14.____cp314t |
+ linux_aarch64_cufile_supportedtruepython3.14.____cp314t |
-
+
|
- | win_64_is_freethreadingfalsepython3.10.____cpython |
+ win_64_python3.10.____cpython |
-
+
|
- | win_64_is_freethreadingfalsepython3.11.____cpython |
+ win_64_python3.11.____cpython |
-
+
|
- | win_64_is_freethreadingfalsepython3.12.____cpython |
+ win_64_python3.12.____cpython |
-
+
|
- | win_64_is_freethreadingfalsepython3.13.____cp313 |
+ win_64_python3.13.____cp313 |
-
+
|
- | win_64_is_freethreadingfalsepython3.14.____cp314 |
+ win_64_python3.14.____cp314 |
-
+
|
- | win_64_is_freethreadingtruepython3.14.____cp314t |
+ win_64_python3.14.____cp314t |
-
+
|
@@ -369,7 +316,6 @@ Feedstock Maintainers
=====================
* [@bdice](https://github.com/bdice/)
-* [@cpcloud](https://github.com/cpcloud/)
* [@jakirkham](https://github.com/jakirkham/)
* [@kkraus14](https://github.com/kkraus14/)
* [@leofang](https://github.com/leofang/)
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 04a0c254..b4a7ba15 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -28,5 +28,4 @@ stages:
condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true'))
dependsOn: Check
jobs:
- - template: ./.azure-pipelines/azure-pipelines-linux.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 05493e4d..3beb68cc 100755
--- a/build-locally.py
+++ b/build-locally.py
@@ -98,7 +98,10 @@ def main(args=None):
p.add_argument(
"--debug",
action="store_true",
- help="Setup debug environment using `conda debug`",
+ help=(
+ "Setup debug environment using `conda debug` "
+ "(or `rattler-build debug` for rattler-build recipes)"
+ ),
)
p.add_argument("--output-id", help="If running debug, specify the output to setup.")
diff --git a/conda-forge.yml b/conda-forge.yml
index b0d3e621..6e2b9a8d 100644
--- a/conda-forge.yml
+++ b/conda-forge.yml
@@ -10,7 +10,9 @@ build_platform:
linux_ppc64le: linux_64
conda_build:
pkg_format: '2'
+conda_build_tool: rattler-build
conda_forge_output_validation: true
+conda_install_tool: pixi
github:
branch_name: main
tooling_branch_name: main
diff --git a/pixi.toml b/pixi.toml
new file mode 100644
index 00000000..2c79793e
--- /dev/null
+++ b/pixi.toml
@@ -0,0 +1,190 @@
+# -*- mode: toml -*-
+# This file was generated automatically from conda-smithy. To update this configuration,
+# update the conda-forge.yml and/or the recipe/meta.yaml.
+"$schema" = "https://pixi.sh/v0.59.0/schema/manifest/schema.json"
+
+[workspace]
+name = "cuda-python-feedstock"
+version = "2026.6.14" # conda-smithy version used to generate this file
+description = "Pixi configuration for conda-forge/cuda-python-feedstock"
+authors = ["@conda-forge/cuda-python"]
+channels = ["conda-forge"]
+platforms = ["linux-64", "linux-aarch64", "linux-ppc64le", "osx-64", "win-64"]
+requires-pixi = ">=0.59.0"
+
+[dependencies]
+conda-build = ">=26.3"
+conda-forge-ci-setup = "4.*"
+rattler-build = "*"
+
+[tasks.inspect-all]
+cmd = "inspect_artifacts --all-packages"
+description = "List contents of all packages found in rattler-build build directory."
+[tasks.build]
+cmd = "rattler-build build --recipe recipe"
+description = "Build cuda-python-feedstock directly (without setup scripts), no particular variant specified"
+[tasks."build-linux_64_python3.10.____cpython"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_python3.10.____cpython.yaml"
+description = "Build cuda-python-feedstock with variant linux_64_python3.10.____cpython directly (without setup scripts)"
+[tasks."inspect-linux_64_python3.10.____cpython"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_python3.10.____cpython.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_64_python3.10.____cpython"
+[tasks."build-linux_64_python3.11.____cpython"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_python3.11.____cpython.yaml"
+description = "Build cuda-python-feedstock with variant linux_64_python3.11.____cpython directly (without setup scripts)"
+[tasks."inspect-linux_64_python3.11.____cpython"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_python3.11.____cpython.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_64_python3.11.____cpython"
+[tasks."build-linux_64_python3.12.____cpython"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_python3.12.____cpython.yaml"
+description = "Build cuda-python-feedstock with variant linux_64_python3.12.____cpython directly (without setup scripts)"
+[tasks."inspect-linux_64_python3.12.____cpython"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_python3.12.____cpython.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_64_python3.12.____cpython"
+[tasks."build-linux_64_python3.13.____cp313"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_python3.13.____cp313.yaml"
+description = "Build cuda-python-feedstock with variant linux_64_python3.13.____cp313 directly (without setup scripts)"
+[tasks."inspect-linux_64_python3.13.____cp313"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_python3.13.____cp313.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_64_python3.13.____cp313"
+[tasks."build-linux_64_python3.14.____cp314"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_python3.14.____cp314.yaml"
+description = "Build cuda-python-feedstock with variant linux_64_python3.14.____cp314 directly (without setup scripts)"
+[tasks."inspect-linux_64_python3.14.____cp314"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_python3.14.____cp314.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_64_python3.14.____cp314"
+[tasks."build-linux_64_python3.14.____cp314t"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_python3.14.____cp314t.yaml"
+description = "Build cuda-python-feedstock with variant linux_64_python3.14.____cp314t directly (without setup scripts)"
+[tasks."inspect-linux_64_python3.14.____cp314t"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_python3.14.____cp314t.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_64_python3.14.____cp314t"
+[tasks."build-linux_aarch64_cufile_supportedfalsepython3.10.____cpython"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_cufile_supportedfalsepython3.10.____cpython.yaml"
+description = "Build cuda-python-feedstock with variant linux_aarch64_cufile_supportedfalsepython3.10.____cpython directly (without setup scripts)"
+[tasks."inspect-linux_aarch64_cufile_supportedfalsepython3.10.____cpython"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_cufile_supportedfalsepython3.10.____cpython.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_cufile_supportedfalsepython3.10.____cpython"
+[tasks."build-linux_aarch64_cufile_supportedfalsepython3.11.____cpython"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_cufile_supportedfalsepython3.11.____cpython.yaml"
+description = "Build cuda-python-feedstock with variant linux_aarch64_cufile_supportedfalsepython3.11.____cpython directly (without setup scripts)"
+[tasks."inspect-linux_aarch64_cufile_supportedfalsepython3.11.____cpython"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_cufile_supportedfalsepython3.11.____cpython.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_cufile_supportedfalsepython3.11.____cpython"
+[tasks."build-linux_aarch64_cufile_supportedfalsepython3.12.____cpython"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_cufile_supportedfalsepython3.12.____cpython.yaml"
+description = "Build cuda-python-feedstock with variant linux_aarch64_cufile_supportedfalsepython3.12.____cpython directly (without setup scripts)"
+[tasks."inspect-linux_aarch64_cufile_supportedfalsepython3.12.____cpython"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_cufile_supportedfalsepython3.12.____cpython.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_cufile_supportedfalsepython3.12.____cpython"
+[tasks."build-linux_aarch64_cufile_supportedfalsepython3.13.____cp313"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_cufile_supportedfalsepython3.13.____cp313.yaml"
+description = "Build cuda-python-feedstock with variant linux_aarch64_cufile_supportedfalsepython3.13.____cp313 directly (without setup scripts)"
+[tasks."inspect-linux_aarch64_cufile_supportedfalsepython3.13.____cp313"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_cufile_supportedfalsepython3.13.____cp313.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_cufile_supportedfalsepython3.13.____cp313"
+[tasks."build-linux_aarch64_cufile_supportedfalsepython3.14.____cp314"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_cufile_supportedfalsepython3.14.____cp314.yaml"
+description = "Build cuda-python-feedstock with variant linux_aarch64_cufile_supportedfalsepython3.14.____cp314 directly (without setup scripts)"
+[tasks."inspect-linux_aarch64_cufile_supportedfalsepython3.14.____cp314"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_cufile_supportedfalsepython3.14.____cp314.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_cufile_supportedfalsepython3.14.____cp314"
+[tasks."build-linux_aarch64_cufile_supportedfalsepython3.14.____cp314t"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_cufile_supportedfalsepython3.14.____cp314t.yaml"
+description = "Build cuda-python-feedstock with variant linux_aarch64_cufile_supportedfalsepython3.14.____cp314t directly (without setup scripts)"
+[tasks."inspect-linux_aarch64_cufile_supportedfalsepython3.14.____cp314t"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_cufile_supportedfalsepython3.14.____cp314t.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_cufile_supportedfalsepython3.14.____cp314t"
+[tasks."build-linux_aarch64_cufile_supportedtruepython3.10.____cpython"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_cufile_supportedtruepython3.10.____cpython.yaml"
+description = "Build cuda-python-feedstock with variant linux_aarch64_cufile_supportedtruepython3.10.____cpython directly (without setup scripts)"
+[tasks."inspect-linux_aarch64_cufile_supportedtruepython3.10.____cpython"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_cufile_supportedtruepython3.10.____cpython.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_cufile_supportedtruepython3.10.____cpython"
+[tasks."build-linux_aarch64_cufile_supportedtruepython3.11.____cpython"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_cufile_supportedtruepython3.11.____cpython.yaml"
+description = "Build cuda-python-feedstock with variant linux_aarch64_cufile_supportedtruepython3.11.____cpython directly (without setup scripts)"
+[tasks."inspect-linux_aarch64_cufile_supportedtruepython3.11.____cpython"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_cufile_supportedtruepython3.11.____cpython.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_cufile_supportedtruepython3.11.____cpython"
+[tasks."build-linux_aarch64_cufile_supportedtruepython3.12.____cpython"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_cufile_supportedtruepython3.12.____cpython.yaml"
+description = "Build cuda-python-feedstock with variant linux_aarch64_cufile_supportedtruepython3.12.____cpython directly (without setup scripts)"
+[tasks."inspect-linux_aarch64_cufile_supportedtruepython3.12.____cpython"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_cufile_supportedtruepython3.12.____cpython.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_cufile_supportedtruepython3.12.____cpython"
+[tasks."build-linux_aarch64_cufile_supportedtruepython3.13.____cp313"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_cufile_supportedtruepython3.13.____cp313.yaml"
+description = "Build cuda-python-feedstock with variant linux_aarch64_cufile_supportedtruepython3.13.____cp313 directly (without setup scripts)"
+[tasks."inspect-linux_aarch64_cufile_supportedtruepython3.13.____cp313"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_cufile_supportedtruepython3.13.____cp313.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_cufile_supportedtruepython3.13.____cp313"
+[tasks."build-linux_aarch64_cufile_supportedtruepython3.14.____cp314"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_cufile_supportedtruepython3.14.____cp314.yaml"
+description = "Build cuda-python-feedstock with variant linux_aarch64_cufile_supportedtruepython3.14.____cp314 directly (without setup scripts)"
+[tasks."inspect-linux_aarch64_cufile_supportedtruepython3.14.____cp314"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_cufile_supportedtruepython3.14.____cp314.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_cufile_supportedtruepython3.14.____cp314"
+[tasks."build-linux_aarch64_cufile_supportedtruepython3.14.____cp314t"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_cufile_supportedtruepython3.14.____cp314t.yaml"
+description = "Build cuda-python-feedstock with variant linux_aarch64_cufile_supportedtruepython3.14.____cp314t directly (without setup scripts)"
+[tasks."inspect-linux_aarch64_cufile_supportedtruepython3.14.____cp314t"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_cufile_supportedtruepython3.14.____cp314t.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_cufile_supportedtruepython3.14.____cp314t"
+[tasks."build-win_64_python3.10.____cpython"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/win_64_python3.10.____cpython.yaml"
+description = "Build cuda-python-feedstock with variant win_64_python3.10.____cpython directly (without setup scripts)"
+[tasks."inspect-win_64_python3.10.____cpython"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/win_64_python3.10.____cpython.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant win_64_python3.10.____cpython"
+[tasks."build-win_64_python3.11.____cpython"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/win_64_python3.11.____cpython.yaml"
+description = "Build cuda-python-feedstock with variant win_64_python3.11.____cpython directly (without setup scripts)"
+[tasks."inspect-win_64_python3.11.____cpython"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/win_64_python3.11.____cpython.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant win_64_python3.11.____cpython"
+[tasks."build-win_64_python3.12.____cpython"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/win_64_python3.12.____cpython.yaml"
+description = "Build cuda-python-feedstock with variant win_64_python3.12.____cpython directly (without setup scripts)"
+[tasks."inspect-win_64_python3.12.____cpython"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/win_64_python3.12.____cpython.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant win_64_python3.12.____cpython"
+[tasks."build-win_64_python3.13.____cp313"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/win_64_python3.13.____cp313.yaml"
+description = "Build cuda-python-feedstock with variant win_64_python3.13.____cp313 directly (without setup scripts)"
+[tasks."inspect-win_64_python3.13.____cp313"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/win_64_python3.13.____cp313.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant win_64_python3.13.____cp313"
+[tasks."build-win_64_python3.14.____cp314"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/win_64_python3.14.____cp314.yaml"
+description = "Build cuda-python-feedstock with variant win_64_python3.14.____cp314 directly (without setup scripts)"
+[tasks."inspect-win_64_python3.14.____cp314"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/win_64_python3.14.____cp314.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant win_64_python3.14.____cp314"
+[tasks."build-win_64_python3.14.____cp314t"]
+cmd = "rattler-build build --recipe recipe -m .ci_support/win_64_python3.14.____cp314t.yaml"
+description = "Build cuda-python-feedstock with variant win_64_python3.14.____cp314t directly (without setup scripts)"
+[tasks."inspect-win_64_python3.14.____cp314t"]
+cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/win_64_python3.14.____cp314t.yaml"
+description = "List contents of cuda-python-feedstock packages built for variant win_64_python3.14.____cp314t"
+
+[feature.smithy.dependencies]
+conda-smithy = "*"
+[feature.smithy.tasks.build-locally]
+cmd = "python ./build-locally.py"
+description = "Build packages locally using the same setup scripts used in conda-forge's CI"
+[feature.smithy.tasks.smithy]
+cmd = "conda-smithy"
+description = "Run conda-smithy. Pass necessary arguments."
+[feature.smithy.tasks.rerender]
+cmd = "conda-smithy rerender"
+description = "Rerender the feedstock."
+[feature.smithy.tasks.lint]
+cmd = "conda-smithy lint --conda-forge recipe"
+description = "Lint the feedstock recipe"
+
+[environments]
+smithy = ["smithy"]
+
+# This is a copy of default, to be enabled by build_steps.sh during Docker builds
+# __PLATFORM_SPECIFIC_ENV__ = []
diff --git a/recipe/build_output.bat b/recipe/build_output.bat
index 49d2a4ef..97397c39 100644
--- a/recipe/build_output.bat
+++ b/recipe/build_output.bat
@@ -1,10 +1,8 @@
+set "CUDA_HOME=%PREFIX%\\%SUBDIR%"
+set "LIB=%PREFIX%\\%SUBDIR%\\lib\\%TARGET_NAME%;%LIB%"
+
set DIR_NAME=%PKG_NAME:-=_%
cd %DIR_NAME%
-if "%DIR_NAME%"=="cuda_python" (
- rem The upstream setup.py calls get_version() without dist_name,
- rem so only the generic SETUPTOOLS_SCM_PRETEND_VERSION is honored.
- set SETUPTOOLS_SCM_PRETEND_VERSION=%PKG_VERSION%
-)
if "%DIR_NAME%"=="cuda_bindings" (
rem The upstream setup.py calls get_version() without dist_name,
rem so only the generic SETUPTOOLS_SCM_PRETEND_VERSION is honored.
diff --git a/recipe/build_output.sh b/recipe/build_output.sh
index 0cd9a9c8..05bfef88 100644
--- a/recipe/build_output.sh
+++ b/recipe/build_output.sh
@@ -1,5 +1,7 @@
#!/bin/bash
+export CUDA_HOME="${PREFIX}/${SUBDIR}"
+
DIR_NAME="$(echo $PKG_NAME | tr '-' '_')"
cd $DIR_NAME
if [[ ${DIR_NAME} == "cuda_python" || ${DIR_NAME} == "cuda_bindings" ]]; then
diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml
index 77a62a1d..417dd6e8 100644
--- a/recipe/conda_build_config.yaml
+++ b/recipe/conda_build_config.yaml
@@ -1,5 +1,5 @@
# libcufile only exists on ARM for CUDA 12.2+. We split into two ARM packages
# with/without libcufile support.
cufile_supported:
- - True
- - False # [aarch64]
+ - true
+ - false # [aarch64]
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
deleted file mode 100644
index e40ccedf..00000000
--- a/recipe/meta.yaml
+++ /dev/null
@@ -1,217 +0,0 @@
-{% set number = 0 %}
-{% set version = "12.9.7" %}
-{% set sha256 = "9df6ff7121e11b158730ef39350c111728c9d1a2450124f463f7f4026c89d42f" %}
-
-{% set is_freethreading = environ.get("is_freethreading", False) %}
-{% set bindings_major_version = version.split(".")[0]|int %}
-{% set bindings_minor_version = version.split(".")[1]|int %}
-{% set bindings_patch_version = version.split(".")[2]|int %}
-{% set target_name = "x86_64-linux" %} # [linux64]
-{% set target_name = "sbsa-linux" %} # [aarch64]
-{% set target_name = "x64" %} # [win64]
-{% set subdir = "" %}
-{% set subdir = os.sep.join(["", "targets", target_name]) %} # [linux64 or aarch64]
-{% set subdir = os.sep.join(["", "Library"]) %} # [win64]
-
-package:
- name: cuda-python-split
- version: 1
-
-source:
- url: https://github.com/NVIDIA/cuda-python/releases/download/v{{ version }}/cuda-python-v{{ version }}.tar.gz
- sha256: {{ sha256 }}
-
-build:
- number: 0
- skip: true # [py < 39 or ppc64le or osx]
-
-# Have certain top-level requirements so conda-smithy can render the correct variants
-requirements:
- build:
- - {{ compiler('c') }}
- - {{ compiler('cxx') }}
- - {{ stdlib('c') }}
- host:
- - python
-
-outputs:
-
- - name: cuda-python
- version: {{ version }}
- script: build_output.sh # [linux]
- script: build_output.bat # [win]
- build:
- noarch: python
- number: {{ number }}
- skip: true # [not linux64]
- requirements:
- host:
- - python {{ python_min }}.*
- - pip
- - setuptools
- - setuptools-scm >=8
- run:
- - python >={{ python_min }}
- - {{ pin_subpackage('cuda-bindings', max_pin='x.x') }}
- - cuda-version >=12.0,<13.0a0 # [not aarch64]
- - cuda-version >=12.0,<12.2a0 # [aarch64 and not cufile_supported]
- - cuda-version >=12.2,<13.0a0 # [aarch64 and cufile_supported]
- test:
- requires:
- - python >={{ python_min }}
- - numpy
- imports:
- - cuda.bindings
- - cuda.bindings.driver
- - cuda.bindings.runtime
- - cuda.bindings.cufile # [linux]
- - cuda.bindings.nvrtc
- - cuda.bindings.nvjitlink
- - cuda.bindings.nvvm
- - cuda.bindings.nvml
- - cuda.bindings.nvfatbin
- commands:
- - python -c "import importlib.metadata; importlib.metadata.version('cuda-python')"
- about:
- home: https://nvidia.github.io/cuda-python/
- license: LicenseRef-NVIDIA-SOFTWARE-LICENSE
- license_file: cuda_python/LICENSE
- license_url: https://github.com/NVIDIA/cuda-python/blob/main/LICENSE
- summary: CUDA Python
- description: |
- CUDA Python is the home for accessing NVIDIA’s CUDA platform from Python.
- doc_url: https://nvidia.github.io/cuda-python/
- dev_url: https://github.com/NVIDIA/cuda-python
-
- - name: cuda-bindings
- version: {{ version }}
- script: build_output.sh # [linux]
- script: build_output.bat # [win]
- build:
- number: {{ number }}
- script_env:
- # Ensure that CUDA includes can be found by the host compiler
- - CUDA_HOME={{ PREFIX ~ subdir }}
- ignore_run_exports_from:
- # The run-exports from these dev packages are too tight, so we ignore them.
- # The cuda-python package supports CUDA Enhanced Compatibility through its
- # use of dlopen, so it is compatible with other CUDA minor versions.
- - cuda-nvcc-impl
- - cuda-cudart-dev
- - cuda-cudart-static
- - cuda-nvrtc-dev
- - libcufile-dev # [linux]
- requirements:
- build:
- - {{ compiler('c') }}
- - {{ compiler('cxx') }}
- - {{ stdlib('c') }}
- - cross-python_{{ target_platform }} # [build_platform != target_platform]
- - python # [build_platform != target_platform]
- - cython # [build_platform != target_platform]
- host:
- # cuda.bindings needs to be built with the matching major.minor headers
- - cuda-version {{ bindings_major_version }}.{{ bindings_minor_version }}
- - cuda-crt-dev_{{ target_platform }}
- - cuda-cudart-dev
- - cuda-cudart-static
- - cuda-cudart
- - cuda-nvcc-impl
- - cuda-nvrtc
- - cuda-nvrtc-dev
- - cuda-profiler-api
- - libcufile # [linux and cufile_supported]
- - libcufile-dev # [linux]
- - cython
- - pip
- - pyclibrary
- - python
- - setuptools
- - setuptools-scm >=8
- run:
- - python
- - cuda-pathfinder >=1.5.5,<2
- - {{ pin_compatible('cuda-version', min_pin='x', max_pin='x') }} # [not aarch64]
- - cuda-version >=12.0,<12.2a0 # [aarch64 and not cufile_supported]
- - cuda-version >=12.2,<13.0a0 # [aarch64 and cufile_supported]
- # cuda-python requires cuda-nvrtc from the same major version. We ignored
- # run-exports of cuda-nvrtc-dev and instead allow a looser pinning here.
- # Same for cuda-nvcc-impl.
- - {{ pin_compatible('cuda-nvrtc', min_pin='x', max_pin='x') }}
- - {{ pin_compatible('cuda-nvcc-impl', min_pin='x', max_pin='x') }}
- - {{ pin_compatible('libcufile', min_pin='x', max_pin='x') }} # [linux and cufile_supported]
- - libnvjitlink >=12.3,<13
- run_constrained:
- # cuda-cudart is not a hard dependency because cuda-python statically links to
- # cudart. This package is optionally dlopen'd for getting the local cudart
- # version with cuda.cudart.getLocalRuntimeVersion(). We ignored run-exports
- # of cuda-cudart-dev and instead allow a looser pinning here.
- - {{ pin_compatible('cuda-cudart', min_pin='x', max_pin='x') }}
- - {{ pin_subpackage('cuda-python', max_pin='x.x') }}
- test:
- requires:
- - cuda-nvcc
- - cuda-nvrtc-dev
- - cuda-profiler-api
- - cython
- - pip
- - numpy
- files:
- - test_cimport.pyx
- commands:
- - export C_INCLUDE_PATH="$CONDA_PREFIX/{{ subdir }}/include" # [linux]
- - set "CL=%CL% /I%CONDA_PREFIX%\{{ subdir }}\include" # [win]
- # workaround for https://github.com/conda-forge/setuptools-feedstock/issues/399
- - pip install setuptools
- - cythonize -i -3 -Xfreethreading_compatible=True *.pyx
- - python -c "import test_cimport; test_cimport.test()"
- - python -c "import cuda.bindings; print(cuda.bindings.__version__)"
- imports:
- - cuda
- - cuda.cuda
- - cuda.cudart
- - cuda.bindings
- - cuda.bindings.driver
- - cuda.bindings.runtime
- - cuda.bindings.cufile # [linux]
- - cuda.bindings.nvrtc
- - cuda.bindings.nvjitlink
- - cuda.bindings.nvvm
- - cuda.bindings.nvml
- - cuda.bindings.nvfatbin
- about:
- home: https://nvidia.github.io/cuda-python/cuda-bindings
- license: LicenseRef-NVIDIA-SOFTWARE-LICENSE
- license_file: cuda_bindings/LICENSE
- license_url: https://github.com/NVIDIA/cuda-python/blob/main/LICENSE
- summary: CUDA Python Low-level Bindings
- description: |
- CUDA Python provides a standard set of low-level interfaces,
- providing full coverage of and access to the CUDA host APIs from Python.
- doc_url: https://nvidia.github.io/cuda-python/cuda-bindings
- dev_url: https://github.com/NVIDIA/cuda-python
-
-about:
- home: https://nvidia.github.io/cuda-python/
- license: LicenseRef-NVIDIA-SOFTWARE-LICENSE
- license_file: LICENSE.md
- license_url: https://github.com/NVIDIA/cuda-python/blob/main/LICENSE
- summary: CUDA Python
- description: |
- CUDA Python is the home for accessing NVIDIA's CUDA platform from Python.
- doc_url: https://nvidia.github.io/cuda-python/
- dev_url: https://github.com/NVIDIA/cuda-python
-
-extra:
- feedstock-name: cuda-python
- recipe-maintainers:
- - cpcloud
- - bdice
- - jakirkham
- - leofang
- - m3vaz
- - mmccarty
- - vyasr
- - vzhurba01
- - kkraus14
- - oleksandr-pavlyk
diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml
new file mode 100644
index 00000000..7068d0f6
--- /dev/null
+++ b/recipe/recipe.yaml
@@ -0,0 +1,258 @@
+# Have certain top-level requirements so conda-smithy can render the correct variants
+schema_version: 1
+
+context:
+ number: 1
+ version: "12.9.7"
+ sha256: 9df6ff7121e11b158730ef39350c111728c9d1a2450124f463f7f4026c89d42f
+ bindings_major_version: ${{ (version | split("."))[0] | int }}
+ bindings_minor_version: ${{ (version | split("."))[1] | int }}
+ bindings_patch_version: ${{ (version | split("."))[2] | int }}
+ target_name: ${{ "sbsa-linux" if aarch64 else 'x86_64-linux' if linux else "x64" if win else "" }}
+ subdir: ${{ "targets/" ~ target_name if aarch64 or linux else "Library\\" if win else "" }}
+ # libcufile only exists on ARM for CUDA 12.2+. We split into two ARM packages
+ # with/without libcufile support.
+ cufile_supported: ${{ cufile_supported }}
+
+recipe:
+ name: cuda-python-split
+ version: 1
+
+source:
+ url: https://github.com/NVIDIA/cuda-python/releases/download/v${{ version }}/cuda-python-v${{ version }}.tar.gz
+ sha256: ${{ sha256 }}
+
+build:
+ number: 0
+ skip: match(python, "<3.10") or ppc64le or osx
+
+outputs:
+ - package:
+ name: cuda-python
+ version: ${{ version }}
+ build:
+ number: ${{ number }}
+ skip: not linux64
+ noarch: python
+ # Deterministic build string so all variant.use_keys: [python] builds
+ # produce the same artifact filename — required for upload-time dedupe
+ # via hash collision (see `variant.use_keys` note below).
+ string: py_min_${{ python_min | replace(".", "") }}_${{ number }}
+ variant:
+ # Ensures conda-smithy splits CI jobs per Python version. Without
+ # this, the noarch output drops `python` from the intersection of
+ # used loop vars (since CFEP-25 uses `python_min`), collapsing all
+ # Python variants into a single serialized job. The redundant noarch
+ # builds dedupe on upload via hash collision (the explicit `string`
+ # above keeps the filename identical across variants).
+ use_keys:
+ - python
+ script:
+ env:
+ SUBDIR: ${{ subdir }}
+ TARGET_NAME: ${{ target_name }}
+ file: ${{ 'build_output.bat' if win else 'build_output.sh' if linux else '' }}
+ requirements:
+ host:
+ - python ${{ python_min }}.*
+ - pip
+ - setuptools
+ - setuptools-scm >=8
+ run:
+ - python >=${{ python_min }}
+ - ${{ pin_subpackage('cuda-bindings', upper_bound='x.x') }}
+ - cuda-core >=1.0.0,<1.1.0
+ - if: not aarch64
+ then: cuda-version >=12.0,<13.0a0
+ - if: aarch64 and not cufile_supported
+ then: cuda-version >=12.0,<12.2a0
+ - if: aarch64 and cufile_supported
+ then: cuda-version >=12.2,<13.0a0
+ tests:
+ - script:
+ - python -c "import importlib.metadata; importlib.metadata.version('cuda-python')"
+ # Imports depend on numpy
+ - if: linux
+ then: python -c "import cuda.bindings.cufile"
+ - python -c "import cuda.bindings.nvml"
+ requirements:
+ run:
+ # Range (not pinned to python_min) so the test env can use the
+ # variant's Python, matching the locally-built cuda-bindings ABI.
+ - python >=${{ python_min }}
+ - numpy
+ - python:
+ imports:
+ - cuda.bindings
+ - cuda.bindings.driver
+ - cuda.bindings.runtime
+ - cuda.bindings.nvrtc
+ - cuda.bindings.nvjitlink
+ - cuda.bindings.nvvm
+ - cuda.bindings.nvfatbin
+ pip_check: false
+ about:
+ license: LicenseRef-NVIDIA-SOFTWARE-LICENSE
+ license_file: cuda_python/LICENSE
+ summary: CUDA Python
+ description: |
+ CUDA Python is the home for accessing NVIDIA’s CUDA platform from Python.
+ homepage: https://nvidia.github.io/cuda-python/
+ repository: https://github.com/NVIDIA/cuda-python
+ documentation: https://nvidia.github.io/cuda-python/
+
+ - package:
+ name: cuda-bindings
+ version: ${{ version }}
+ build:
+ number: ${{ number }}
+ script:
+ env:
+ SUBDIR: ${{ subdir }}
+ TARGET_NAME: ${{ target_name }}
+ file: ${{ 'build_output.bat' if win else 'build_output.sh' if linux else '' }}
+ requirements:
+ build:
+ - ${{ compiler('c') }}
+ - ${{ compiler('cxx') }}
+ - ${{ stdlib('c') }}
+ - if: build_platform != target_platform
+ then:
+ - cross-python_${{ target_platform }}
+ - python
+ - cython
+ host:
+ # cuda.bindings needs to be built with the matching major.minor headers
+ - cuda-version ==${{ bindings_major_version }}.${{ bindings_minor_version }}
+ - cuda-crt-dev_${{ target_platform }}
+ - cuda-cudart-dev
+ - cuda-cudart-static
+ - cuda-cudart
+ - cuda-nvcc-impl
+ - cuda-nvrtc
+ - cuda-nvrtc-dev
+ - cuda-profiler-api
+ - if: linux and cufile_supported
+ then:
+ - libcufile
+ - if: linux
+ then:
+ - libcufile-dev
+ - cython
+ - pip
+ - pyclibrary
+ - python
+ - setuptools
+ - setuptools-scm >=8
+ - cuda-pathfinder >=1.5.5,<2
+ run:
+ - python
+ - cuda-pathfinder >=1.5.5,<2
+ - if: not aarch64
+ then: ${{ pin_compatible('cuda-version', lower_bound='x', upper_bound='x') }}
+ # cuda-python requires cuda-nvrtc from the same major version. We ignored
+ # run-exports of cuda-nvrtc-dev and instead allow a looser pinning here.
+ # Same for cuda-nvcc-impl.
+ - if: aarch64 and not cufile_supported
+ then: cuda-version >=12.0,<12.2a0
+ - if: aarch64 and cufile_supported
+ then: cuda-version >=12.2,<13.0a0
+ - ${{ pin_compatible('cuda-nvcc-impl', lower_bound='x', upper_bound='x') }}
+ - if: linux and cufile_supported
+ then: ${{ pin_compatible('libcufile', lower_bound='x', upper_bound='x') }}
+ - if: not aarch64 or cufile_supported
+ then: libnvfatbin >=12.0,<13.0a0
+ - libnvjitlink >=12.3,<13
+ ignore_run_exports:
+ from_package:
+ # The run-exports from these dev packages are too tight, so we ignore them.
+ # The cuda-python package supports CUDA Enhanced Compatibility through its
+ # use of dlopen, so it is compatible with other CUDA minor versions.
+ - cuda-nvcc-impl
+ - cuda-cudart-dev
+ - cuda-cudart-static
+ - cuda-nvrtc-dev
+ - if: linux
+ then: libcufile-dev
+ run_constraints:
+ # cuda-cudart is not a hard dependency because cuda-python statically links to
+ # cudart. This package is optionally dlopen'd for getting the local cudart
+ # version with cuda.cudart.getLocalRuntimeVersion(). We ignored run-exports
+ # of cuda-cudart-dev and instead allow a looser pinning here.
+ - ${{ pin_compatible('cuda-cudart', lower_bound='x', upper_bound='x') }}
+ tests:
+ - script:
+ - if: linux
+ then: export C_INCLUDE_PATH="$CONDA_PREFIX/${{ subdir }}/include"
+ - if: win
+ then: set "CL=%CL% /I%CONDA_PREFIX%\${{ subdir }}\include"
+ # Workaround for https://github.com/conda-forge/setuptools-feedstock/issues/399
+ - pip install setuptools
+ - cythonize -i -3 -Xfreethreading_compatible=True *.pyx
+ - python -c "import test_cimport; test_cimport.test()"
+ - python -c "import cuda.bindings; print(cuda.bindings.__version__)"
+ # Imports depend on numpy
+ - python -c "import cuda.bindings.nvml"
+ - if: linux
+ then: python -c "import cuda.bindings.cufile"
+ requirements:
+ run:
+ - if: win
+ then:
+ - ${{ compiler('c') }}
+ - ${{ compiler('cxx') }}
+ - cuda-nvcc
+ - cuda-nvrtc-dev
+ - cuda-profiler-api
+ - cython
+ - pip
+ - numpy
+ files:
+ recipe:
+ - test_cimport.pyx
+ - python:
+ imports:
+ - cuda
+ - cuda.cuda
+ - cuda.cudart
+ - cuda.bindings
+ - cuda.bindings.driver
+ - cuda.bindings.runtime
+ - cuda.bindings.nvrtc
+ - cuda.bindings.nvjitlink
+ - cuda.bindings.nvvm
+ - cuda.bindings.nvfatbin
+ pip_check: false
+ about:
+ license: LicenseRef-NVIDIA-SOFTWARE-LICENSE
+ license_file: cuda_bindings/LICENSE
+ summary: CUDA Python Low-level Bindings
+ description: |
+ CUDA Python provides a standard set of low-level interfaces,
+ providing full coverage of and access to the CUDA host APIs from Python.
+ homepage: https://nvidia.github.io/cuda-python/cuda-bindings
+ repository: https://github.com/NVIDIA/cuda-python
+ documentation: https://nvidia.github.io/cuda-python/cuda-bindings
+
+about:
+ license: LicenseRef-NVIDIA-SOFTWARE-LICENSE
+ license_file: LICENSE.md
+ summary: CUDA Python
+ description: |
+ CUDA Python is the home for accessing NVIDIA's CUDA platform from Python.
+ homepage: https://nvidia.github.io/cuda-python/
+ repository: https://github.com/NVIDIA/cuda-python
+ documentation: https://nvidia.github.io/cuda-python/
+
+extra:
+ feedstock-name: cuda-python
+ recipe-maintainers:
+ - bdice
+ - jakirkham
+ - leofang
+ - m3vaz
+ - mmccarty
+ - vyasr
+ - vzhurba01
+ - kkraus14
+ - oleksandr-pavlyk