diff --git a/.ci_support/linux_64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml b/.ci_support/linux_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml similarity index 87% rename from .ci_support/linux_64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml rename to .ci_support/linux_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml index 7da050a..6ea1464 100644 --- a/.ci_support/linux_64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml +++ b/.ci_support/linux_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml @@ -1,13 +1,11 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: @@ -15,15 +13,17 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 gmp: - '6' +is_abi3: +- false is_freethreading: -- 'false' +- true libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: @@ -33,16 +33,16 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.13.* *_cp313 +- 3.13.* *_cp313t target_platform: - linux-64 zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/linux_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml b/.ci_support/linux_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml similarity index 81% rename from .ci_support/linux_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml rename to .ci_support/linux_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml index 7b546ba..85350a5 100644 --- a/.ci_support/linux_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml +++ b/.ci_support/linux_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml @@ -1,29 +1,29 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: -- conda-forge/label/cython_dev,conda-forge +- conda-forge,conda-forge/label/python_rc channel_targets: - isuruf test cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 gmp: - '6' +is_abi3: +- false is_freethreading: -- 'true' +- true libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: @@ -33,16 +33,16 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.13.* *_cp313t +- 3.14.* *_cp314t target_platform: - linux-64 zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/linux_64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml b/.ci_support/linux_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml similarity index 89% rename from .ci_support/linux_64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml rename to .ci_support/linux_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml index 24283d9..8a7c780 100644 --- a/.ci_support/linux_64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml +++ b/.ci_support/linux_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml @@ -1,13 +1,11 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: @@ -15,19 +13,21 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 gmp: - '6' +is_abi3: +- true is_freethreading: -- 'false' +- false libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: -- '1.22' +- '2' pin_run_as_build: python: min_pin: x.x @@ -40,9 +40,9 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/linux_64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml b/.ci_support/linux_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml similarity index 89% rename from .ci_support/linux_64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml rename to .ci_support/linux_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml index 4ded9ee..3c03014 100644 --- a/.ci_support/linux_64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml +++ b/.ci_support/linux_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml @@ -1,13 +1,11 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: @@ -15,19 +13,21 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 gmp: - '6' +is_abi3: +- true is_freethreading: -- 'false' +- false libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: -- '1.23' +- '2' pin_run_as_build: python: min_pin: x.x @@ -40,9 +40,9 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/linux_64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml b/.ci_support/linux_64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml deleted file mode 100644 index 9861769..0000000 --- a/.ci_support/linux_64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml +++ /dev/null @@ -1,49 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- conda -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -mpfr: -- '4' -numpy: -- '1.21' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.8.* *_cpython -target_platform: -- linux-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml b/.ci_support/linux_64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml deleted file mode 100644 index 6f205ed..0000000 --- a/.ci_support/linux_64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml +++ /dev/null @@ -1,49 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- conda -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -mpfr: -- '4' -numpy: -- '1.22' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.9.* *_cpython -target_platform: -- linux-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml b/.ci_support/linux_64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml deleted file mode 100644 index 7c15890..0000000 --- a/.ci_support/linux_64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml +++ /dev/null @@ -1,49 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- conda -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -mpfr: -- '4' -numpy: -- '1.26' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.12.* *_cpython -target_platform: -- linux-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_aarch64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml b/.ci_support/linux_aarch64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml similarity index 87% rename from .ci_support/linux_aarch64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml rename to .ci_support/linux_aarch64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml index 8749741..4beac37 100644 --- a/.ci_support/linux_aarch64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml +++ b/.ci_support/linux_aarch64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml @@ -1,13 +1,11 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: @@ -15,15 +13,17 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 gmp: - '6' +is_abi3: +- false is_freethreading: -- 'false' +- true libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: @@ -33,16 +33,16 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.13.* *_cp313 +- 3.13.* *_cp313t target_platform: - linux-aarch64 zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/linux_aarch64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml b/.ci_support/linux_aarch64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml similarity index 81% rename from .ci_support/linux_aarch64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml rename to .ci_support/linux_aarch64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml index 65437d6..c03cc6e 100644 --- a/.ci_support/linux_aarch64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml +++ b/.ci_support/linux_aarch64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml @@ -1,29 +1,29 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: -- conda-forge/label/cython_dev,conda-forge +- conda-forge,conda-forge/label/python_rc channel_targets: - isuruf test cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 gmp: - '6' +is_abi3: +- false is_freethreading: -- 'true' +- true libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: @@ -33,16 +33,16 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.13.* *_cp313t +- 3.14.* *_cp314t target_platform: - linux-aarch64 zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/linux_aarch64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml b/.ci_support/linux_aarch64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml similarity index 89% rename from .ci_support/linux_aarch64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml rename to .ci_support/linux_aarch64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml index 2f8b4f8..54aaa6c 100644 --- a/.ci_support/linux_aarch64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml +++ b/.ci_support/linux_aarch64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml @@ -1,13 +1,11 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: @@ -15,19 +13,21 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 gmp: - '6' +is_abi3: +- true is_freethreading: -- 'false' +- false libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: -- '1.22' +- '2' pin_run_as_build: python: min_pin: x.x @@ -40,9 +40,9 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/linux_aarch64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml b/.ci_support/linux_aarch64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml similarity index 89% rename from .ci_support/linux_aarch64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml rename to .ci_support/linux_aarch64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml index c595d41..14509ca 100644 --- a/.ci_support/linux_aarch64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml +++ b/.ci_support/linux_aarch64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml @@ -1,13 +1,11 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: @@ -15,19 +13,21 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 gmp: - '6' +is_abi3: +- true is_freethreading: -- 'false' +- false libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: -- '1.23' +- '2' pin_run_as_build: python: min_pin: x.x @@ -40,9 +40,9 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/linux_aarch64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml b/.ci_support/linux_aarch64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml deleted file mode 100644 index ad40e43..0000000 --- a/.ci_support/linux_aarch64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml +++ /dev/null @@ -1,49 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- conda -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -mpfr: -- '4' -numpy: -- '1.21' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.8.* *_cpython -target_platform: -- linux-aarch64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_aarch64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml b/.ci_support/linux_aarch64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml deleted file mode 100644 index 9014c13..0000000 --- a/.ci_support/linux_aarch64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml +++ /dev/null @@ -1,49 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- conda -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -mpfr: -- '4' -numpy: -- '1.22' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.9.* *_cpython -target_platform: -- linux-aarch64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_aarch64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml b/.ci_support/linux_aarch64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml deleted file mode 100644 index 71c4622..0000000 --- a/.ci_support/linux_aarch64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml +++ /dev/null @@ -1,49 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- conda -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -mpfr: -- '4' -numpy: -- '1.26' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.12.* *_cpython -target_platform: -- linux-aarch64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy2python3.13.____cp313.yaml b/.ci_support/linux_ppc64le_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml similarity index 87% rename from .ci_support/linux_ppc64le_is_freethreadingfalsenumpy2python3.13.____cp313.yaml rename to .ci_support/linux_ppc64le_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml index 2a6eb70..eb6ba5e 100644 --- a/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy2python3.13.____cp313.yaml +++ b/.ci_support/linux_ppc64le_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml @@ -1,13 +1,11 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: @@ -15,15 +13,17 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 gmp: - '6' +is_abi3: +- false is_freethreading: -- 'false' +- true libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: @@ -33,16 +33,16 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.13.* *_cp313 +- 3.13.* *_cp313t target_platform: - linux-ppc64le zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/linux_ppc64le_is_freethreadingtruenumpy2python3.13.____cp313t.yaml b/.ci_support/linux_ppc64le_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml similarity index 81% rename from .ci_support/linux_ppc64le_is_freethreadingtruenumpy2python3.13.____cp313t.yaml rename to .ci_support/linux_ppc64le_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml index f498cd8..1fa2043 100644 --- a/.ci_support/linux_ppc64le_is_freethreadingtruenumpy2python3.13.____cp313t.yaml +++ b/.ci_support/linux_ppc64le_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml @@ -1,29 +1,29 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: -- conda-forge/label/cython_dev,conda-forge +- conda-forge,conda-forge/label/python_rc channel_targets: - isuruf test cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 gmp: - '6' +is_abi3: +- false is_freethreading: -- 'true' +- true libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: @@ -33,16 +33,16 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.13.* *_cp313t +- 3.14.* *_cp314t target_platform: - linux-ppc64le zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml b/.ci_support/linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml similarity index 89% rename from .ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml rename to .ci_support/linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml index bc3df49..86be016 100644 --- a/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml +++ b/.ci_support/linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml @@ -1,13 +1,11 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: @@ -15,19 +13,21 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 gmp: - '6' +is_abi3: +- true is_freethreading: -- 'false' +- false libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: -- '1.22' +- '2' pin_run_as_build: python: min_pin: x.x @@ -40,9 +40,9 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml b/.ci_support/linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml similarity index 89% rename from .ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml rename to .ci_support/linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml index 4a2aa90..cfa0c2d 100644 --- a/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml +++ b/.ci_support/linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml @@ -1,13 +1,11 @@ c_compiler: - gcc c_compiler_version: -- '13' +- '14' c_stdlib: - sysroot c_stdlib_version: - '2.17' -cdt_name: -- conda channel_sources: - conda-forge channel_targets: @@ -15,19 +13,21 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 gmp: - '6' +is_abi3: +- true is_freethreading: -- 'false' +- false libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: -- '1.23' +- '2' pin_run_as_build: python: min_pin: x.x @@ -40,9 +40,9 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml b/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml deleted file mode 100644 index d8a4770..0000000 --- a/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml +++ /dev/null @@ -1,49 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- conda -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -mpfr: -- '4' -numpy: -- '1.21' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.8.* *_cpython -target_platform: -- linux-ppc64le -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml b/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml deleted file mode 100644 index 3070334..0000000 --- a/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml +++ /dev/null @@ -1,49 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- conda -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -mpfr: -- '4' -numpy: -- '1.22' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.9.* *_cpython -target_platform: -- linux-ppc64le -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml b/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml deleted file mode 100644 index 132fb92..0000000 --- a/.ci_support/linux_ppc64le_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml +++ /dev/null @@ -1,49 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- conda -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -mpfr: -- '4' -numpy: -- '1.26' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.12.* *_cpython -target_platform: -- linux-ppc64le -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/migrations/libflint31.yaml b/.ci_support/migrations/libflint31.yaml deleted file mode 100644 index 6448761..0000000 --- a/.ci_support/migrations/libflint31.yaml +++ /dev/null @@ -1,8 +0,0 @@ -__migrator: - build_number: 1 - commit_message: Rebuild for libflint 3.1 - kind: version - migration_number: 1 -libflint: -- '3.1' -migrator_ts: 1724552377.9154313 diff --git a/.ci_support/migrations/python313.yaml b/.ci_support/migrations/python314.yaml similarity index 56% rename from .ci_support/migrations/python313.yaml rename to .ci_support/migrations/python314.yaml index f9389e3..36ec6b4 100644 --- a/.ci_support/migrations/python313.yaml +++ b/.ci_support/migrations/python314.yaml @@ -1,26 +1,24 @@ +# this is intentionally sorted before the 3.13t migrator, because that determines +# the order of application of the migrators; otherwise we'd have to add values for +# is_freethreading and is_abi3 keys here, since that migration extends the zip; migrator_ts: 1724712607 __migrator: - commit_message: Rebuild for python 3.13 + commit_message: Rebuild for python 3.14 migration_number: 1 operation: key_add primary_key: python ordering: python: - - 3.6.* *_cpython - - 3.7.* *_cpython - - 3.8.* *_cpython - 3.9.* *_cpython - 3.10.* *_cpython - 3.11.* *_cpython - 3.12.* *_cpython - - 3.13.* *_cp313 # new entry - - 3.6.* *_73_pypy - - 3.7.* *_73_pypy - - 3.8.* *_73_pypy - - 3.9.* *_73_pypy + - 3.13.* *_cp313 + - 3.13.* *_cp313t + - 3.14.* *_cp314 # new entry paused: false longterm: true - pr_limit: 20 + pr_limit: 5 max_solver_attempts: 3 # this will make the bot retry "not solvable" stuff 12 times exclude: # this shouldn't attempt to modify the python feedstocks @@ -29,18 +27,17 @@ __migrator: - pypy-meta - cross-python - python_abi - # see https://github.com/conda-forge/scipy-feedstock/pull/283 - - scipy exclude_pinned_pkgs: false + ignored_deps_per_node: + matplotlib: + - pyqt additional_zip_keys: - channel_sources python: -- 3.13.* *_cp313 -channel_sources: -- conda-forge/label/python_rc,conda-forge +- 3.14.* *_cp314 # additional entries to add for zip_keys -numpy: -- 2 -python_impl: -- cpython +is_python_min: +- false +channel_sources: +- conda-forge,conda-forge/label/python_rc diff --git a/.ci_support/migrations/python314t.yaml b/.ci_support/migrations/python314t.yaml new file mode 100644 index 0000000..92f86a8 --- /dev/null +++ b/.ci_support/migrations/python314t.yaml @@ -0,0 +1,49 @@ +migrator_ts: 1755739493 +__migrator: + commit_message: Rebuild for python 3.14 freethreading + migration_number: 1 + operation: key_add + primary_key: python + ordering: + python: + - 3.9.* *_cpython + - 3.10.* *_cpython + - 3.11.* *_cpython + - 3.12.* *_cpython + - 3.13.* *_cp313 + - 3.13.* *_cp313t + - 3.14.* *_cp314 # new entry + - 3.14.* *_cp314t # new entry + paused: true + longterm: true + pr_limit: 20 + max_solver_attempts: 3 # this will make the bot retry "not solvable" stuff 12 times + exclude: + # this shouldn't attempt to modify the python feedstocks + - python + - pypy3.6 + - pypy-meta + - cross-python + - python_abi + exclude_pinned_pkgs: false + # if feedstock already has 3.13t migrator this is redundant, but harmless + additional_zip_keys: + - is_freethreading + - is_abi3 + wait_for_migrators: + - python314 + ignored_deps_per_node: + matplotlib: + - pyqt + +python: +- 3.14.* *_cp314t +# additional entries to add for zip_keys +is_freethreading: +- true +is_python_min: +- false +is_abi3: +- false +channel_sources: +- conda-forge,conda-forge/label/python_rc diff --git a/.ci_support/migrations/python38.yaml b/.ci_support/migrations/python38.yaml deleted file mode 100644 index 81b041f..0000000 --- a/.ci_support/migrations/python38.yaml +++ /dev/null @@ -1,43 +0,0 @@ -migrator_ts: 1666686084 -__migrator: - migration_number: 1 - operation: key_add - primary_key: python - ordering: - python: - - 3.6.* *_cpython - - 3.7.* *_cpython - - 3.8.* *_cpython - - 3.9.* *_cpython - - 3.10.* *_cpython - - 3.11.* *_cpython - - 3.12.* *_cpython - - 3.13.* *_cp313 - - 3.13.* *_cp313t - - 3.6.* *_73_pypy - - 3.7.* *_73_pypy - - 3.8.* *_73_pypy - - 3.9.* *_73_pypy - paused: false - longterm: True - pr_limit: 40 - use_local: True - max_solver_attempts: 10 # this will make the bot retry "not solvable" stuff 10 times - exclude: - # this shouldn't attempt to modify the python feedstocks - - python - - pypy3.6 - - pypy-meta - - cross-python - - python_abi - exclude_pinned_pkgs: false - -python: - - 3.8.* *_cpython -# additional entries to add for zip_keys -numpy: - - 1.21 -python_impl: - - cpython -is_python_min: - - False diff --git a/.ci_support/osx_64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml b/.ci_support/osx_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml similarity index 89% rename from .ci_support/osx_64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml rename to .ci_support/osx_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml index 0c73353..e62d080 100644 --- a/.ci_support/osx_64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml +++ b/.ci_support/osx_64_is_abi3falseis_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,13 +17,15 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' gmp: - '6' +is_abi3: +- false is_freethreading: -- 'false' +- true libflint: -- '3.1' +- '3.2' macos_machine: - x86_64-apple-darwin13.4.0 mpfr: @@ -35,16 +37,16 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.13.* *_cp313 +- 3.13.* *_cp313t target_platform: - osx-64 zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/osx_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml b/.ci_support/osx_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml similarity index 83% rename from .ci_support/osx_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml rename to .ci_support/osx_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml index 208d8df..f6c0a31 100644 --- a/.ci_support/osx_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml +++ b/.ci_support/osx_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml @@ -5,25 +5,27 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '18' +- '19' c_stdlib: - macosx_deployment_target c_stdlib_version: - '10.13' channel_sources: -- conda-forge/label/cython_dev,conda-forge +- conda-forge,conda-forge/label/python_rc channel_targets: - isuruf test cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' gmp: - '6' +is_abi3: +- false is_freethreading: -- 'true' +- true libflint: -- '3.1' +- '3.2' macos_machine: - x86_64-apple-darwin13.4.0 mpfr: @@ -35,16 +37,16 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.13.* *_cp313t +- 3.14.* *_cp314t target_platform: - osx-64 zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/osx_64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml b/.ci_support/osx_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml similarity index 90% rename from .ci_support/osx_64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml rename to .ci_support/osx_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml index daa4bcc..727a3a7 100644 --- a/.ci_support/osx_64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml +++ b/.ci_support/osx_64_is_abi3trueis_freethreadingfalsepython3.10.____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,19 +17,21 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' gmp: - '6' +is_abi3: +- true is_freethreading: -- 'false' +- false libflint: -- '3.1' +- '3.2' macos_machine: - x86_64-apple-darwin13.4.0 mpfr: - '4' numpy: -- '1.22' +- '2' pin_run_as_build: python: min_pin: x.x @@ -42,9 +44,9 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/osx_64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml b/.ci_support/osx_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml similarity index 90% rename from .ci_support/osx_64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml rename to .ci_support/osx_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml index efd1cd8..41b3452 100644 --- a/.ci_support/osx_64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml +++ b/.ci_support/osx_64_is_abi3trueis_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,19 +17,21 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' gmp: - '6' +is_abi3: +- true is_freethreading: -- 'false' +- false libflint: -- '3.1' +- '3.2' macos_machine: - x86_64-apple-darwin13.4.0 mpfr: - '4' numpy: -- '1.23' +- '2' pin_run_as_build: python: min_pin: x.x @@ -42,9 +44,9 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/osx_64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml b/.ci_support/osx_64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml deleted file mode 100644 index 55ddcd6..0000000 --- a/.ci_support/osx_64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml +++ /dev/null @@ -1,51 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '10.13' -MACOSX_SDK_VERSION: -- '10.15' -c_compiler: -- clang -c_compiler_version: -- '18' -c_stdlib: -- macosx_deployment_target -c_stdlib_version: -- '10.13' -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- clangxx -cxx_compiler_version: -- '18' -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -macos_machine: -- x86_64-apple-darwin13.4.0 -mpfr: -- '4' -numpy: -- '1.21' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.8.* *_cpython -target_platform: -- osx-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/osx_64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml b/.ci_support/osx_64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml deleted file mode 100644 index 4ff08f6..0000000 --- a/.ci_support/osx_64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml +++ /dev/null @@ -1,51 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '10.13' -MACOSX_SDK_VERSION: -- '10.15' -c_compiler: -- clang -c_compiler_version: -- '18' -c_stdlib: -- macosx_deployment_target -c_stdlib_version: -- '10.13' -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- clangxx -cxx_compiler_version: -- '18' -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -macos_machine: -- x86_64-apple-darwin13.4.0 -mpfr: -- '4' -numpy: -- '1.22' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.9.* *_cpython -target_platform: -- osx-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/osx_64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml b/.ci_support/osx_64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml deleted file mode 100644 index 48413c8..0000000 --- a/.ci_support/osx_64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml +++ /dev/null @@ -1,51 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '10.13' -MACOSX_SDK_VERSION: -- '10.15' -c_compiler: -- clang -c_compiler_version: -- '18' -c_stdlib: -- macosx_deployment_target -c_stdlib_version: -- '10.13' -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- clangxx -cxx_compiler_version: -- '18' -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -macos_machine: -- x86_64-apple-darwin13.4.0 -mpfr: -- '4' -numpy: -- '1.26' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.12.* *_cpython -target_platform: -- osx-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/osx_arm64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml b/.ci_support/osx_arm64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml similarity index 89% rename from .ci_support/osx_arm64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml rename to .ci_support/osx_arm64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml index 37c47c7..ca8061c 100644 --- a/.ci_support/osx_arm64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml +++ b/.ci_support/osx_arm64_is_abi3falseis_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,13 +17,15 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' gmp: - '6' +is_abi3: +- false is_freethreading: -- 'false' +- true libflint: -- '3.1' +- '3.2' macos_machine: - arm64-apple-darwin20.0.0 mpfr: @@ -35,16 +37,16 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.13.* *_cp313 +- 3.13.* *_cp313t target_platform: - osx-arm64 zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/osx_arm64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml b/.ci_support/osx_arm64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml similarity index 83% rename from .ci_support/osx_arm64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml rename to .ci_support/osx_arm64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml index df5c842..f786902 100644 --- a/.ci_support/osx_arm64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml +++ b/.ci_support/osx_arm64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml @@ -5,25 +5,27 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '18' +- '19' c_stdlib: - macosx_deployment_target c_stdlib_version: - '11.0' channel_sources: -- conda-forge/label/cython_dev,conda-forge +- conda-forge,conda-forge/label/python_rc channel_targets: - isuruf test cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' gmp: - '6' +is_abi3: +- false is_freethreading: -- 'true' +- true libflint: -- '3.1' +- '3.2' macos_machine: - arm64-apple-darwin20.0.0 mpfr: @@ -35,16 +37,16 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.13.* *_cp313t +- 3.14.* *_cp314t target_platform: - osx-arm64 zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/osx_arm64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml b/.ci_support/osx_arm64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml similarity index 90% rename from .ci_support/osx_arm64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml rename to .ci_support/osx_arm64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml index bfc45eb..717ecd3 100644 --- a/.ci_support/osx_arm64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml +++ b/.ci_support/osx_arm64_is_abi3trueis_freethreadingfalsepython3.10.____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,19 +17,21 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' gmp: - '6' +is_abi3: +- true is_freethreading: -- 'false' +- false libflint: -- '3.1' +- '3.2' macos_machine: - arm64-apple-darwin20.0.0 mpfr: - '4' numpy: -- '1.22' +- '2' pin_run_as_build: python: min_pin: x.x @@ -42,9 +44,9 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/osx_arm64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml b/.ci_support/osx_arm64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml similarity index 90% rename from .ci_support/osx_arm64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml rename to .ci_support/osx_arm64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml index 4188d2e..7bd49e3 100644 --- a/.ci_support/osx_arm64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml +++ b/.ci_support/osx_arm64_is_abi3trueis_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,19 +17,21 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '18' +- '19' gmp: - '6' +is_abi3: +- true is_freethreading: -- 'false' +- false libflint: -- '3.1' +- '3.2' macos_machine: - arm64-apple-darwin20.0.0 mpfr: - '4' numpy: -- '1.23' +- '2' pin_run_as_build: python: min_pin: x.x @@ -42,9 +44,9 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/osx_arm64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml b/.ci_support/osx_arm64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml deleted file mode 100644 index 76557e0..0000000 --- a/.ci_support/osx_arm64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml +++ /dev/null @@ -1,51 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' -MACOSX_SDK_VERSION: -- '11.0' -c_compiler: -- clang -c_compiler_version: -- '18' -c_stdlib: -- macosx_deployment_target -c_stdlib_version: -- '11.0' -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- clangxx -cxx_compiler_version: -- '18' -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -macos_machine: -- arm64-apple-darwin20.0.0 -mpfr: -- '4' -numpy: -- '1.21' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.8.* *_cpython -target_platform: -- osx-arm64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/osx_arm64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml b/.ci_support/osx_arm64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml deleted file mode 100644 index c08a58c..0000000 --- a/.ci_support/osx_arm64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml +++ /dev/null @@ -1,51 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' -MACOSX_SDK_VERSION: -- '11.0' -c_compiler: -- clang -c_compiler_version: -- '18' -c_stdlib: -- macosx_deployment_target -c_stdlib_version: -- '11.0' -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- clangxx -cxx_compiler_version: -- '18' -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -macos_machine: -- arm64-apple-darwin20.0.0 -mpfr: -- '4' -numpy: -- '1.22' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.9.* *_cpython -target_platform: -- osx-arm64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/osx_arm64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml b/.ci_support/osx_arm64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml deleted file mode 100644 index 8532201..0000000 --- a/.ci_support/osx_arm64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml +++ /dev/null @@ -1,51 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' -MACOSX_SDK_VERSION: -- '11.0' -c_compiler: -- clang -c_compiler_version: -- '18' -c_stdlib: -- macosx_deployment_target -c_stdlib_version: -- '11.0' -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- clangxx -cxx_compiler_version: -- '18' -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -macos_machine: -- arm64-apple-darwin20.0.0 -mpfr: -- '4' -numpy: -- '1.26' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.12.* *_cpython -target_platform: -- osx-arm64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/win_64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml b/.ci_support/win_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml similarity index 81% rename from .ci_support/win_64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml rename to .ci_support/win_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml index a7636a8..fe8e3bc 100644 --- a/.ci_support/win_64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml +++ b/.ci_support/win_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml @@ -1,5 +1,5 @@ c_compiler: -- vs2019 +- vs2022 c_stdlib: - vs channel_sources: @@ -7,13 +7,15 @@ channel_sources: channel_targets: - isuruf test cxx_compiler: -- vs2019 +- vs2022 gmp: - '6' +is_abi3: +- false is_freethreading: -- 'false' +- true libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: @@ -23,14 +25,14 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.13.* *_cp313 +- 3.13.* *_cp313t target_platform: - win-64 zip_keys: - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/win_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml b/.ci_support/win_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml similarity index 73% rename from .ci_support/win_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml rename to .ci_support/win_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml index 1b3990e..d48c85e 100644 --- a/.ci_support/win_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml +++ b/.ci_support/win_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml @@ -1,19 +1,21 @@ c_compiler: -- vs2019 +- vs2022 c_stdlib: - vs channel_sources: -- conda-forge/label/cython_dev,conda-forge +- conda-forge,conda-forge/label/python_rc channel_targets: - isuruf test cxx_compiler: -- vs2019 +- vs2022 gmp: - '6' +is_abi3: +- false is_freethreading: -- 'true' +- true libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: @@ -23,14 +25,14 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.13.* *_cp313t +- 3.14.* *_cp314t target_platform: - win-64 zip_keys: - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/win_64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml b/.ci_support/win_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml similarity index 84% rename from .ci_support/win_64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml rename to .ci_support/win_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml index fddfc4b..a159773 100644 --- a/.ci_support/win_64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml +++ b/.ci_support/win_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml @@ -1,5 +1,5 @@ c_compiler: -- vs2019 +- vs2022 c_stdlib: - vs channel_sources: @@ -7,17 +7,19 @@ channel_sources: channel_targets: - isuruf test cxx_compiler: -- vs2019 +- vs2022 gmp: - '6' +is_abi3: +- true is_freethreading: -- 'false' +- false libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: -- '1.22' +- '2' pin_run_as_build: python: min_pin: x.x @@ -28,9 +30,9 @@ target_platform: - win-64 zip_keys: - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/win_64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml b/.ci_support/win_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml similarity index 84% rename from .ci_support/win_64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml rename to .ci_support/win_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml index c739c61..1e4d36a 100644 --- a/.ci_support/win_64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml +++ b/.ci_support/win_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml @@ -1,5 +1,5 @@ c_compiler: -- vs2019 +- vs2022 c_stdlib: - vs channel_sources: @@ -7,17 +7,19 @@ channel_sources: channel_targets: - isuruf test cxx_compiler: -- vs2019 +- vs2022 gmp: - '6' +is_abi3: +- true is_freethreading: -- 'false' +- false libflint: -- '3.1' +- '3.2' mpfr: - '4' numpy: -- '1.23' +- '2' pin_run_as_build: python: min_pin: x.x @@ -28,9 +30,9 @@ target_platform: - win-64 zip_keys: - - python - - numpy - channel_sources - is_freethreading + - is_abi3 zlib: - '1' zstd: diff --git a/.ci_support/win_64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml b/.ci_support/win_64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml deleted file mode 100644 index 197c488..0000000 --- a/.ci_support/win_64_is_freethreadingfalsenumpy1.21python3.8.____cpython.yaml +++ /dev/null @@ -1,37 +0,0 @@ -c_compiler: -- vs2019 -c_stdlib: -- vs -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- vs2019 -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -mpfr: -- '4' -numpy: -- '1.21' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.8.* *_cpython -target_platform: -- win-64 -zip_keys: -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/win_64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml b/.ci_support/win_64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml deleted file mode 100644 index 4b3d9c5..0000000 --- a/.ci_support/win_64_is_freethreadingfalsenumpy1.22python3.9.____cpython.yaml +++ /dev/null @@ -1,37 +0,0 @@ -c_compiler: -- vs2019 -c_stdlib: -- vs -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- vs2019 -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -mpfr: -- '4' -numpy: -- '1.22' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.9.* *_cpython -target_platform: -- win-64 -zip_keys: -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/win_64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml b/.ci_support/win_64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml deleted file mode 100644 index 3cecc6d..0000000 --- a/.ci_support/win_64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml +++ /dev/null @@ -1,37 +0,0 @@ -c_compiler: -- vs2019 -c_stdlib: -- vs -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- vs2019 -gmp: -- '6' -is_freethreading: -- 'false' -libflint: -- '3.1' -mpfr: -- '4' -numpy: -- '1.26' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.12.* *_cpython -target_platform: -- win-64 -zip_keys: -- - python - - numpy - - channel_sources - - is_freethreading -zlib: -- '1' -zstd: -- '1.5' diff --git a/.gitattributes b/.gitattributes index 18f114a..85ccb8f 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/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index 944d9cb..624cbe5 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -21,201 +21,121 @@ jobs: fail-fast: false matrix: include: - - CONFIG: linux_64_is_freethreadingfalsenumpy1.21python3.8.____cpython + - CONFIG: linux_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t UPLOAD_PACKAGES: True os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_is_freethreadingfalsenumpy1.22python3.10.____cpython + - CONFIG: linux_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t UPLOAD_PACKAGES: True os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_is_freethreadingfalsenumpy1.22python3.9.____cpython + - CONFIG: linux_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython UPLOAD_PACKAGES: True os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_is_freethreadingfalsenumpy1.23python3.11.____cpython + - CONFIG: linux_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython UPLOAD_PACKAGES: True os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_is_freethreadingfalsenumpy1.26python3.12.____cpython - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_is_freethreadingfalsenumpy2python3.13.____cp313 - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_64_is_freethreadingtruenumpy2python3.13.____cp313t - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - CONFIG: linux_aarch64_is_freethreadingfalsenumpy1.21python3.8.____cpython - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_aarch64_is_freethreadingfalsenumpy1.22python3.10.____cpython - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_aarch64_is_freethreadingfalsenumpy1.22python3.9.____cpython - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_aarch64_is_freethreadingfalsenumpy1.23python3.11.____cpython - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_aarch64_is_freethreadingfalsenumpy1.26python3.12.____cpython - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_aarch64_is_freethreadingfalsenumpy2python3.13.____cp313 - UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_aarch64_is_freethreadingtruenumpy2python3.13.____cp313t + - CONFIG: linux_aarch64_is_abi3falseis_freethreadingtruepython3.13.____cp313t UPLOAD_PACKAGES: True os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_ppc64le_is_freethreadingfalsenumpy1.21python3.8.____cpython + - CONFIG: linux_aarch64_is_abi3falseis_freethreadingtruepython3.14.____cp314t UPLOAD_PACKAGES: True os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_ppc64le_is_freethreadingfalsenumpy1.22python3.10.____cpython + - CONFIG: linux_aarch64_is_abi3trueis_freethreadingfalsepython3.10.____cpython UPLOAD_PACKAGES: True os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_ppc64le_is_freethreadingfalsenumpy1.22python3.9.____cpython + - CONFIG: linux_aarch64_is_abi3trueis_freethreadingfalsepython3.11.____cpython UPLOAD_PACKAGES: True os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_ppc64le_is_freethreadingfalsenumpy1.23python3.11.____cpython + - CONFIG: linux_ppc64le_is_abi3falseis_freethreadingtruepython3.13.____cp313t UPLOAD_PACKAGES: True os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_ppc64le_is_freethreadingfalsenumpy1.26python3.12.____cpython + - CONFIG: linux_ppc64le_is_abi3falseis_freethreadingtruepython3.14.____cp314t UPLOAD_PACKAGES: True os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_ppc64le_is_freethreadingfalsenumpy2python3.13.____cp313 + - CONFIG: linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.10.____cpython UPLOAD_PACKAGES: True os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_ppc64le_is_freethreadingtruenumpy2python3.13.____cp313t + - CONFIG: linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.11.____cpython UPLOAD_PACKAGES: True os: ubuntu runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: osx_64_is_freethreadingfalsenumpy1.21python3.8.____cpython - UPLOAD_PACKAGES: True - os: macos - runs_on: ['macos-13'] - - CONFIG: osx_64_is_freethreadingfalsenumpy1.22python3.10.____cpython - UPLOAD_PACKAGES: True - os: macos - runs_on: ['macos-13'] - - CONFIG: osx_64_is_freethreadingfalsenumpy1.22python3.9.____cpython + - CONFIG: osx_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t UPLOAD_PACKAGES: True os: macos runs_on: ['macos-13'] - - CONFIG: osx_64_is_freethreadingfalsenumpy1.23python3.11.____cpython + - CONFIG: osx_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t UPLOAD_PACKAGES: True os: macos runs_on: ['macos-13'] - - CONFIG: osx_64_is_freethreadingfalsenumpy1.26python3.12.____cpython + - CONFIG: osx_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython UPLOAD_PACKAGES: True os: macos runs_on: ['macos-13'] - - CONFIG: osx_64_is_freethreadingfalsenumpy2python3.13.____cp313 + - CONFIG: osx_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython UPLOAD_PACKAGES: True os: macos runs_on: ['macos-13'] - - CONFIG: osx_64_is_freethreadingtruenumpy2python3.13.____cp313t + - CONFIG: osx_arm64_is_abi3falseis_freethreadingtruepython3.13.____cp313t UPLOAD_PACKAGES: True os: macos runs_on: ['macos-13'] - - CONFIG: osx_arm64_is_freethreadingfalsenumpy1.21python3.8.____cpython + - CONFIG: osx_arm64_is_abi3falseis_freethreadingtruepython3.14.____cp314t UPLOAD_PACKAGES: True os: macos runs_on: ['macos-13'] - - CONFIG: osx_arm64_is_freethreadingfalsenumpy1.22python3.10.____cpython + - CONFIG: osx_arm64_is_abi3trueis_freethreadingfalsepython3.10.____cpython UPLOAD_PACKAGES: True os: macos runs_on: ['macos-13'] - - CONFIG: osx_arm64_is_freethreadingfalsenumpy1.22python3.9.____cpython + - CONFIG: osx_arm64_is_abi3trueis_freethreadingfalsepython3.11.____cpython UPLOAD_PACKAGES: True os: macos runs_on: ['macos-13'] - - CONFIG: osx_arm64_is_freethreadingfalsenumpy1.23python3.11.____cpython - UPLOAD_PACKAGES: True - os: macos - runs_on: ['macos-13'] - - CONFIG: osx_arm64_is_freethreadingfalsenumpy1.26python3.12.____cpython - UPLOAD_PACKAGES: True - os: macos - runs_on: ['macos-13'] - - CONFIG: osx_arm64_is_freethreadingfalsenumpy2python3.13.____cp313 - UPLOAD_PACKAGES: True - os: macos - runs_on: ['macos-13'] - - CONFIG: osx_arm64_is_freethreadingtruenumpy2python3.13.____cp313t - UPLOAD_PACKAGES: True - os: macos - runs_on: ['macos-13'] - - CONFIG: win_64_is_freethreadingfalsenumpy1.21python3.8.____cpython - UPLOAD_PACKAGES: True - os: windows - runs_on: ['windows-latest'] - - CONFIG: win_64_is_freethreadingfalsenumpy1.22python3.10.____cpython - UPLOAD_PACKAGES: True - os: windows - runs_on: ['windows-latest'] - - CONFIG: win_64_is_freethreadingfalsenumpy1.22python3.9.____cpython - UPLOAD_PACKAGES: True - os: windows - runs_on: ['windows-latest'] - - CONFIG: win_64_is_freethreadingfalsenumpy1.23python3.11.____cpython + - CONFIG: win_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t UPLOAD_PACKAGES: True os: windows runs_on: ['windows-latest'] - - CONFIG: win_64_is_freethreadingfalsenumpy1.26python3.12.____cpython + - CONFIG: win_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t UPLOAD_PACKAGES: True os: windows runs_on: ['windows-latest'] - - CONFIG: win_64_is_freethreadingfalsenumpy2python3.13.____cp313 + - CONFIG: win_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython UPLOAD_PACKAGES: True os: windows runs_on: ['windows-latest'] - - CONFIG: win_64_is_freethreadingtruenumpy2python3.13.____cp313t + - CONFIG: win_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython UPLOAD_PACKAGES: True os: windows runs_on: ['windows-latest'] steps: - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Build on Linux + id: build-linux if: matrix.os == 'ubuntu' env: CONFIG: ${{ matrix.CONFIG }} @@ -226,8 +146,10 @@ jobs: BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} shell: bash run: | - echo "::group::Configure binfmt_misc" - docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + if [[ "$(uname -m)" == "x86_64" ]]; then + echo "::group::Configure binfmt_misc" + docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + fi export flow_run_id="github_$GITHUB_RUN_ID" export remote_url="https://github.com/$GITHUB_REPOSITORY" export sha="$GITHUB_SHA" @@ -242,6 +164,7 @@ jobs: ./.scripts/run_docker_build.sh - name: Build on macOS + id: build-macos if: matrix.os == 'macos' env: CONFIG: ${{ matrix.CONFIG }} @@ -263,6 +186,8 @@ jobs: ./.scripts/run_osx_build.sh - name: Build on windows + id: build-windows + if: matrix.os == 'windows' shell: cmd run: | set "flow_run_id=github_%GITHUB_RUN_ID%" @@ -270,13 +195,15 @@ jobs: set "sha=%GITHUB_SHA%" call ".scripts\run_win_build.bat" env: + # default value; make it explicit, as it needs to match with artefact + # generation below. Not configurable for now, can be revisited later + CONDA_BLD_DIR: C:\bld MINIFORGE_HOME: D:\Miniforge PYTHONUNBUFFERED: 1 CONFIG: ${{ matrix.CONFIG }} CI: github_actions UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} - if: matrix.os == 'windows' - name: Upload artifacts to Github uses: actions/upload-artifact@v4 diff --git a/.gitignore b/.gitignore index bb38536..47b5408 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,5 @@ # Rattler-build's artifacts are in `output` when not specifying anything. /output +# Pixi's configuration +.pixi diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 352d052..6fda384 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -92,4 +92,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 a16e7e7..4d73606 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -12,7 +12,7 @@ source .scripts/logging_utils.sh set -xeo pipefail THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" -PROVIDER_DIR="$(basename $THISDIR)" +PROVIDER_DIR="$(basename "$THISDIR")" FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )" RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" @@ -109,4 +109,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 8b83147..07f28c3 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -112,4 +112,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 f270dfb..55cb028 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -25,7 +25,7 @@ set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" echo Downloading micromamba %MICROMAMBA_VERSION% if not exist "%MICROMAMBA_TMPDIR%" mkdir "%MICROMAMBA_TMPDIR%" -certutil -urlcache -split -f "%MICROMAMBA_URL%" "%MICROMAMBA_EXE%" +powershell -ExecutionPolicy Bypass -Command "(New-Object Net.WebClient).DownloadFile('%MICROMAMBA_URL%', '%MICROMAMBA_EXE%')" if !errorlevel! neq 0 exit /b !errorlevel! echo Creating environment @@ -144,4 +144,4 @@ if /i "%CI%" == "azure" ( echo ##[endgroup] exit /b ) -exit /b \ No newline at end of file +exit /b diff --git a/build-locally.py b/build-locally.py index c4a56c6..9dfe440 100755 --- a/build-locally.py +++ b/build-locally.py @@ -10,6 +10,7 @@ import os import platform import subprocess +import sys from argparse import ArgumentParser @@ -44,10 +45,19 @@ def run_osx_build(ns): subprocess.check_call([script]) +def run_win_build(ns): + script = ".scripts/run_win_build.bat" + subprocess.check_call(["cmd", "/D", "/Q", "/C", f"CALL {script}"]) + + def verify_config(ns): + choices_filter = ns.filter or "*" valid_configs = { - os.path.basename(f)[:-5] for f in glob.glob(".ci_support/*.yaml") + os.path.basename(f)[:-5] + for f in glob.glob(f".ci_support/{choices_filter}.yaml") } + if choices_filter != "*": + print(f"filtering for '{choices_filter}.yaml' configs") print(f"valid configs are {valid_configs}") if ns.config in valid_configs: print("Using " + ns.config + " configuration") @@ -60,38 +70,43 @@ def verify_config(ns): selections = list(enumerate(sorted(valid_configs), 1)) for i, c in selections: print(f"{i}. {c}") - s = input("\n> ") + try: + s = input("\n> ") + except KeyboardInterrupt: + print("\nno option selected, bye!", file=sys.stderr) + sys.exit(1) idx = int(s) - 1 ns.config = selections[idx][1] print(f"selected {ns.config}") else: raise ValueError("config " + ns.config + " is not valid") - # Remove the following, as implemented - if ns.config.startswith("win"): - raise ValueError( - f"only Linux/macOS configs currently supported, got {ns.config}" + if ( + ns.config.startswith("osx") + and platform.system() == "Darwin" + and not os.environ.get("OSX_SDK_DIR") + ): + raise RuntimeError( + "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=$PWD/SDKs' " + "to download the SDK automatically to '$PWD/SDKs/MacOSX.sdk'. " + "Note: OSX_SDK_DIR must be set to an absolute path. " + "Setting this variable implies agreement to the licensing terms of the SDK by Apple." ) - elif ns.config.startswith("osx"): - if "OSX_SDK_DIR" not in os.environ: - raise RuntimeError( - "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=$PWD/SDKs' " - "to download the SDK automatically to '$PWD/SDKs/MacOSX.sdk'. " - "Note: OSX_SDK_DIR must be set to an absolute path. " - "Setting this variable implies agreement to the licensing terms of the SDK by Apple." - ) def main(args=None): p = ArgumentParser("build-locally") p.add_argument("config", default=None, nargs="?") + p.add_argument( + "--filter", + default=None, + help="Glob string to filter which build choices are presented in interactive mode.", + ) p.add_argument( "--debug", action="store_true", help="Setup debug environment using `conda debug`", ) - p.add_argument( - "--output-id", help="If running debug, specify the output to setup." - ) + p.add_argument("--output-id", help="If running debug, specify the output to setup.") ns = p.parse_args(args=args) verify_config(ns) @@ -104,10 +119,10 @@ def main(args=None): run_docker_build(ns) elif ns.config.startswith("osx"): run_osx_build(ns) + elif ns.config.startswith("win"): + run_win_build(ns) finally: - recipe_license_file = os.path.join( - "recipe", "recipe-scripts-license.txt" - ) + recipe_license_file = os.path.join("recipe", "recipe-scripts-license.txt") if os.path.exists(recipe_license_file): os.remove(recipe_license_file) diff --git a/down_them_all.sh b/down_them_all.sh index e5c4a79..53b189a 100755 --- a/down_them_all.sh +++ b/down_them_all.sh @@ -11,44 +11,28 @@ if [[ "$1" == "" ]]; then exit 1 fi -declare -a arr=( - "-cp39-cp39-macosx_10_13_x86_64.whl" - "-cp310-cp310-macosx_10_13_x86_64.whl" - "-cp311-cp311-macosx_10_13_x86_64.whl" - "-cp312-cp312-macosx_10_13_x86_64.whl" - "-cp313-cp313-macosx_10_13_x86_64.whl" - "-cp313-cp313t-macosx_10_13_x86_64.whl" - "-cp39-cp39-macosx_11_0_arm64.whl" - "-cp310-cp310-macosx_11_0_arm64.whl" - "-cp311-cp311-macosx_11_0_arm64.whl" - "-cp312-cp312-macosx_11_0_arm64.whl" - "-cp313-cp313-macosx_11_0_arm64.whl" - "-cp313-cp313t-macosx_11_0_arm64.whl" - "-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" - "-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" - "-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" - "-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" - "-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" - "-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" - "-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" - "-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" - "-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" - "-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" - "-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" - "-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" - "-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" - "-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" - "-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" - "-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" - "-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" - "-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" - "-cp39-cp39-win_amd64.whl" - "-cp310-cp310-win_amd64.whl" - "-cp311-cp311-win_amd64.whl" - "-cp312-cp312-win_amd64.whl" - "-cp313-cp313-win_amd64.whl" - ".tar.gz") -for whl_file in "${arr[@]}" + +declare -a wheel_abis=( + "cp39-cp39" + "cp310-cp310" + "cp311-abi3" + "cp313-cp313t" + "cp314-cp314t") + +declare -a wheel_platforms=( + "macosx_10_13_x86_64" + "macosx_11_0_arm64" + "manylinux_2_17_x86_64.manylinux2014_x86_64" + "manylinux_2_17_aarch64.manylinux2014_aarch64" + "manylinux_2_17_ppc64le.manylinux2014_ppc64le" + "win_amd64") + +for abi in "${wheel_abis[@]}" do - curl -L -O https://github.com/symengine/symengine-wheels/releases/download/v${version}${version_post}/symengine-${version}${whl_file}; + for platform in "${wheel_platforms[@]}" + do + curl -L -O https://github.com/symengine/symengine-wheels/releases/download/v${version}${version_post}/symengine-${version}-${abi}-${platform}.whl; + done done + +curl -L -O https://github.com/symengine/symengine-wheels/releases/download/v${version}${version_post}/symengine-${version}.tar.gz; diff --git a/recipe/abi3.diff b/recipe/abi3.diff new file mode 100644 index 0000000..f138090 --- /dev/null +++ b/recipe/abi3.diff @@ -0,0 +1,170 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e83c95b..cc990c4 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -23,6 +23,7 @@ set(CMAKE_CXX_FLAGS_DEBUG ${SYMENGINE_CXX_FLAGS_DEBUG}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SYMENGINE_CXX_FLAGS}") + include_directories(${SYMENGINE_INCLUDE_DIRS}) + ++set(WITH_PY_LIMITED_API OFF CACHE STRING "Use CPython's limited API") + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") + find_package(Python REQUIRED) + find_package(Cython REQUIRED) +diff --git a/cmake/FindCython.cmake b/cmake/FindCython.cmake +index beac6c5..e35d44b 100644 +--- a/cmake/FindCython.cmake ++++ b/cmake/FindCython.cmake +@@ -24,6 +24,19 @@ IF (CYTHON_BIN) + else (CYTHON_RESULT EQUAL 0) + SET(Cython_Compilation_Failed TRUE) + endif (CYTHON_RESULT EQUAL 0) ++ execute_process( ++ COMMAND ${CYTHON_BIN} --version ++ RESULT_VARIABLE CYTHON_VERSION_RESULT ++ OUTPUT_VARIABLE CYTHON_VERSION_OUTPUT ++ ERROR_VARIABLE CYTHON_VERSION_ERROR ++ ) ++ if (CYTHON_VERSION_RESULT EQUAL 0) ++ string(STRIP ${CYTHON_VERSION_OUTPUT} CYTHON_VERSION_OUTPUT) ++ if ("${CYTHON_VERSION_OUTPUT}" MATCHES "Cython version") ++ string(SUBSTRING "${CYTHON_VERSION_OUTPUT}" 15 -1 CYTHON_VERSION) ++ endif () ++ endif () ++ message(STATUS "Cython version: ${CYTHON_VERSION}") + ENDIF (CYTHON_BIN) + + +@@ -31,6 +44,11 @@ IF (Cython_FOUND) + IF (NOT Cython_FIND_QUIETLY) + MESSAGE(STATUS "Found CYTHON: ${CYTHON_BIN}") + ENDIF (NOT Cython_FIND_QUIETLY) ++ IF (WITH_PY_LIMITED_API AND "${CYTHON_VERSION}" VERSION_LESS "3.1") ++ MESSAGE(FATAL_ERROR ++ "Your Cython version (${CYTHON_VERSION}) is too old. Please upgrade Cython to 3.1 or newer." ++ ) ++ ENDIF () + ELSE (Cython_FOUND) + IF (Cython_FIND_REQUIRED) + if(Cython_Compilation_Failed) +diff --git a/cmake/FindPython.cmake b/cmake/FindPython.cmake +index c1f6c43..7ed8287 100644 +--- a/cmake/FindPython.cmake ++++ b/cmake/FindPython.cmake +@@ -48,15 +48,17 @@ if ("${PY_GIL_DISABLED}" STREQUAL "True") + endif() + + if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") +- FIND_LIBRARY(PYTHON_LIBRARY NAMES +- python${PYTHON_VERSION}${PY_THREAD} +- python${PYTHON_VERSION}m +- python${PYTHON_VERSION_WITHOUT_DOTS}${PY_THREAD} +- PATHS ${PYTHON_LIB_PATH} ${PYTHON_PREFIX_PATH}/lib ${PYTHON_PREFIX_PATH}/libs +- PATH_SUFFIXES ${CMAKE_LIBRARY_ARCHITECTURE} +- NO_DEFAULT_PATH +- NO_SYSTEM_ENVIRONMENT_PATH +- ) ++ if (WITH_PY_LIMITED_API) ++ set(PYTHON_LIBRARY_NAMES python3) ++ else() ++ set(PYTHON_LIBRARY_NAMES python${PYTHON_VERSION}${PY_THREAD} python${PYTHON_VERSION}m python${PYTHON_VERSION_WITHOUT_DOTS}${PY_THREAD}) ++ endif() ++ FIND_LIBRARY(PYTHON_LIBRARY NAMES ${PYTHON_LIBRARY_NAMES} ++ PATHS ${PYTHON_LIB_PATH} ${PYTHON_PREFIX_PATH}/lib ${PYTHON_PREFIX_PATH}/libs ++ PATH_SUFFIXES ${CMAKE_LIBRARY_ARCHITECTURE} ++ NO_DEFAULT_PATH ++ NO_SYSTEM_ENVIRONMENT_PATH ++ ) + endif() + + execute_process( +@@ -74,6 +76,14 @@ execute_process( + ) + string(STRIP ${PYTHON_EXTENSION_SOABI_tmp} PYTHON_EXTENSION_SOABI_tmp) + ++if (WITH_PY_LIMITED_API) ++ if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") ++ set(PYTHON_EXTENSION_SOABI_tmp "") ++ else() ++ set(PYTHON_EXTENSION_SOABI_tmp ".abi3") ++ endif() ++endif() ++ + set(PYTHON_EXTENSION_SOABI ${PYTHON_EXTENSION_SOABI_tmp} + CACHE STRING "Suffix for python extensions") + +@@ -143,5 +153,12 @@ macro(ADD_PYTHON_LIBRARY name) + target_compile_definitions(${name} PRIVATE Py_GIL_DISABLED=1) + ENDIF() + ENDIF() +- ++ IF(WITH_PY_LIMITED_API) ++ target_compile_definitions( ++ ${name} ++ PRIVATE ++ Py_LIMITED_API=${WITH_PY_LIMITED_API} ++ CYTHON_LIMITED_API=1 ++ ) ++ ENDIF() + endmacro(ADD_PYTHON_LIBRARY) +diff --git a/setup.py b/setup.py +index 23d948e..b0eb020 100644 +--- a/setup.py ++++ b/setup.py +@@ -10,6 +10,18 @@ if sys.version_info[:2] < (3, 9): + "Python %d.%d detected" % sys.version_info[:2]) + sys.exit(-1) + ++def _get_limited_api(): ++ value = os.environ.get("SYMENGINE_PY_LIMITED_API") ++ if not value: ++ return None ++ else: ++ version = tuple(map(int, value.split("."))) ++ if version < (3, 11): ++ raise ValueError(f"symengine needs at least python 3.11 limited API support. Got {value}") ++ return version ++ ++limited_api = _get_limited_api() ++ + # use setuptools by default as per the official advice at: + # packaging.python.org/en/latest/current.html#packaging-tool-recommendations + use_setuptools = True +@@ -65,6 +77,7 @@ global_user_options = [ + ('build-type=', None, 'build type: Release or Debug'), + ('define=', 'D', + 'options to cmake :='), ++ ('py-limited-api=', None, 'Use Py_LIMITED_API with given version.'), + ] + + def _process_define(arg): +@@ -122,6 +135,11 @@ class BuildExtWithCmake(_build_ext): + cmake_cmd.extend(process_opts(cmake_opts)) + if not path.exists(path.join(build_dir, "CMakeCache.txt")): + cmake_cmd.extend(self.get_generator()) ++ ++ if limited_api: ++ h = limited_api[0] * 16**6 + limited_api[1] * 16**4 ++ cmake_cmd.append(f"-DWITH_PY_LIMITED_API={h}") ++ + if subprocess.call(cmake_cmd, cwd=build_dir) != 0: + raise OSError("error calling cmake") + +@@ -202,11 +220,17 @@ cmdclass={ + } + + try: +- from wheel.bdist_wheel import bdist_wheel ++ try: ++ from setuptools.command.bdist_wheel import bdist_wheel ++ except ImportError: ++ from wheel.bdist_wheel import bdist_wheel ++ + class BdistWheelWithCmake(bdist_wheel): + def finalize_options(self): + bdist_wheel.finalize_options(self) + self.root_is_pure = False ++ if limited_api: ++ self.py_limited_api = "cp" + "".join(str(c) for c in limited_api) + cmdclass["bdist_wheel"] = BdistWheelWithCmake + except ImportError: + pass diff --git a/recipe/meta.yaml b/recipe/meta.yaml index b407c51..7cec9fd 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -9,6 +9,8 @@ source: - url: https://github.com/symengine/symengine.py/releases/download/v{{ version }}/symengine.py-{{ version }}.tar.gz sha256: 3e79d39af5e9f024cd4b8d1372314ac2b83cace7d49cdbad482b4aec5b04c37b folder: python + patches: + - abi3.diff - url: https://github.com/symengine/symengine/releases/download/v{{ cxx_version }}/symengine-{{ cxx_version }}.tar.gz sha256: 11c5f64e9eec998152437f288b8429ec001168277d55f3f5f1df78e3cf129707 @@ -16,7 +18,10 @@ source: build: number: 0 - skip: true # [py<=38] + skip: true # [py<=38 or (is_abi3 and py>311)] + python_version_independent: true # [is_abi3 and py>=311] + script_env: + - SYMENGINE_PY_LIMITED_API=3.11 # [is_abi3 and py>=311] ignore_run_exports_from: - gmp - mpfr @@ -57,6 +62,7 @@ requirements: # for llvm - zstd - python + - python-abi3 # [is_abi3 and py>=311] - setuptools - cython >=0.29.24 # [build_platform == target_platform] - pip @@ -70,6 +76,10 @@ test: - pytest - sympy - numpy # [not is_freethreading] + - abi3audit # [is_abi3 and py>=311] + commands: + - abi3audit ${SP_DIR}/symengine/lib/symengine_wrapper.abi3.so -s -v --assume-minimum-abi3 3.11 # [unix and is_abi3 and py>=311] + - abi3audit %SP_DIR%/symengine/lib/symengine_wrapper.pyd -s -v --assume-minimum-abi3 3.11 # [win and is_abi3 and py>=311] about: home: https://github.com/symengine/symengine.py