diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index e98f6d17..6fa8bcde 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -85,4 +85,4 @@ jobs: env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index d81e4df7..8f658ddf 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -55,4 +55,4 @@ jobs: env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 5bc7cbb8..d50edb83 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -45,4 +45,4 @@ jobs: UPLOAD_TEMP: $(UPLOAD_TEMP) BINSTAR_TOKEN: $(BINSTAR_TOKEN) FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) diff --git a/.ci_support/linux_64_is_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/linux_64_is_freethreadingfalsepython3.11.____cpython.yaml index 54ba6d27..5dd23057 100644 --- a/.ci_support/linux_64_is_freethreadingfalsepython3.11.____cpython.yaml +++ b/.ci_support/linux_64_is_freethreadingfalsepython3.11.____cpython.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: @@ -15,13 +15,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fortran_compiler: - gfortran fortran_compiler_version: -- '13' +- '14' is_freethreading: - false libblas: @@ -30,8 +30,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_64_is_freethreadingfalsepython3.12.____cpython.yaml b/.ci_support/linux_64_is_freethreadingfalsepython3.12.____cpython.yaml index ff0b6cf3..a7455213 100644 --- a/.ci_support/linux_64_is_freethreadingfalsepython3.12.____cpython.yaml +++ b/.ci_support/linux_64_is_freethreadingfalsepython3.12.____cpython.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: @@ -15,13 +15,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fortran_compiler: - gfortran fortran_compiler_version: -- '13' +- '14' is_freethreading: - false libblas: @@ -30,8 +30,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_64_is_freethreadingfalsepython3.13.____cp313.yaml b/.ci_support/linux_64_is_freethreadingfalsepython3.13.____cp313.yaml index 81c5fcd3..1c7f3f6e 100644 --- a/.ci_support/linux_64_is_freethreadingfalsepython3.13.____cp313.yaml +++ b/.ci_support/linux_64_is_freethreadingfalsepython3.13.____cp313.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: @@ -15,13 +15,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fortran_compiler: - gfortran fortran_compiler_version: -- '13' +- '14' is_freethreading: - false libblas: @@ -30,8 +30,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_64_is_freethreadingtruepython3.13.____cp313t.yaml b/.ci_support/linux_64_is_freethreadingtruepython3.13.____cp313t.yaml index 360b522a..5aca68c6 100644 --- a/.ci_support/linux_64_is_freethreadingtruepython3.13.____cp313t.yaml +++ b/.ci_support/linux_64_is_freethreadingtruepython3.13.____cp313t.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: @@ -15,13 +15,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fortran_compiler: - gfortran fortran_compiler_version: -- '13' +- '14' is_freethreading: - true libblas: @@ -30,8 +30,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/linux_aarch64_is_freethreadingfalsepython3.11.____cpython.yaml index 7d2ad646..5cac2024 100644 --- a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.11.____cpython.yaml +++ b/.ci_support/linux_aarch64_is_freethreadingfalsepython3.11.____cpython.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: @@ -15,13 +15,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fortran_compiler: - gfortran fortran_compiler_version: -- '13' +- '14' is_freethreading: - false libblas: @@ -30,8 +30,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.12.____cpython.yaml b/.ci_support/linux_aarch64_is_freethreadingfalsepython3.12.____cpython.yaml index c6f2fd00..35c857b0 100644 --- a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.12.____cpython.yaml +++ b/.ci_support/linux_aarch64_is_freethreadingfalsepython3.12.____cpython.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: @@ -15,13 +15,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fortran_compiler: - gfortran fortran_compiler_version: -- '13' +- '14' is_freethreading: - false libblas: @@ -30,8 +30,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.13.____cp313.yaml b/.ci_support/linux_aarch64_is_freethreadingfalsepython3.13.____cp313.yaml index b38593df..784f08fc 100644 --- a/.ci_support/linux_aarch64_is_freethreadingfalsepython3.13.____cp313.yaml +++ b/.ci_support/linux_aarch64_is_freethreadingfalsepython3.13.____cp313.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: @@ -15,13 +15,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fortran_compiler: - gfortran fortran_compiler_version: -- '13' +- '14' is_freethreading: - false libblas: @@ -30,8 +30,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_aarch64_is_freethreadingtruepython3.13.____cp313t.yaml b/.ci_support/linux_aarch64_is_freethreadingtruepython3.13.____cp313t.yaml index 848d9dd0..a18c2b6e 100644 --- a/.ci_support/linux_aarch64_is_freethreadingtruepython3.13.____cp313t.yaml +++ b/.ci_support/linux_aarch64_is_freethreadingtruepython3.13.____cp313t.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: @@ -15,13 +15,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fortran_compiler: - gfortran fortran_compiler_version: -- '13' +- '14' is_freethreading: - true libblas: @@ -30,8 +30,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_ppc64le_is_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/linux_ppc64le_is_freethreadingfalsepython3.11.____cpython.yaml index 8d926de6..7c45ab15 100644 --- a/.ci_support/linux_ppc64le_is_freethreadingfalsepython3.11.____cpython.yaml +++ b/.ci_support/linux_ppc64le_is_freethreadingfalsepython3.11.____cpython.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: @@ -15,13 +15,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fortran_compiler: - gfortran fortran_compiler_version: -- '13' +- '14' is_freethreading: - false libblas: @@ -30,8 +30,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_ppc64le_is_freethreadingfalsepython3.12.____cpython.yaml b/.ci_support/linux_ppc64le_is_freethreadingfalsepython3.12.____cpython.yaml index 7a68848a..29b60a98 100644 --- a/.ci_support/linux_ppc64le_is_freethreadingfalsepython3.12.____cpython.yaml +++ b/.ci_support/linux_ppc64le_is_freethreadingfalsepython3.12.____cpython.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: @@ -15,13 +15,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fortran_compiler: - gfortran fortran_compiler_version: -- '13' +- '14' is_freethreading: - false libblas: @@ -30,8 +30,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_ppc64le_is_freethreadingfalsepython3.13.____cp313.yaml b/.ci_support/linux_ppc64le_is_freethreadingfalsepython3.13.____cp313.yaml index 4022e084..8fef8807 100644 --- a/.ci_support/linux_ppc64le_is_freethreadingfalsepython3.13.____cp313.yaml +++ b/.ci_support/linux_ppc64le_is_freethreadingfalsepython3.13.____cp313.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: @@ -15,13 +15,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fortran_compiler: - gfortran fortran_compiler_version: -- '13' +- '14' is_freethreading: - false libblas: @@ -30,8 +30,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_ppc64le_is_freethreadingtruepython3.13.____cp313t.yaml b/.ci_support/linux_ppc64le_is_freethreadingtruepython3.13.____cp313t.yaml index 61535240..d7a1a72d 100644 --- a/.ci_support/linux_ppc64le_is_freethreadingtruepython3.13.____cp313t.yaml +++ b/.ci_support/linux_ppc64le_is_freethreadingtruepython3.13.____cp313t.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: @@ -15,13 +15,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 fortran_compiler: - gfortran fortran_compiler_version: -- '13' +- '14' is_freethreading: - true libblas: @@ -30,8 +30,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/osx_64_is_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/osx_64_is_freethreadingfalsepython3.11.____cpython.yaml index 3825e275..7a5bea25 100644 --- a/.ci_support/osx_64_is_freethreadingfalsepython3.11.____cpython.yaml +++ b/.ci_support/osx_64_is_freethreadingfalsepython3.11.____cpython.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '18' +- '19' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,11 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' +fortran_compiler: +- gfortran +fortran_compiler_version: +- '14' is_freethreading: - false libblas: @@ -28,8 +32,6 @@ liblapack: - 3.9.* *netlib macos_machine: - x86_64-apple-darwin13.4.0 -numpy: -- '2' pin_run_as_build: python: min_pin: x.x @@ -41,5 +43,6 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version + - fortran_compiler_version - - python - is_freethreading diff --git a/.ci_support/osx_64_is_freethreadingfalsepython3.12.____cpython.yaml b/.ci_support/osx_64_is_freethreadingfalsepython3.12.____cpython.yaml index 70d894fb..65c769d9 100644 --- a/.ci_support/osx_64_is_freethreadingfalsepython3.12.____cpython.yaml +++ b/.ci_support/osx_64_is_freethreadingfalsepython3.12.____cpython.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '18' +- '19' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,11 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' +fortran_compiler: +- gfortran +fortran_compiler_version: +- '14' is_freethreading: - false libblas: @@ -28,8 +32,6 @@ liblapack: - 3.9.* *netlib macos_machine: - x86_64-apple-darwin13.4.0 -numpy: -- '2' pin_run_as_build: python: min_pin: x.x @@ -41,5 +43,6 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version + - fortran_compiler_version - - python - is_freethreading diff --git a/.ci_support/osx_64_is_freethreadingfalsepython3.13.____cp313.yaml b/.ci_support/osx_64_is_freethreadingfalsepython3.13.____cp313.yaml index 332cd690..436fd9ea 100644 --- a/.ci_support/osx_64_is_freethreadingfalsepython3.13.____cp313.yaml +++ b/.ci_support/osx_64_is_freethreadingfalsepython3.13.____cp313.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '18' +- '19' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,11 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' +fortran_compiler: +- gfortran +fortran_compiler_version: +- '14' is_freethreading: - false libblas: @@ -28,8 +32,6 @@ liblapack: - 3.9.* *netlib macos_machine: - x86_64-apple-darwin13.4.0 -numpy: -- '2' pin_run_as_build: python: min_pin: x.x @@ -41,5 +43,6 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version + - fortran_compiler_version - - python - is_freethreading diff --git a/.ci_support/osx_64_is_freethreadingtruepython3.13.____cp313t.yaml b/.ci_support/osx_64_is_freethreadingtruepython3.13.____cp313t.yaml index ae2dcb46..814e1ae9 100644 --- a/.ci_support/osx_64_is_freethreadingtruepython3.13.____cp313t.yaml +++ b/.ci_support/osx_64_is_freethreadingtruepython3.13.____cp313t.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '18' +- '19' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,11 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' +fortran_compiler: +- gfortran +fortran_compiler_version: +- '14' is_freethreading: - true libblas: @@ -28,8 +32,6 @@ liblapack: - 3.9.* *netlib macos_machine: - x86_64-apple-darwin13.4.0 -numpy: -- '2' pin_run_as_build: python: min_pin: x.x @@ -41,5 +43,6 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version + - fortran_compiler_version - - python - is_freethreading diff --git a/.ci_support/osx_arm64_is_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/osx_arm64_is_freethreadingfalsepython3.11.____cpython.yaml index 626657a3..0e676930 100644 --- a/.ci_support/osx_arm64_is_freethreadingfalsepython3.11.____cpython.yaml +++ b/.ci_support/osx_arm64_is_freethreadingfalsepython3.11.____cpython.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '18' +- '19' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,11 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' +fortran_compiler: +- gfortran +fortran_compiler_version: +- '14' is_freethreading: - false libblas: @@ -28,8 +32,6 @@ liblapack: - 3.9.* *netlib macos_machine: - arm64-apple-darwin20.0.0 -numpy: -- '2' pin_run_as_build: python: min_pin: x.x @@ -41,5 +43,6 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version + - fortran_compiler_version - - python - is_freethreading diff --git a/.ci_support/osx_arm64_is_freethreadingfalsepython3.12.____cpython.yaml b/.ci_support/osx_arm64_is_freethreadingfalsepython3.12.____cpython.yaml index d0ce743f..14094f16 100644 --- a/.ci_support/osx_arm64_is_freethreadingfalsepython3.12.____cpython.yaml +++ b/.ci_support/osx_arm64_is_freethreadingfalsepython3.12.____cpython.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '18' +- '19' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,11 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' +fortran_compiler: +- gfortran +fortran_compiler_version: +- '14' is_freethreading: - false libblas: @@ -28,8 +32,6 @@ liblapack: - 3.9.* *netlib macos_machine: - arm64-apple-darwin20.0.0 -numpy: -- '2' pin_run_as_build: python: min_pin: x.x @@ -41,5 +43,6 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version + - fortran_compiler_version - - python - is_freethreading diff --git a/.ci_support/osx_arm64_is_freethreadingfalsepython3.13.____cp313.yaml b/.ci_support/osx_arm64_is_freethreadingfalsepython3.13.____cp313.yaml index 829cbbed..9cde0b8c 100644 --- a/.ci_support/osx_arm64_is_freethreadingfalsepython3.13.____cp313.yaml +++ b/.ci_support/osx_arm64_is_freethreadingfalsepython3.13.____cp313.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '18' +- '19' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,11 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' +fortran_compiler: +- gfortran +fortran_compiler_version: +- '14' is_freethreading: - false libblas: @@ -28,8 +32,6 @@ liblapack: - 3.9.* *netlib macos_machine: - arm64-apple-darwin20.0.0 -numpy: -- '2' pin_run_as_build: python: min_pin: x.x @@ -41,5 +43,6 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version + - fortran_compiler_version - - python - is_freethreading diff --git a/.ci_support/osx_arm64_is_freethreadingtruepython3.13.____cp313t.yaml b/.ci_support/osx_arm64_is_freethreadingtruepython3.13.____cp313t.yaml index f9ed937e..0c7b5797 100644 --- a/.ci_support/osx_arm64_is_freethreadingtruepython3.13.____cp313t.yaml +++ b/.ci_support/osx_arm64_is_freethreadingtruepython3.13.____cp313t.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '18' +- '19' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,11 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' +fortran_compiler: +- gfortran +fortran_compiler_version: +- '14' is_freethreading: - true libblas: @@ -28,8 +32,6 @@ liblapack: - 3.9.* *netlib macos_machine: - arm64-apple-darwin20.0.0 -numpy: -- '2' pin_run_as_build: python: min_pin: x.x @@ -41,5 +43,6 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version + - fortran_compiler_version - - python - is_freethreading diff --git a/.ci_support/win_64_is_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/win_64_is_freethreadingfalsepython3.11.____cpython.yaml index 4d7b5a76..2d41d74d 100644 --- a/.ci_support/win_64_is_freethreadingfalsepython3.11.____cpython.yaml +++ b/.ci_support/win_64_is_freethreadingfalsepython3.11.____cpython.yaml @@ -8,6 +8,10 @@ channel_targets: - conda-forge main cxx_compiler: - vs2022 +fortran_compiler: +- flang +fortran_compiler_version: +- '5' is_freethreading: - false libblas: @@ -16,8 +20,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/win_64_is_freethreadingfalsepython3.12.____cpython.yaml b/.ci_support/win_64_is_freethreadingfalsepython3.12.____cpython.yaml index 35d795de..f0de4bbc 100644 --- a/.ci_support/win_64_is_freethreadingfalsepython3.12.____cpython.yaml +++ b/.ci_support/win_64_is_freethreadingfalsepython3.12.____cpython.yaml @@ -8,6 +8,10 @@ channel_targets: - conda-forge main cxx_compiler: - vs2022 +fortran_compiler: +- flang +fortran_compiler_version: +- '5' is_freethreading: - false libblas: @@ -16,8 +20,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/win_64_is_freethreadingfalsepython3.13.____cp313.yaml b/.ci_support/win_64_is_freethreadingfalsepython3.13.____cp313.yaml index 22215e28..0d3ffd34 100644 --- a/.ci_support/win_64_is_freethreadingfalsepython3.13.____cp313.yaml +++ b/.ci_support/win_64_is_freethreadingfalsepython3.13.____cp313.yaml @@ -8,6 +8,10 @@ channel_targets: - conda-forge main cxx_compiler: - vs2022 +fortran_compiler: +- flang +fortran_compiler_version: +- '5' is_freethreading: - false libblas: @@ -16,8 +20,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/win_64_is_freethreadingtruepython3.13.____cp313t.yaml b/.ci_support/win_64_is_freethreadingtruepython3.13.____cp313t.yaml index bc4ff583..f7b2970c 100644 --- a/.ci_support/win_64_is_freethreadingtruepython3.13.____cp313t.yaml +++ b/.ci_support/win_64_is_freethreadingtruepython3.13.____cp313t.yaml @@ -8,6 +8,10 @@ channel_targets: - conda-forge main cxx_compiler: - vs2022 +fortran_compiler: +- flang +fortran_compiler_version: +- '5' is_freethreading: - true libblas: @@ -16,8 +20,6 @@ libcblas: - 3.9.* *netlib liblapack: - 3.9.* *netlib -numpy: -- '2' pin_run_as_build: python: min_pin: x.x diff --git a/.gitattributes b/.gitattributes index 18f114a1..85ccb8f4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -24,4 +24,5 @@ bld.bat text eol=crlf /README.md linguist-generated=true azure-pipelines.yml linguist-generated=true build-locally.py linguist-generated=true +pixi.toml linguist-generated=true shippable.yml linguist-generated=true diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 827a29fb..1d53b613 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -31,11 +31,21 @@ 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" +curl -fsSL https://pixi.sh/install.sh | bash +export PATH="~/.pixi/bin:$PATH" +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 @@ -49,7 +59,7 @@ source run_conda_forge_build_setup make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${HOST_PLATFORM}" != linux-* ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --test skip" fi @@ -60,20 +70,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 @@ -97,4 +103,4 @@ fi ( startgroup "Final checks" ) 2> /dev/null -touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" \ No newline at end of file +touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 6ee04aa1..b63b5a05 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -111,4 +111,4 @@ docker run ${DOCKER_RUN_ARGS} \ test -f "$DONE_CANARY" # This closes the last group opened in `build_steps.sh` -( endgroup "Final checks" ) 2> /dev/null \ No newline at end of file +( endgroup "Final checks" ) 2> /dev/null diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 0e3c3942..f2fcf855 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -9,34 +9,24 @@ set -xe MINIFORGE_HOME="${MINIFORGE_HOME:-${HOME}/miniforge3}" MINIFORGE_HOME="${MINIFORGE_HOME%/}" # remove trailing slash export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${MINIFORGE_HOME}/conda-bld}" - -( startgroup "Provisioning base env with micromamba" ) 2> /dev/null -MICROMAMBA_VERSION="1.5.10-0" -if [[ "$(uname -m)" == "arm64" ]]; then - osx_arch="osx-arm64" -else - osx_arch="osx-64" +( startgroup "Provisioning base env with pixi" ) 2> /dev/null +mkdir -p "${MINIFORGE_HOME}" +curl -fsSL https://pixi.sh/install.sh | bash +export PATH="~/.pixi/bin:$PATH" +arch=$(uname -m) +if [[ "$arch" == "x86_64" ]]; then + arch="64" fi -MICROMAMBA_URL="https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-${osx_arch}" -MAMBA_ROOT_PREFIX="${MINIFORGE_HOME}-micromamba-$(date +%s)" -echo "Downloading micromamba ${MICROMAMBA_VERSION}" -micromamba_exe="$(mktemp -d)/micromamba" -curl -L -o "${micromamba_exe}" "${MICROMAMBA_URL}" -chmod +x "${micromamba_exe}" +sed -i.bak "s/platforms = .*/platforms = [\"osx-${arch}\"]/" pixi.toml echo "Creating environment" -"${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" -echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" -mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" -echo "Cleaning up micromamba" -rm -rf "${MAMBA_ROOT_PREFIX}" "${micromamba_exe}" || true -( endgroup "Provisioning base env with micromamba" ) 2> /dev/null +pixi install +pixi list +echo "Activating environment" +eval "$(pixi shell-hook)" +mv pixi.toml.bak pixi.toml +( endgroup "Provisioning base env with pixi" ) 2> /dev/null ( startgroup "Configuring conda" ) 2> /dev/null -echo "Activating environment" -source "${MINIFORGE_HOME}/etc/profile.d/conda.sh" -conda activate base export CONDA_SOLVER="libmamba" export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 @@ -70,33 +60,25 @@ source run_conda_forge_build_setup ( endgroup "Configuring conda" ) 2> /dev/null -echo -e "\n\nMaking the build clobber file" -make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml - if [[ -f LICENSE.txt ]]; then cp LICENSE.txt "recipe/recipe-scripts-license.txt" 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 -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 does not currently support debug mode" else if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --test skip" fi - conda-build ./recipe -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 \ + -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 @@ -117,4 +99,4 @@ else fi ( endgroup "Uploading packages" ) 2> /dev/null -fi \ No newline at end of file +fi diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 297498b1..fce25eac 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! -echo Removing %MAMBA_ROOT_PREFIX% -del /S /Q "%MAMBA_ROOT_PREFIX%" >nul -del /S /Q "%MICROMAMBA_TMPDIR%" >nul +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! +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,19 +77,19 @@ if EXIST LICENSE.txt ( ) if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] ( if [%CROSSCOMPILING_EMULATOR%] == [] ( - set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --no-test" + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --test skip" ) ) 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" @@ -148,4 +161,4 @@ if /i "%CI%" == "azure" ( echo ##[endgroup] exit /b ) -exit /b \ No newline at end of file +exit /b diff --git a/conda-forge.yml b/conda-forge.yml index 15b71480..de778fa0 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -12,6 +12,6 @@ conda_forge_output_validation: true github: branch_name: main tooling_branch_name: main -provider: - win: azure test: native_and_emulated +conda_install_tool: pixi +conda_build_tool: rattler-build diff --git a/pixi.toml b/pixi.toml new file mode 100644 index 00000000..35e18268 --- /dev/null +++ b/pixi.toml @@ -0,0 +1,191 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: toml -*- + +# VVVVVV minimum `pixi` version +"$schema" = "https://pixi.sh/v0.36.0/schema/manifest/schema.json" + +[project] +name = "numpy-feedstock" +version = "3.51.1" # conda-smithy version used to generate this file +description = "Pixi configuration for conda-forge/numpy-feedstock" +authors = ["@conda-forge/numpy"] +channels = ["conda-forge"] +platforms = ["linux-64", "osx-64", "win-64"] + +[dependencies] +conda-build = ">=24.1" +conda-forge-ci-setup = "4.*" +rattler-build = "*" + +[tasks] +[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 numpy-feedstock directly (without setup scripts), no particular variant specified" +[tasks."build-linux_64_is_freethreadingfalsepython3.11.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_is_freethreadingfalsepython3.11.____cpython.yaml" +description = "Build numpy-feedstock with variant linux_64_is_freethreadingfalsepython3.11.____cpython directly (without setup scripts)" +[tasks."inspect-linux_64_is_freethreadingfalsepython3.11.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_is_freethreadingfalsepython3.11.____cpython.yaml" +description = "List contents of numpy-feedstock packages built for variant linux_64_is_freethreadingfalsepython3.11.____cpython" +[tasks."build-linux_64_is_freethreadingfalsepython3.12.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_is_freethreadingfalsepython3.12.____cpython.yaml" +description = "Build numpy-feedstock with variant linux_64_is_freethreadingfalsepython3.12.____cpython directly (without setup scripts)" +[tasks."inspect-linux_64_is_freethreadingfalsepython3.12.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_is_freethreadingfalsepython3.12.____cpython.yaml" +description = "List contents of numpy-feedstock packages built for variant linux_64_is_freethreadingfalsepython3.12.____cpython" +[tasks."build-linux_64_is_freethreadingfalsepython3.13.____cp313"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_is_freethreadingfalsepython3.13.____cp313.yaml" +description = "Build numpy-feedstock with variant linux_64_is_freethreadingfalsepython3.13.____cp313 directly (without setup scripts)" +[tasks."inspect-linux_64_is_freethreadingfalsepython3.13.____cp313"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_is_freethreadingfalsepython3.13.____cp313.yaml" +description = "List contents of numpy-feedstock packages built for variant linux_64_is_freethreadingfalsepython3.13.____cp313" +[tasks."build-linux_64_is_freethreadingtruepython3.13.____cp313t"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_64_is_freethreadingtruepython3.13.____cp313t.yaml" +description = "Build numpy-feedstock with variant linux_64_is_freethreadingtruepython3.13.____cp313t directly (without setup scripts)" +[tasks."inspect-linux_64_is_freethreadingtruepython3.13.____cp313t"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_64_is_freethreadingtruepython3.13.____cp313t.yaml" +description = "List contents of numpy-feedstock packages built for variant linux_64_is_freethreadingtruepython3.13.____cp313t" +[tasks."build-linux_aarch64_is_freethreadingfalsepython3.11.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_is_freethreadingfalsepython3.11.____cpython.yaml" +description = "Build numpy-feedstock with variant linux_aarch64_is_freethreadingfalsepython3.11.____cpython directly (without setup scripts)" +[tasks."inspect-linux_aarch64_is_freethreadingfalsepython3.11.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_is_freethreadingfalsepython3.11.____cpython.yaml" +description = "List contents of numpy-feedstock packages built for variant linux_aarch64_is_freethreadingfalsepython3.11.____cpython" +[tasks."build-linux_aarch64_is_freethreadingfalsepython3.12.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_is_freethreadingfalsepython3.12.____cpython.yaml" +description = "Build numpy-feedstock with variant linux_aarch64_is_freethreadingfalsepython3.12.____cpython directly (without setup scripts)" +[tasks."inspect-linux_aarch64_is_freethreadingfalsepython3.12.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_is_freethreadingfalsepython3.12.____cpython.yaml" +description = "List contents of numpy-feedstock packages built for variant linux_aarch64_is_freethreadingfalsepython3.12.____cpython" +[tasks."build-linux_aarch64_is_freethreadingfalsepython3.13.____cp313"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_is_freethreadingfalsepython3.13.____cp313.yaml" +description = "Build numpy-feedstock with variant linux_aarch64_is_freethreadingfalsepython3.13.____cp313 directly (without setup scripts)" +[tasks."inspect-linux_aarch64_is_freethreadingfalsepython3.13.____cp313"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_is_freethreadingfalsepython3.13.____cp313.yaml" +description = "List contents of numpy-feedstock packages built for variant linux_aarch64_is_freethreadingfalsepython3.13.____cp313" +[tasks."build-linux_aarch64_is_freethreadingtruepython3.13.____cp313t"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_aarch64_is_freethreadingtruepython3.13.____cp313t.yaml" +description = "Build numpy-feedstock with variant linux_aarch64_is_freethreadingtruepython3.13.____cp313t directly (without setup scripts)" +[tasks."inspect-linux_aarch64_is_freethreadingtruepython3.13.____cp313t"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_aarch64_is_freethreadingtruepython3.13.____cp313t.yaml" +description = "List contents of numpy-feedstock packages built for variant linux_aarch64_is_freethreadingtruepython3.13.____cp313t" +[tasks."build-linux_ppc64le_is_freethreadingfalsepython3.11.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_ppc64le_is_freethreadingfalsepython3.11.____cpython.yaml" +description = "Build numpy-feedstock with variant linux_ppc64le_is_freethreadingfalsepython3.11.____cpython directly (without setup scripts)" +[tasks."inspect-linux_ppc64le_is_freethreadingfalsepython3.11.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_ppc64le_is_freethreadingfalsepython3.11.____cpython.yaml" +description = "List contents of numpy-feedstock packages built for variant linux_ppc64le_is_freethreadingfalsepython3.11.____cpython" +[tasks."build-linux_ppc64le_is_freethreadingfalsepython3.12.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_ppc64le_is_freethreadingfalsepython3.12.____cpython.yaml" +description = "Build numpy-feedstock with variant linux_ppc64le_is_freethreadingfalsepython3.12.____cpython directly (without setup scripts)" +[tasks."inspect-linux_ppc64le_is_freethreadingfalsepython3.12.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_ppc64le_is_freethreadingfalsepython3.12.____cpython.yaml" +description = "List contents of numpy-feedstock packages built for variant linux_ppc64le_is_freethreadingfalsepython3.12.____cpython" +[tasks."build-linux_ppc64le_is_freethreadingfalsepython3.13.____cp313"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_ppc64le_is_freethreadingfalsepython3.13.____cp313.yaml" +description = "Build numpy-feedstock with variant linux_ppc64le_is_freethreadingfalsepython3.13.____cp313 directly (without setup scripts)" +[tasks."inspect-linux_ppc64le_is_freethreadingfalsepython3.13.____cp313"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_ppc64le_is_freethreadingfalsepython3.13.____cp313.yaml" +description = "List contents of numpy-feedstock packages built for variant linux_ppc64le_is_freethreadingfalsepython3.13.____cp313" +[tasks."build-linux_ppc64le_is_freethreadingtruepython3.13.____cp313t"] +cmd = "rattler-build build --recipe recipe -m .ci_support/linux_ppc64le_is_freethreadingtruepython3.13.____cp313t.yaml" +description = "Build numpy-feedstock with variant linux_ppc64le_is_freethreadingtruepython3.13.____cp313t directly (without setup scripts)" +[tasks."inspect-linux_ppc64le_is_freethreadingtruepython3.13.____cp313t"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/linux_ppc64le_is_freethreadingtruepython3.13.____cp313t.yaml" +description = "List contents of numpy-feedstock packages built for variant linux_ppc64le_is_freethreadingtruepython3.13.____cp313t" +[tasks."build-osx_64_is_freethreadingfalsepython3.11.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/osx_64_is_freethreadingfalsepython3.11.____cpython.yaml" +description = "Build numpy-feedstock with variant osx_64_is_freethreadingfalsepython3.11.____cpython directly (without setup scripts)" +[tasks."inspect-osx_64_is_freethreadingfalsepython3.11.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_64_is_freethreadingfalsepython3.11.____cpython.yaml" +description = "List contents of numpy-feedstock packages built for variant osx_64_is_freethreadingfalsepython3.11.____cpython" +[tasks."build-osx_64_is_freethreadingfalsepython3.12.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/osx_64_is_freethreadingfalsepython3.12.____cpython.yaml" +description = "Build numpy-feedstock with variant osx_64_is_freethreadingfalsepython3.12.____cpython directly (without setup scripts)" +[tasks."inspect-osx_64_is_freethreadingfalsepython3.12.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_64_is_freethreadingfalsepython3.12.____cpython.yaml" +description = "List contents of numpy-feedstock packages built for variant osx_64_is_freethreadingfalsepython3.12.____cpython" +[tasks."build-osx_64_is_freethreadingfalsepython3.13.____cp313"] +cmd = "rattler-build build --recipe recipe -m .ci_support/osx_64_is_freethreadingfalsepython3.13.____cp313.yaml" +description = "Build numpy-feedstock with variant osx_64_is_freethreadingfalsepython3.13.____cp313 directly (without setup scripts)" +[tasks."inspect-osx_64_is_freethreadingfalsepython3.13.____cp313"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_64_is_freethreadingfalsepython3.13.____cp313.yaml" +description = "List contents of numpy-feedstock packages built for variant osx_64_is_freethreadingfalsepython3.13.____cp313" +[tasks."build-osx_64_is_freethreadingtruepython3.13.____cp313t"] +cmd = "rattler-build build --recipe recipe -m .ci_support/osx_64_is_freethreadingtruepython3.13.____cp313t.yaml" +description = "Build numpy-feedstock with variant osx_64_is_freethreadingtruepython3.13.____cp313t directly (without setup scripts)" +[tasks."inspect-osx_64_is_freethreadingtruepython3.13.____cp313t"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_64_is_freethreadingtruepython3.13.____cp313t.yaml" +description = "List contents of numpy-feedstock packages built for variant osx_64_is_freethreadingtruepython3.13.____cp313t" +[tasks."build-osx_arm64_is_freethreadingfalsepython3.11.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/osx_arm64_is_freethreadingfalsepython3.11.____cpython.yaml" +description = "Build numpy-feedstock with variant osx_arm64_is_freethreadingfalsepython3.11.____cpython directly (without setup scripts)" +[tasks."inspect-osx_arm64_is_freethreadingfalsepython3.11.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_arm64_is_freethreadingfalsepython3.11.____cpython.yaml" +description = "List contents of numpy-feedstock packages built for variant osx_arm64_is_freethreadingfalsepython3.11.____cpython" +[tasks."build-osx_arm64_is_freethreadingfalsepython3.12.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/osx_arm64_is_freethreadingfalsepython3.12.____cpython.yaml" +description = "Build numpy-feedstock with variant osx_arm64_is_freethreadingfalsepython3.12.____cpython directly (without setup scripts)" +[tasks."inspect-osx_arm64_is_freethreadingfalsepython3.12.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_arm64_is_freethreadingfalsepython3.12.____cpython.yaml" +description = "List contents of numpy-feedstock packages built for variant osx_arm64_is_freethreadingfalsepython3.12.____cpython" +[tasks."build-osx_arm64_is_freethreadingfalsepython3.13.____cp313"] +cmd = "rattler-build build --recipe recipe -m .ci_support/osx_arm64_is_freethreadingfalsepython3.13.____cp313.yaml" +description = "Build numpy-feedstock with variant osx_arm64_is_freethreadingfalsepython3.13.____cp313 directly (without setup scripts)" +[tasks."inspect-osx_arm64_is_freethreadingfalsepython3.13.____cp313"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_arm64_is_freethreadingfalsepython3.13.____cp313.yaml" +description = "List contents of numpy-feedstock packages built for variant osx_arm64_is_freethreadingfalsepython3.13.____cp313" +[tasks."build-osx_arm64_is_freethreadingtruepython3.13.____cp313t"] +cmd = "rattler-build build --recipe recipe -m .ci_support/osx_arm64_is_freethreadingtruepython3.13.____cp313t.yaml" +description = "Build numpy-feedstock with variant osx_arm64_is_freethreadingtruepython3.13.____cp313t directly (without setup scripts)" +[tasks."inspect-osx_arm64_is_freethreadingtruepython3.13.____cp313t"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/osx_arm64_is_freethreadingtruepython3.13.____cp313t.yaml" +description = "List contents of numpy-feedstock packages built for variant osx_arm64_is_freethreadingtruepython3.13.____cp313t" +[tasks."build-win_64_is_freethreadingfalsepython3.11.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/win_64_is_freethreadingfalsepython3.11.____cpython.yaml" +description = "Build numpy-feedstock with variant win_64_is_freethreadingfalsepython3.11.____cpython directly (without setup scripts)" +[tasks."inspect-win_64_is_freethreadingfalsepython3.11.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/win_64_is_freethreadingfalsepython3.11.____cpython.yaml" +description = "List contents of numpy-feedstock packages built for variant win_64_is_freethreadingfalsepython3.11.____cpython" +[tasks."build-win_64_is_freethreadingfalsepython3.12.____cpython"] +cmd = "rattler-build build --recipe recipe -m .ci_support/win_64_is_freethreadingfalsepython3.12.____cpython.yaml" +description = "Build numpy-feedstock with variant win_64_is_freethreadingfalsepython3.12.____cpython directly (without setup scripts)" +[tasks."inspect-win_64_is_freethreadingfalsepython3.12.____cpython"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/win_64_is_freethreadingfalsepython3.12.____cpython.yaml" +description = "List contents of numpy-feedstock packages built for variant win_64_is_freethreadingfalsepython3.12.____cpython" +[tasks."build-win_64_is_freethreadingfalsepython3.13.____cp313"] +cmd = "rattler-build build --recipe recipe -m .ci_support/win_64_is_freethreadingfalsepython3.13.____cp313.yaml" +description = "Build numpy-feedstock with variant win_64_is_freethreadingfalsepython3.13.____cp313 directly (without setup scripts)" +[tasks."inspect-win_64_is_freethreadingfalsepython3.13.____cp313"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/win_64_is_freethreadingfalsepython3.13.____cp313.yaml" +description = "List contents of numpy-feedstock packages built for variant win_64_is_freethreadingfalsepython3.13.____cp313" +[tasks."build-win_64_is_freethreadingtruepython3.13.____cp313t"] +cmd = "rattler-build build --recipe recipe -m .ci_support/win_64_is_freethreadingtruepython3.13.____cp313t.yaml" +description = "Build numpy-feedstock with variant win_64_is_freethreadingtruepython3.13.____cp313t directly (without setup scripts)" +[tasks."inspect-win_64_is_freethreadingtruepython3.13.____cp313t"] +cmd = "inspect_artifacts --recipe-dir recipe -m .ci_support/win_64_is_freethreadingtruepython3.13.____cp313t.yaml" +description = "List contents of numpy-feedstock packages built for variant win_64_is_freethreadingtruepython3.13.____cp313t" + +[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/bld.bat b/recipe/build.bat similarity index 100% rename from recipe/bld.bat rename to recipe/build.bat diff --git a/recipe/meta.yaml b/recipe/meta.yaml deleted file mode 100644 index 4a05a0ce..00000000 --- a/recipe/meta.yaml +++ /dev/null @@ -1,200 +0,0 @@ -{% set version = "2.3.1" %} -{% set dev = "" %} -# numpy will by default use the ABI feature level for the first numpy version -# that added support for the oldest currently-supported CPython version; see -# https://github.com/numpy/numpy/blob/v2.0.0rc1/numpy/_core/include/numpy/numpyconfig.h#L124 -{% set default_abi_level = "1.23" %} - -# ensure is_freethreading gets detected as a used variable -# [is_freethreading] - -package: - name: numpy - version: {{ version }}{{ dev }} - -source: - # The sdist distributed by numpy contains submodules; by taking the tarball - # from github we can everything pythran ourselves, but manually need to include - # the submodules (not in tarball due to dear-github/dear-github#214); for the - # list of modules see https://github.com/numpy/numpy/blob/main/.gitmodules - - url: https://github.com/numpy/numpy/archive/refs/tags/v{{ version }}{{ dev }}.tar.gz - sha256: d040da6eb210b6e04cb76fa40b6ab221858ed9e188828ee8d8daa455cf41456f - # https://github.com/numpy/numpy/tree/v{{ version }}/numpy/_core/src - - folder: numpy/_core/src/highway - git_url: https://github.com/google/highway.git - git_rev: 0b696633f9ad89497dd5532b55eaa01625ad71ca - # https://github.com/numpy/numpy/tree/v{{ version }}/numpy/_core/src/common - - folder: numpy/_core/src/common/pythoncapi-compat - git_url: https://github.com/python/pythoncapi-compat.git - git_rev: 0f1d42a10a3f594ad48894912396df31b2c2d55d - # https://github.com/numpy/numpy/tree/v{{ version }}/numpy/_core/src/npysort - - folder: numpy/_core/src/npysort/x86-simd-sort - git_url: https://github.com/intel/x86-simd-sort.git - git_rev: c306ac581a59f89585d778254c4ed7197e64ba2d - # https://github.com/numpy/numpy/tree/v{{ version }}/numpy/_core/src/umath - - folder: numpy/_core/src/umath/svml - git_url: https://github.com/numpy/SVML.git - git_rev: 32bf2a98420762a63ab418aaa0a7d6e17eb9627a - # https://github.com/numpy/numpy/tree/v{{ version }}/numpy/fft - - folder: numpy/fft/pocketfft - git_url: https://github.com/mreineck/pocketfft.git - git_rev: 33ae5dc94c9cdc7f1c78346504a85de87cadaa12 - # https://github.com/numpy/numpy/tree/v{{ version }}/vendored-meson - - folder: vendored-meson/meson - git_url: https://github.com/numpy/meson.git - git_rev: f754c4258805056ed7be09830d96af45215d341b - -build: - number: 0 - skip: true # [py<311] - entry_points: - - f2py = numpy.f2py.f2py2e:main # [win] - - numpy-config = numpy._configtool:main # [win] - run_exports: - - numpy >={{ default_abi_level }},<3 - -requirements: - build: - - python # [build_platform != target_platform] - - cross-python_{{ target_platform }} # [build_platform != target_platform] - - cython # [build_platform != target_platform] - - ninja # [build_platform != target_platform] - - pkg-config # [build_platform != target_platform] - - {{ compiler('c') }} - - {{ stdlib('c') }} - - {{ compiler('cxx') }} - host: - - pip - # temporarily vendored by numpy - # - meson - - meson-python - - ninja - - pkg-config - - python - - python-build - - cython - - libblas - - libcblas - - liblapack - run: - - python -{% if dev != '' %} - - _numpy_rc -{% endif %} - run_constrained: - # enforce eviction of package from anaconda defaults - - numpy-base <0a0 - -{% set tests_to_skip = "_not_a_real_test" %} -# there are some tests that cannot really work in emulation, see e.g. numpy/numpy#20445 -{% set tests_to_skip = tests_to_skip + " or Test_ARM_Features" %} # [build_platform != target_platform] -{% set tests_to_skip = tests_to_skip + " or Test_POWER_Features" %} # [build_platform != target_platform] -# test_new_policy reruns part of test suite; including a CPU feature test that fails in emulation -{% set tests_to_skip = tests_to_skip + " or test_new_policy" %} # [build_platform != target_platform] -# emulation problems (apparently) on aarch -{% set tests_to_skip = tests_to_skip + " or (test_basic_property and float32)" %} # [aarch64] -{% set tests_to_skip = tests_to_skip + " or test_generalized_herm_cases" %} # [aarch64] -{% set tests_to_skip = tests_to_skip + " or test_generalized_nonsq_cases" %} # [aarch64] -{% set tests_to_skip = tests_to_skip + " or test_generalized_sq_cases" %} # [aarch64] -{% set tests_to_skip = tests_to_skip + " or test_herm_cases or test_sq_cases" %} # [aarch64] -{% set tests_to_skip = tests_to_skip + " or test_nonsq_cases" %} # [aarch64] -# https://github.com/numpy/numpy/issues/27045 -{% set tests_to_skip = tests_to_skip + " or (test_regression and test_gh25784)" %} # [osx] -# new test failures for 2.2.4; possibly emulation-related; see -# https://github.com/numpy/numpy/issues/28548 -{% set tests_to_skip = tests_to_skip + " or test_einsum_sums_float32" %} # [ppc64le] -{% set tests_to_skip = tests_to_skip + " or test_ufunc_noncontiguous[matvec]" %} # [ppc64le] -{% set tests_to_skip = tests_to_skip + " or test_accelerate_framework_sgemv_fix " %} # [ppc64le] - -test: - requires: - - pytest - - pytest-timeout - - pytest-xdist - # (mostly) optional test requirements (except wheel, python-cov, mypy), see - # https://github.com/numpy/numpy/blob/main/requirements/test_requirements.txt - - cython - - hypothesis - - meson - - pytz - - setuptools <60.0.0 # [py<=311] - - setuptools # [py>=312] - - typing_extensions - # some linux tests need a C/C++ compiler; - # extra f2py tests need a fortran compiler - - {{ compiler('c') }} # [unix] - - {{ compiler('cxx') }} # [unix] - - {{ compiler('fortran') }} # [linux] - # For some cython tests - - pkg-config - commands: - - f2py -h - # numpy.test will show SIMD features of agent (in the past, there have been - # failures that occured depending on presence/absence of e.g. AVX512); - # for signature of numpy.test see the following (note default: label='fast'), - # https://github.com/numpy/numpy/blob/maintenance/1.22.x/numpy/_pytesttester.py#L81-L82 - {% set param = "verbose=1, label='full', tests=None" %} - {% set extra = "extra_argv=['-k', 'not (" + tests_to_skip + ")', '-nauto', '--timeout=3000', '--durations=50', '--maxfail=100']" %} - - python -c "import numpy, sys; sys.exit(not numpy.test({{ param }}, {{ extra }}))" - imports: - - numpy - # reference for public API is effectively PUBLIC_MODULES under - # https://github.com/numpy/numpy/blame/main/numpy/tests/test_public_api.py - - numpy.ctypeslib - - numpy.distutils # [py<312] - - numpy.dtypes - - numpy.exceptions - - numpy.f2py - - numpy.fft - - numpy.lib - - numpy.lib.format - - numpy.lib.mixins - - numpy.lib.recfunctions - - numpy.lib.scimath - - numpy.lib.stride_tricks - - numpy.lib.npyio - - numpy.lib.introspect - - numpy.lib.array_utils - - numpy.linalg - - numpy.ma - - numpy.ma.extras - - numpy.ma.mrecords - - numpy.polynomial - - numpy.polynomial.chebyshev - - numpy.polynomial.hermite - - numpy.polynomial.hermite_e - - numpy.polynomial.laguerre - - numpy.polynomial.legendre - - numpy.polynomial.polynomial - - numpy.random - - numpy.testing - - numpy.testing.overrides - - numpy.typing - - numpy.typing.mypy_plugin - - numpy.version - # some private modules that were once upon a time - # determined to be useful packaging checks - - numpy.core.multiarray - - numpy.core.numeric - - numpy.core.umath - - numpy.linalg.lapack_lite - - numpy.random.mtrand - -about: - home: http://numpy.org/ - license: BSD-3-Clause - license_file: LICENSE.txt - summary: The fundamental package for scientific computing with Python. - doc_url: https://numpy.org/doc/stable/ - dev_url: https://github.com/numpy/numpy - -extra: - recipe-maintainers: - - jakirkham - - msarahan - - pelson - - rgommers - - ocefpaf - - isuruf - - xhochy - - h-vetinari diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml new file mode 100644 index 00000000..5d78450f --- /dev/null +++ b/recipe/recipe.yaml @@ -0,0 +1,226 @@ +context: + version: 2.3.1 + # -1, or less, means "not a dev version", a number > -1 will emit postfix "rc${{ rc_num }}" + rc_num: -1 + # numpy will by default use the ABI feature level for the first numpy version + # that added support for the oldest currently-supported CPython version; see + # https://github.com/numpy/numpy/blob/v2.0.0rc1/numpy/_core/include/numpy/numpyconfig.h#L124 + default_abi_level: 1.23 + # ensure is_freethreading gets detected as a used variable + touch_is_freethreading: ${{ is_freethreading }} + +package: + name: numpy + version: ${{ version }}${{ ("rc" ~ rc_num) if rc_num > -1 else "" }} + +source: + # The sdist distributed by numpy contains submodules; by taking the tarball + # from github we can everything pythran ourselves, but manually need to include + # the submodules (not in tarball due to dear-github/dear-github#214); for the + # list of modules see https://github.com/numpy/numpy/blob/main/.gitmodules + - url: https://github.com/numpy/numpy/archive/refs/tags/v${{ version }}.tar.gz + sha256: d040da6eb210b6e04cb76fa40b6ab221858ed9e188828ee8d8daa455cf41456f + # https://github.com/numpy/numpy/tree/v{{ version }}/numpy/_core/src + - target_directory: numpy/_core/src/highway + git: https://github.com/google/highway.git + rev: 0b696633f9ad89497dd5532b55eaa01625ad71ca + # https://github.com/numpy/numpy/tree/v{{ version }}/numpy/_core/src/common + - target_directory: numpy/_core/src/common/pythoncapi-compat + git: https://github.com/python/pythoncapi-compat.git + rev: 0f1d42a10a3f594ad48894912396df31b2c2d55d + # https://github.com/numpy/numpy/tree/v{{ version }}/numpy/_core/src/npysort + - target_directory: numpy/_core/src/npysort/x86-simd-sort + git: https://github.com/intel/x86-simd-sort.git + rev: c306ac581a59f89585d778254c4ed7197e64ba2d + # https://github.com/numpy/numpy/tree/v{{ version }}/numpy/_core/src/umath + - target_directory: numpy/_core/src/umath/svml + git: https://github.com/numpy/SVML.git + rev: 32bf2a98420762a63ab418aaa0a7d6e17eb9627a + # https://github.com/numpy/numpy/tree/v{{ version }}/numpy/fft + - target_directory: numpy/fft/pocketfft + git: https://github.com/mreineck/pocketfft.git + rev: 33ae5dc94c9cdc7f1c78346504a85de87cadaa12 + # https://github.com/numpy/numpy/tree/v{{ version }}/vendored-meson + - target_directory: vendored-meson/meson + git: https://github.com/numpy/meson.git + rev: f754c4258805056ed7be09830d96af45215d341b + +build: + number: 1 + skip: match(python, "<3.11") + python: + entry_points: + - if: win + then: + - f2py = numpy.f2py.f2py2e:main + - numpy-config = numpy._configtool:main + +requirements: + build: + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - cython + - ninja + - pkg-config + - ${{ stdlib('c') }} + - ${{ compiler('c') }} + - ${{ compiler('cxx') }} + host: + - pip + # temporarily vendored by numpy + # - meson + - meson-python + - ninja + - pkg-config + - python + - python-build + - cython + - libblas + - libcblas + - liblapack + run: + - python + - if: rc_num > -1 + then: _numpy_rc + run_exports: + - numpy >=${{ default_abi_level }},<3 + run_constraints: + # enforce eviction of package from anaconda defaults + - numpy-base <0a0 + +tests: + - python: + imports: + - numpy + # reference for public API is effectively PUBLIC_MODULES under + # https://github.com/numpy/numpy/blame/main/numpy/tests/test_public_api.py + - numpy.ctypeslib + - if: match(python, "<3.12") + then: numpy.distutils + - numpy.dtypes + - numpy.exceptions + - numpy.f2py + - numpy.fft + - numpy.lib + - numpy.lib.format + - numpy.lib.mixins + - numpy.lib.recfunctions + - numpy.lib.scimath + - numpy.lib.stride_tricks + - numpy.lib.npyio + - numpy.lib.introspect + - numpy.lib.array_utils + - numpy.linalg + - numpy.ma + - numpy.ma.extras + - numpy.ma.mrecords + - numpy.polynomial + - numpy.polynomial.chebyshev + - numpy.polynomial.hermite + - numpy.polynomial.hermite_e + - numpy.polynomial.laguerre + - numpy.polynomial.legendre + - numpy.polynomial.polynomial + - numpy.random + - numpy.testing + - numpy.testing.overrides + - numpy.typing + - numpy.typing.mypy_plugin + - numpy.version + # some private modules that were once upon a time + # determined to be useful packaging checks + - numpy.core.multiarray + - numpy.core.numeric + - numpy.core.umath + - numpy.linalg.lapack_lite + - numpy.random.mtrand + + - script: + - f2py -h + + - requirements: + run: + - pytest + - pytest-timeout + - pytest-xdist + # (mostly) optional test requirements (except wheel, python-cov, mypy), see + # https://github.com/numpy/numpy/blob/main/requirements/test_requirements.txt + - cython + - hypothesis + - meson + - pytz + - if: match(python, "<=3.11") + then: setuptools <60.0.0 + else: setuptools + - typing_extensions + # some linux tests need a C/C++ compiler; + # extra f2py tests need a fortran compiler + - if: unix + then: + - ${{ compiler('c') }} + - ${{ compiler('cxx') }} + - if: linux + then: ${{ compiler('fortran') }} + # For some cython tests + - pkg-config + script: + interpreter: python + content: + - import numpy, sys + - 'tests_to_skip = "_not_a_real_test"' + - if: build_platform != target_platform + then: + # there are some tests that cannot really work in emulation, see e.g. numpy/numpy#20445 + - 'tests_to_skip += " or Test_ARM_Features"' + - 'tests_to_skip += " or Test_POWER_Features"' + # test_new_policy reruns part of test suite; including a CPU feature test that fails in emulation + - 'tests_to_skip += " or test_new_policy"' + - if: aarch64 + then: + # emulation problems (apparently) on aarch + - 'tests_to_skip += " or (test_basic_property and float32)"' + - 'tests_to_skip += " or test_generalized_herm_cases"' + - 'tests_to_skip += " or test_generalized_nonsq_cases"' + - 'tests_to_skip += " or test_generalized_sq_cases"' + - 'tests_to_skip += " or test_herm_cases or test_sq_cases"' + - 'tests_to_skip += " or test_nonsq_cases"' + - if: osx + then: + # https://github.com/numpy/numpy/issues/27045 + - 'tests_to_skip += " or (test_regression and test_gh25784)"' + - if: ppc64le + then: + # new test failures for 2.2.4; possibly emulation-related; see + # https://github.com/numpy/numpy/issues/28548 + - 'tests_to_skip += " or test_einsum_sums_float32"' + - 'tests_to_skip += " or test_ufunc_noncontiguous[matvec]"' + - 'tests_to_skip += " or test_accelerate_framework_sgemv_fix "' + # numpy.test will show SIMD features of agent (in the past, there have been + # failures that occured depending on presence/absence of e.g. AVX512); + # for signature of numpy.test see the following (note default: label='fast'), + # https://github.com/numpy/numpy/blob/maintenance/1.22.x/numpy/_pytesttester.py#L81-L82 + - 'param = {"verbose": 1, "label": "full", "tests": None}' + - 'extra_argv = ["-k", f"not ({tests_to_skip})", "-nauto", "--timeout=3000", "--durations=50", "--maxfail=100"]' + - 'print(f"running with args: kwargs={param}, extra_argv={extra_argv}")' + - 'sys.exit(not numpy.test(**param, extra_argv=extra_argv))' + +about: + license: BSD-3-Clause + license_file: LICENSE.txt + summary: The fundamental package for scientific computing with Python. + homepage: http://numpy.org/ + repository: https://github.com/numpy/numpy + documentation: https://numpy.org/doc/stable/ + +extra: + recipe-maintainers: + - h-vetinari + - isuruf + - jakirkham + - msarahan + - ocefpaf + - pelson + - rgommers + - xhochy