diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 5c1e742..3c1537e 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -8,38 +8,38 @@ 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' build_workspace_dir: D:\\bld\\ store_build_artifacts: false tools_install_dir: D:\Miniforge - win_64_is_freethreadingfalsepython3.11.____cpython: - CONFIG: win_64_is_freethreadingfalsepython3.11.____cpython + win_64_python3.11.____cpython: + CONFIG: win_64_python3.11.____cpython UPLOAD_PACKAGES: 'True' build_workspace_dir: D:\\bld\\ store_build_artifacts: false tools_install_dir: D:\Miniforge - win_64_is_freethreadingfalsepython3.12.____cpython: - CONFIG: win_64_is_freethreadingfalsepython3.12.____cpython + win_64_python3.12.____cpython: + CONFIG: win_64_python3.12.____cpython UPLOAD_PACKAGES: 'True' build_workspace_dir: D:\\bld\\ store_build_artifacts: false tools_install_dir: D:\Miniforge - win_64_is_freethreadingfalsepython3.13.____cp313: - CONFIG: win_64_is_freethreadingfalsepython3.13.____cp313 + win_64_python3.13.____cp313: + CONFIG: win_64_python3.13.____cp313 UPLOAD_PACKAGES: 'True' build_workspace_dir: D:\\bld\\ store_build_artifacts: false tools_install_dir: D:\Miniforge - win_64_is_freethreadingfalsepython3.14.____cp314: - CONFIG: win_64_is_freethreadingfalsepython3.14.____cp314 + win_64_python3.14.____cp314: + CONFIG: win_64_python3.14.____cp314 UPLOAD_PACKAGES: 'True' build_workspace_dir: D:\\bld\\ store_build_artifacts: false tools_install_dir: D:\Miniforge - win_64_is_freethreadingtruepython3.14.____cp314t: - CONFIG: win_64_is_freethreadingtruepython3.14.____cp314t + win_64_python3.14.____cp314t: + CONFIG: win_64_python3.14.____cp314t UPLOAD_PACKAGES: 'True' build_workspace_dir: D:\\bld\\ store_build_artifacts: false diff --git a/.ci_support/linux_64_is_freethreadingfalsepython3.10.____cpython.yaml b/.ci_support/linux_64_.yaml similarity index 83% rename from .ci_support/linux_64_is_freethreadingfalsepython3.10.____cpython.yaml rename to .ci_support/linux_64_.yaml index a377bc2..afd31dd 100644 --- a/.ci_support/linux_64_is_freethreadingfalsepython3.10.____cpython.yaml +++ b/.ci_support/linux_64_.yaml @@ -16,16 +16,17 @@ 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 max_pin: x.x python: - 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.14.* *_cp314 +- 3.14.* *_cp314t python_min: - '3.10' target_platform: @@ -33,5 +34,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_is_freethreadingfalsepython3.11.____cpython.yaml deleted file mode 100644 index b35982f..0000000 --- a/.ci_support/linux_64_is_freethreadingfalsepython3.11.____cpython.yaml +++ /dev/null @@ -1,37 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '14' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -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 - max_pin: x.x -python: -- 3.11.* *_cpython -python_min: -- '3.10' -target_platform: -- linux-64 -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_is_freethreadingfalsepython3.12.____cpython.yaml deleted file mode 100644 index 6cee85c..0000000 --- a/.ci_support/linux_64_is_freethreadingfalsepython3.12.____cpython.yaml +++ /dev/null @@ -1,37 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '14' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -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 - max_pin: x.x -python: -- 3.12.* *_cpython -python_min: -- '3.10' -target_platform: -- linux-64 -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_is_freethreadingfalsepython3.13.____cp313.yaml deleted file mode 100644 index 708f29d..0000000 --- a/.ci_support/linux_64_is_freethreadingfalsepython3.13.____cp313.yaml +++ /dev/null @@ -1,37 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '14' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -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 - max_pin: x.x -python: -- 3.13.* *_cp313 -python_min: -- '3.10' -target_platform: -- linux-64 -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_is_freethreadingfalsepython3.14.____cp314.yaml deleted file mode 100644 index d11e558..0000000 --- a/.ci_support/linux_64_is_freethreadingfalsepython3.14.____cp314.yaml +++ /dev/null @@ -1,37 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '14' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -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 - max_pin: x.x -python: -- 3.14.* *_cp314 -python_min: -- '3.10' -target_platform: -- linux-64 -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_is_freethreadingtruepython3.14.____cp314t.yaml deleted file mode 100644 index 462a4ef..0000000 --- a/.ci_support/linux_64_is_freethreadingtruepython3.14.____cp314t.yaml +++ /dev/null @@ -1,37 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '14' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -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 - max_pin: x.x -python: -- 3.14.* *_cp314t -python_min: -- '3.10' -target_platform: -- linux-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - is_freethreading diff --git a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.10.____cpython.yaml b/.ci_support/linux_aarch64_python3.10.____cpython.yaml similarity index 86% rename from .ci_support/linux_aarch64_is_freethreadingfalsepython3.10.____cpython.yaml rename to .ci_support/linux_aarch64_python3.10.____cpython.yaml index 66e6766..1abd577 100644 --- a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.10.____cpython.yaml +++ b/.ci_support/linux_aarch64_python3.10.____cpython.yaml @@ -16,10 +16,6 @@ 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 @@ -33,5 +29,3 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version -- - python - - is_freethreading diff --git a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/linux_aarch64_python3.11.____cpython.yaml similarity index 86% rename from .ci_support/linux_aarch64_is_freethreadingfalsepython3.11.____cpython.yaml rename to .ci_support/linux_aarch64_python3.11.____cpython.yaml index ce76db4..5bfda90 100644 --- a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.11.____cpython.yaml +++ b/.ci_support/linux_aarch64_python3.11.____cpython.yaml @@ -16,10 +16,6 @@ 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 @@ -33,5 +29,3 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version -- - python - - is_freethreading diff --git a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.12.____cpython.yaml b/.ci_support/linux_aarch64_python3.12.____cpython.yaml similarity index 86% rename from .ci_support/linux_aarch64_is_freethreadingfalsepython3.12.____cpython.yaml rename to .ci_support/linux_aarch64_python3.12.____cpython.yaml index b509df1..d5868c3 100644 --- a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.12.____cpython.yaml +++ b/.ci_support/linux_aarch64_python3.12.____cpython.yaml @@ -16,10 +16,6 @@ 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 @@ -33,5 +29,3 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version -- - python - - is_freethreading diff --git a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.13.____cp313.yaml b/.ci_support/linux_aarch64_python3.13.____cp313.yaml similarity index 86% rename from .ci_support/linux_aarch64_is_freethreadingfalsepython3.13.____cp313.yaml rename to .ci_support/linux_aarch64_python3.13.____cp313.yaml index 1bdbe43..8d539fa 100644 --- a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.13.____cp313.yaml +++ b/.ci_support/linux_aarch64_python3.13.____cp313.yaml @@ -16,10 +16,6 @@ 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 @@ -33,5 +29,3 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version -- - python - - is_freethreading diff --git a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.14.____cp314.yaml b/.ci_support/linux_aarch64_python3.14.____cp314.yaml similarity index 86% rename from .ci_support/linux_aarch64_is_freethreadingfalsepython3.14.____cp314.yaml rename to .ci_support/linux_aarch64_python3.14.____cp314.yaml index 700a317..f3df6ff 100644 --- a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.14.____cp314.yaml +++ b/.ci_support/linux_aarch64_python3.14.____cp314.yaml @@ -16,10 +16,6 @@ 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 @@ -33,5 +29,3 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version -- - python - - is_freethreading diff --git a/.ci_support/linux_aarch64_is_freethreadingtruepython3.14.____cp314t.yaml b/.ci_support/linux_aarch64_python3.14.____cp314t.yaml similarity index 86% rename from .ci_support/linux_aarch64_is_freethreadingtruepython3.14.____cp314t.yaml rename to .ci_support/linux_aarch64_python3.14.____cp314t.yaml index 456e912..613442d 100644 --- a/.ci_support/linux_aarch64_is_freethreadingtruepython3.14.____cp314t.yaml +++ b/.ci_support/linux_aarch64_python3.14.____cp314t.yaml @@ -16,10 +16,6 @@ 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 @@ -33,5 +29,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 76% rename from .ci_support/win_64_is_freethreadingfalsepython3.10.____cpython.yaml rename to .ci_support/win_64_python3.10.____cpython.yaml index f53f57a..e53bc4a 100644 --- a/.ci_support/win_64_is_freethreadingfalsepython3.10.____cpython.yaml +++ b/.ci_support/win_64_python3.10.____cpython.yaml @@ -8,10 +8,6 @@ channel_targets: - conda-forge main cxx_compiler: - vs2022 -is_freethreading: -- false -numpy: -- '2' pin_run_as_build: python: min_pin: x.x @@ -22,6 +18,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 76% rename from .ci_support/win_64_is_freethreadingfalsepython3.11.____cpython.yaml rename to .ci_support/win_64_python3.11.____cpython.yaml index b07a617..f2cdd6a 100644 --- a/.ci_support/win_64_is_freethreadingfalsepython3.11.____cpython.yaml +++ b/.ci_support/win_64_python3.11.____cpython.yaml @@ -8,10 +8,6 @@ channel_targets: - conda-forge main cxx_compiler: - vs2022 -is_freethreading: -- false -numpy: -- '2' pin_run_as_build: python: min_pin: x.x @@ -22,6 +18,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 76% rename from .ci_support/win_64_is_freethreadingfalsepython3.12.____cpython.yaml rename to .ci_support/win_64_python3.12.____cpython.yaml index 0d4ce20..7ce691f 100644 --- a/.ci_support/win_64_is_freethreadingfalsepython3.12.____cpython.yaml +++ b/.ci_support/win_64_python3.12.____cpython.yaml @@ -8,10 +8,6 @@ channel_targets: - conda-forge main cxx_compiler: - vs2022 -is_freethreading: -- false -numpy: -- '2' pin_run_as_build: python: min_pin: x.x @@ -22,6 +18,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 76% rename from .ci_support/win_64_is_freethreadingfalsepython3.13.____cp313.yaml rename to .ci_support/win_64_python3.13.____cp313.yaml index c4b1a53..9addad3 100644 --- a/.ci_support/win_64_is_freethreadingfalsepython3.13.____cp313.yaml +++ b/.ci_support/win_64_python3.13.____cp313.yaml @@ -8,10 +8,6 @@ channel_targets: - conda-forge main cxx_compiler: - vs2022 -is_freethreading: -- false -numpy: -- '2' pin_run_as_build: python: min_pin: x.x @@ -22,6 +18,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 76% rename from .ci_support/win_64_is_freethreadingfalsepython3.14.____cp314.yaml rename to .ci_support/win_64_python3.14.____cp314.yaml index 480ba97..74b7041 100644 --- a/.ci_support/win_64_is_freethreadingfalsepython3.14.____cp314.yaml +++ b/.ci_support/win_64_python3.14.____cp314.yaml @@ -8,10 +8,6 @@ channel_targets: - conda-forge main cxx_compiler: - vs2022 -is_freethreading: -- false -numpy: -- '2' pin_run_as_build: python: min_pin: x.x @@ -22,6 +18,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 76% rename from .ci_support/win_64_is_freethreadingtruepython3.14.____cp314t.yaml rename to .ci_support/win_64_python3.14.____cp314t.yaml index db15115..ffcdac5 100644 --- a/.ci_support/win_64_is_freethreadingtruepython3.14.____cp314t.yaml +++ b/.ci_support/win_64_python3.14.____cp314t.yaml @@ -8,10 +8,6 @@ channel_targets: - conda-forge main cxx_compiler: - vs2022 -is_freethreading: -- true -numpy: -- '2' pin_run_as_build: python: min_pin: x.x @@ -22,6 +18,3 @@ python_min: - '3.10' target_platform: - win-64 -zip_keys: -- - python - - is_freethreading diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 465858f..0c323e7 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @bdice @cpcloud @jakirkham @kkraus14 @leofang @m3vaz @mmccarty @oleksandr-pavlyk @rparolin @rwgk @vyasr @vzhurba01 \ No newline at end of file +* @bdice @jakirkham @kkraus14 @leofang @m3vaz @mmccarty @oleksandr-pavlyk @rparolin @rwgk @vyasr @vzhurba01 \ No newline at end of file diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index a767fb8..5a7ed27 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -22,7 +22,7 @@ jobs: max-parallel: 50 matrix: include: - - CONFIG: linux_64_is_freethreadingfalsepython3.10.____cpython + - CONFIG: linux_64_ STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True os: ubuntu @@ -31,7 +31,7 @@ jobs: tools_install_dir: ~/miniforge3 build_workspace_dir: build_artifacts docker_run_args: - - CONFIG: linux_64_is_freethreadingfalsepython3.11.____cpython + - CONFIG: linux_aarch64_python3.10.____cpython STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True os: ubuntu @@ -40,7 +40,7 @@ jobs: tools_install_dir: ~/miniforge3 build_workspace_dir: build_artifacts docker_run_args: - - CONFIG: linux_64_is_freethreadingfalsepython3.12.____cpython + - CONFIG: linux_aarch64_python3.11.____cpython STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True os: ubuntu @@ -49,7 +49,7 @@ jobs: tools_install_dir: ~/miniforge3 build_workspace_dir: build_artifacts docker_run_args: - - CONFIG: linux_64_is_freethreadingfalsepython3.13.____cp313 + - CONFIG: linux_aarch64_python3.12.____cpython STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True os: ubuntu @@ -58,7 +58,7 @@ jobs: tools_install_dir: ~/miniforge3 build_workspace_dir: build_artifacts docker_run_args: - - CONFIG: linux_64_is_freethreadingfalsepython3.14.____cp314 + - CONFIG: linux_aarch64_python3.13.____cp313 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True os: ubuntu @@ -67,7 +67,7 @@ jobs: tools_install_dir: ~/miniforge3 build_workspace_dir: build_artifacts docker_run_args: - - CONFIG: linux_64_is_freethreadingtruepython3.14.____cp314t + - CONFIG: linux_aarch64_python3.14.____cp314 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True os: ubuntu @@ -76,52 +76,7 @@ jobs: tools_install_dir: ~/miniforge3 build_workspace_dir: build_artifacts docker_run_args: - - CONFIG: linux_aarch64_is_freethreadingfalsepython3.10.____cpython - STORE_BUILD_ARTIFACTS: False - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - - CONFIG: linux_aarch64_is_freethreadingfalsepython3.11.____cpython - STORE_BUILD_ARTIFACTS: False - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - - CONFIG: linux_aarch64_is_freethreadingfalsepython3.12.____cpython - STORE_BUILD_ARTIFACTS: False - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - - CONFIG: linux_aarch64_is_freethreadingfalsepython3.13.____cp313 - STORE_BUILD_ARTIFACTS: False - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - - CONFIG: linux_aarch64_is_freethreadingfalsepython3.14.____cp314 - STORE_BUILD_ARTIFACTS: False - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - - CONFIG: linux_aarch64_is_freethreadingtruepython3.14.____cp314t + - CONFIG: linux_aarch64_python3.14.____cp314t STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True os: ubuntu diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index aa7c3d3..ce848e2 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>=26.3" +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,16 @@ 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" \ - ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" - - # Drop into an interactive shell - /bin/bash + echo "rattler-build currently doesn't support debug mode" 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:-}" + + 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/run_win_build.bat b/.scripts/run_win_build.bat index 2f875ca..90effaa 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>=26.3" +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 be3d6a0..6a7fa4d 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,7 +35,6 @@ Documentation: https://nvidia.github.io/cuda-python/ CUDA Python is the home for accessing NVIDIA’s CUDA platform from Python. - Current build status ==================== @@ -78,87 +60,87 @@ Current build status - + - + - + - + - + - + - + - + - + - + - + - + @@ -292,7 +274,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/conda-forge.yml b/conda-forge.yml index 3d21276..e2f231c 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -12,6 +12,8 @@ build_platform: linux_ppc64le: linux_64 conda_build: pkg_format: '2' +conda_build_tool: rattler-build +conda_install_tool: pixi conda_forge_output_validation: true github: branch_name: main diff --git a/pixi.toml b/pixi.toml new file mode 100644 index 0000000..16a2460 --- /dev/null +++ b/pixi.toml @@ -0,0 +1,124 @@ +# -*- 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 = "3.62.0" # 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_"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_.yaml" +description = "Build cuda-python-feedstock with variant linux_64_ directly (without setup scripts)" +[tasks."inspect-linux_64_"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_.yaml" +description = "List contents of cuda-python-feedstock packages built for variant linux_64_" +[tasks."build-linux_aarch64_python3.10.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_python3.10.____cpython.yaml" +description = "Build cuda-python-feedstock with variant linux_aarch64_python3.10.____cpython directly (without setup scripts)" +[tasks."inspect-linux_aarch64_python3.10.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_python3.10.____cpython.yaml" +description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_python3.10.____cpython" +[tasks."build-linux_aarch64_python3.11.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_python3.11.____cpython.yaml" +description = "Build cuda-python-feedstock with variant linux_aarch64_python3.11.____cpython directly (without setup scripts)" +[tasks."inspect-linux_aarch64_python3.11.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_python3.11.____cpython.yaml" +description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_python3.11.____cpython" +[tasks."build-linux_aarch64_python3.12.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_python3.12.____cpython.yaml" +description = "Build cuda-python-feedstock with variant linux_aarch64_python3.12.____cpython directly (without setup scripts)" +[tasks."inspect-linux_aarch64_python3.12.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_python3.12.____cpython.yaml" +description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_python3.12.____cpython" +[tasks."build-linux_aarch64_python3.13.____cp313"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_python3.13.____cp313.yaml" +description = "Build cuda-python-feedstock with variant linux_aarch64_python3.13.____cp313 directly (without setup scripts)" +[tasks."inspect-linux_aarch64_python3.13.____cp313"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_python3.13.____cp313.yaml" +description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_python3.13.____cp313" +[tasks."build-linux_aarch64_python3.14.____cp314"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_python3.14.____cp314.yaml" +description = "Build cuda-python-feedstock with variant linux_aarch64_python3.14.____cp314 directly (without setup scripts)" +[tasks."inspect-linux_aarch64_python3.14.____cp314"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_python3.14.____cp314.yaml" +description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_python3.14.____cp314" +[tasks."build-linux_aarch64_python3.14.____cp314t"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_python3.14.____cp314t.yaml" +description = "Build cuda-python-feedstock with variant linux_aarch64_python3.14.____cp314t directly (without setup scripts)" +[tasks."inspect-linux_aarch64_python3.14.____cp314t"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_python3.14.____cp314t.yaml" +description = "List contents of cuda-python-feedstock packages built for variant linux_aarch64_python3.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 841c561..b01814d 100644 --- a/recipe/build_output.bat +++ b/recipe/build_output.bat @@ -1,3 +1,11 @@ +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_bindings" ( + 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% +) %PYTHON% -m pip install . --no-deps -vv diff --git a/recipe/build_output.sh b/recipe/build_output.sh index 068fdee..3881ccc 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" ]]; then diff --git a/recipe/meta.yaml b/recipe/meta.yaml deleted file mode 100644 index 1beba3c..0000000 --- a/recipe/meta.yaml +++ /dev/null @@ -1,217 +0,0 @@ -{% set number = 1 %} -{% set version = "13.3.0" %} -{% set sha256 = "a6f724e35d2c5087eace5d19ede1f9abdc3cf8b8eb84c4d394a11e08bf21bff4" %} - -{% 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 >=13.0,<14.0a0 - 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 }} - - LIB={{ PREFIX ~ subdir }}\lib\{{ target_name }};%LIB% # [win64] - 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-nvvm-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-nvvm-impl - - cuda-nvrtc - - cuda-nvrtc-dev - - cuda-profiler-api - - libcufile # [linux] - - libcufile-dev # [linux] - - cython - - pip - - pyclibrary - - python - - setuptools - - setuptools-scm >=8 - - cuda-pathfinder >=1.5.5,<2 - run: - - python - - cuda-pathfinder >=1.5.5,<2 - - {{ pin_compatible('cuda-version', min_pin='x', max_pin='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-nvvm-impl. - - {{ pin_compatible('cuda-nvrtc', min_pin='x', max_pin='x') }} - - {{ pin_compatible('cuda-nvvm-impl', min_pin='x', max_pin='x') }} - - {{ pin_compatible('libcufile', min_pin='x', max_pin='x') }} # [linux] - - {{ pin_compatible('libnvfatbin', min_pin='x', max_pin='x') }} - - libnvjitlink >=13.0,<14.0a0 - 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: - - {{ compiler('c') }} - - {{ compiler('cxx') }} - - 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.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: - - rwgk - - rparolin - - 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 0000000..5a73f12 --- /dev/null +++ b/recipe/recipe.yaml @@ -0,0 +1,225 @@ +# Have certain top-level requirements so conda-smithy can render the correct variants +schema_version: 1 + +context: + number: 2 + version: "13.3.0" + sha256: a6f724e35d2c5087eace5d19ede1f9abdc3cf8b8eb84c4d394a11e08bf21bff4 + 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 "" }} + +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 + 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-version >=13.0,<14.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: + - 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-nvvm-impl + - cuda-nvrtc + - cuda-nvrtc-dev + - cuda-profiler-api + - if: linux + then: + - libcufile + - libcufile-dev + - libnvfatbin + - cython + - pip + - pyclibrary + - python + - setuptools + - setuptools-scm >=8 + - cuda-pathfinder >=1.5.5,<2 + run: + - python + - cuda-pathfinder >=1.5.5,<2 + - ${{ 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-nvvm-impl. + - ${{ pin_compatible('cuda-nvrtc', lower_bound='x', upper_bound='x') }} + - ${{ pin_compatible('cuda-nvvm-impl', lower_bound='x', upper_bound='x') }} + - if: linux + then: ${{ pin_compatible('libcufile', lower_bound='x', upper_bound='x') }} + - ${{ pin_compatible('libnvfatbin', lower_bound='x', upper_bound='x') }} + - libnvjitlink >=13.0,<14.0a0 + 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-nvvm-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" + - 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: + - ${{ compiler('c') }} + - ${{ compiler('cxx') }} + - cuda-nvcc + - cuda-nvrtc-dev + - cuda-profiler-api + - cython + - pip + - numpy + files: + recipe: + - test_cimport.pyx + - python: + imports: + - cuda + - 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: + - rwgk + - rparolin + - bdice + - jakirkham + - leofang + - m3vaz + - mmccarty + - vyasr + - vzhurba01 + - kkraus14 + - oleksandr-pavlyk
VariantStatus
linux_aarch64_is_freethreadingfalsepython3.10.____cpythonlinux_aarch64_python3.10.____cpython - variant + variant
linux_aarch64_is_freethreadingfalsepython3.11.____cpythonlinux_aarch64_python3.11.____cpython - variant + variant
linux_aarch64_is_freethreadingfalsepython3.12.____cpythonlinux_aarch64_python3.12.____cpython - variant + variant
linux_aarch64_is_freethreadingfalsepython3.13.____cp313linux_aarch64_python3.13.____cp313 - variant + variant
linux_aarch64_is_freethreadingfalsepython3.14.____cp314linux_aarch64_python3.14.____cp314 - variant + variant
linux_aarch64_is_freethreadingtruepython3.14.____cp314tlinux_aarch64_python3.14.____cp314t - variant + variant
win_64_is_freethreadingfalsepython3.10.____cpythonwin_64_python3.10.____cpython - variant + variant
win_64_is_freethreadingfalsepython3.11.____cpythonwin_64_python3.11.____cpython - variant + variant
win_64_is_freethreadingfalsepython3.12.____cpythonwin_64_python3.12.____cpython - variant + variant
win_64_is_freethreadingfalsepython3.13.____cp313win_64_python3.13.____cp313 - variant + variant
win_64_is_freethreadingfalsepython3.14.____cp314win_64_python3.14.____cp314 - variant + variant
win_64_is_freethreadingtruepython3.14.____cp314twin_64_python3.14.____cp314t - variant + variant