diff --git a/.ci_support/linux_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml b/.ci_support/linux_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml index 6ea1464..ef48698 100644 --- a/.ci_support/linux_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml +++ b/.ci_support/linux_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '14' +- '15' c_stdlib: - sysroot c_stdlib_version: @@ -13,9 +13,9 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '14' +- '15' docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 +- quay.io/condaforge/linux-anvil-x86_64:alma10 gmp: - '6' is_abi3: @@ -23,7 +23,7 @@ is_abi3: is_freethreading: - true libflint: -- '3.2' +- '3.5' mpfr: - '4' numpy: @@ -40,7 +40,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/linux_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml b/.ci_support/linux_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml index 85350a5..0013d23 100644 --- a/.ci_support/linux_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml +++ b/.ci_support/linux_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml @@ -1,21 +1,21 @@ c_compiler: - gcc c_compiler_version: -- '14' +- '15' c_stdlib: - sysroot c_stdlib_version: - '2.17' channel_sources: -- conda-forge,conda-forge/label/python_rc +- conda-forge channel_targets: - isuruf test cxx_compiler: - gxx cxx_compiler_version: -- '14' +- '15' docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 +- quay.io/condaforge/linux-anvil-x86_64:alma10 gmp: - '6' is_abi3: @@ -23,7 +23,7 @@ is_abi3: is_freethreading: - true libflint: -- '3.2' +- '3.5' mpfr: - '4' numpy: @@ -40,7 +40,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/linux_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml b/.ci_support/linux_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml deleted file mode 100644 index 8a7c780..0000000 --- a/.ci_support/linux_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml +++ /dev/null @@ -1,49 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '14' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 -gmp: -- '6' -is_abi3: -- true -is_freethreading: -- false -libflint: -- '3.2' -mpfr: -- '4' -numpy: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -target_platform: -- linux-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - channel_sources - - is_freethreading - - is_abi3 -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/linux_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml index 3c03014..7717555 100644 --- a/.ci_support/linux_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml +++ b/.ci_support/linux_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '14' +- '15' c_stdlib: - sysroot c_stdlib_version: @@ -13,9 +13,9 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '14' +- '15' docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 +- quay.io/condaforge/linux-anvil-x86_64:alma10 gmp: - '6' is_abi3: @@ -23,7 +23,7 @@ is_abi3: is_freethreading: - false libflint: -- '3.2' +- '3.5' mpfr: - '4' numpy: @@ -40,7 +40,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/linux_aarch64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml b/.ci_support/linux_aarch64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml index 4beac37..bf374ac 100644 --- a/.ci_support/linux_aarch64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml +++ b/.ci_support/linux_aarch64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '14' +- '15' c_stdlib: - sysroot c_stdlib_version: @@ -13,7 +13,7 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '14' +- '15' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 gmp: @@ -23,7 +23,7 @@ is_abi3: is_freethreading: - true libflint: -- '3.2' +- '3.5' mpfr: - '4' numpy: @@ -40,7 +40,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/linux_aarch64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml b/.ci_support/linux_aarch64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml index c03cc6e..ff4cb78 100644 --- a/.ci_support/linux_aarch64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml +++ b/.ci_support/linux_aarch64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml @@ -1,19 +1,19 @@ c_compiler: - gcc c_compiler_version: -- '14' +- '15' c_stdlib: - sysroot c_stdlib_version: - '2.17' channel_sources: -- conda-forge,conda-forge/label/python_rc +- conda-forge channel_targets: - isuruf test cxx_compiler: - gxx cxx_compiler_version: -- '14' +- '15' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 gmp: @@ -23,7 +23,7 @@ is_abi3: is_freethreading: - true libflint: -- '3.2' +- '3.5' mpfr: - '4' numpy: @@ -40,7 +40,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/linux_aarch64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml b/.ci_support/linux_aarch64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml deleted file mode 100644 index 54aaa6c..0000000 --- a/.ci_support/linux_aarch64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml +++ /dev/null @@ -1,49 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '14' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -gmp: -- '6' -is_abi3: -- true -is_freethreading: -- false -libflint: -- '3.2' -mpfr: -- '4' -numpy: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -target_platform: -- linux-aarch64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - channel_sources - - is_freethreading - - is_abi3 -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_aarch64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/linux_aarch64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml index 14509ca..d373839 100644 --- a/.ci_support/linux_aarch64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml +++ b/.ci_support/linux_aarch64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '14' +- '15' c_stdlib: - sysroot c_stdlib_version: @@ -13,7 +13,7 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '14' +- '15' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 gmp: @@ -23,7 +23,7 @@ is_abi3: is_freethreading: - false libflint: -- '3.2' +- '3.5' mpfr: - '4' numpy: @@ -40,7 +40,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/linux_ppc64le_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml b/.ci_support/linux_ppc64le_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml index eb6ba5e..6a8006a 100644 --- a/.ci_support/linux_ppc64le_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml +++ b/.ci_support/linux_ppc64le_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '14' +- '15' c_stdlib: - sysroot c_stdlib_version: @@ -13,7 +13,7 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '14' +- '15' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 gmp: @@ -23,7 +23,7 @@ is_abi3: is_freethreading: - true libflint: -- '3.2' +- '3.5' mpfr: - '4' numpy: @@ -40,7 +40,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/linux_ppc64le_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml b/.ci_support/linux_ppc64le_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml index 1fa2043..817a40e 100644 --- a/.ci_support/linux_ppc64le_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml +++ b/.ci_support/linux_ppc64le_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml @@ -1,19 +1,19 @@ c_compiler: - gcc c_compiler_version: -- '14' +- '15' c_stdlib: - sysroot c_stdlib_version: - '2.17' channel_sources: -- conda-forge,conda-forge/label/python_rc +- conda-forge channel_targets: - isuruf test cxx_compiler: - gxx cxx_compiler_version: -- '14' +- '15' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 gmp: @@ -23,7 +23,7 @@ is_abi3: is_freethreading: - true libflint: -- '3.2' +- '3.5' mpfr: - '4' numpy: @@ -40,7 +40,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml b/.ci_support/linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml deleted file mode 100644 index 86be016..0000000 --- a/.ci_support/linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml +++ /dev/null @@ -1,49 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '14' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- gxx -cxx_compiler_version: -- '14' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -gmp: -- '6' -is_abi3: -- true -is_freethreading: -- false -libflint: -- '3.2' -mpfr: -- '4' -numpy: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -target_platform: -- linux-ppc64le -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - channel_sources - - is_freethreading - - is_abi3 -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml index cfa0c2d..8a738c1 100644 --- a/.ci_support/linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml +++ b/.ci_support/linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '14' +- '15' c_stdlib: - sysroot c_stdlib_version: @@ -13,7 +13,7 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '14' +- '15' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 gmp: @@ -23,7 +23,7 @@ is_abi3: is_freethreading: - false libflint: -- '3.2' +- '3.5' mpfr: - '4' numpy: @@ -40,7 +40,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/osx_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml b/.ci_support/osx_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml index e62d080..6a631ce 100644 --- a/.ci_support/osx_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml +++ b/.ci_support/osx_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml @@ -1,15 +1,15 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.13' +- '11.0' MACOSX_SDK_VERSION: -- '10.15' +- '11.0' c_compiler: - clang c_compiler_version: -- '19' +- '21' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.13' +- '11.0' channel_sources: - conda-forge channel_targets: @@ -17,7 +17,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '19' +- '21' gmp: - '6' is_abi3: @@ -25,7 +25,7 @@ is_abi3: is_freethreading: - true libflint: -- '3.2' +- '3.5' macos_machine: - x86_64-apple-darwin13.4.0 mpfr: @@ -44,7 +44,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/osx_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml b/.ci_support/osx_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml index f6c0a31..71a2af2 100644 --- a/.ci_support/osx_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml +++ b/.ci_support/osx_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml @@ -1,23 +1,23 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.13' +- '11.0' MACOSX_SDK_VERSION: -- '10.15' +- '11.0' c_compiler: - clang c_compiler_version: -- '19' +- '21' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.13' +- '11.0' channel_sources: -- conda-forge,conda-forge/label/python_rc +- conda-forge channel_targets: - isuruf test cxx_compiler: - clangxx cxx_compiler_version: -- '19' +- '21' gmp: - '6' is_abi3: @@ -25,7 +25,7 @@ is_abi3: is_freethreading: - true libflint: -- '3.2' +- '3.5' macos_machine: - x86_64-apple-darwin13.4.0 mpfr: @@ -44,7 +44,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/osx_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml b/.ci_support/osx_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml deleted file mode 100644 index 727a3a7..0000000 --- a/.ci_support/osx_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml +++ /dev/null @@ -1,53 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '10.13' -MACOSX_SDK_VERSION: -- '10.15' -c_compiler: -- clang -c_compiler_version: -- '19' -c_stdlib: -- macosx_deployment_target -c_stdlib_version: -- '10.13' -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- clangxx -cxx_compiler_version: -- '19' -gmp: -- '6' -is_abi3: -- true -is_freethreading: -- false -libflint: -- '3.2' -macos_machine: -- x86_64-apple-darwin13.4.0 -mpfr: -- '4' -numpy: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -target_platform: -- osx-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - channel_sources - - is_freethreading - - is_abi3 -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/osx_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/osx_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml index 41b3452..4d7ac79 100644 --- a/.ci_support/osx_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml +++ b/.ci_support/osx_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml @@ -1,15 +1,15 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.13' +- '11.0' MACOSX_SDK_VERSION: -- '10.15' +- '11.0' c_compiler: - clang c_compiler_version: -- '19' +- '21' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.13' +- '11.0' channel_sources: - conda-forge channel_targets: @@ -17,7 +17,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '19' +- '21' gmp: - '6' is_abi3: @@ -25,7 +25,7 @@ is_abi3: is_freethreading: - false libflint: -- '3.2' +- '3.5' macos_machine: - x86_64-apple-darwin13.4.0 mpfr: @@ -44,7 +44,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/osx_arm64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml b/.ci_support/osx_arm64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml index ca8061c..e719c69 100644 --- a/.ci_support/osx_arm64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.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: -- '19' +- '21' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '19' +- '21' gmp: - '6' is_abi3: @@ -25,7 +25,7 @@ is_abi3: is_freethreading: - true libflint: -- '3.2' +- '3.5' macos_machine: - arm64-apple-darwin20.0.0 mpfr: @@ -44,7 +44,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/osx_arm64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml b/.ci_support/osx_arm64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml index f786902..05eb4b6 100644 --- a/.ci_support/osx_arm64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml +++ b/.ci_support/osx_arm64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml @@ -5,19 +5,19 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '19' +- '21' c_stdlib: - macosx_deployment_target c_stdlib_version: - '11.0' channel_sources: -- conda-forge,conda-forge/label/python_rc +- conda-forge channel_targets: - isuruf test cxx_compiler: - clangxx cxx_compiler_version: -- '19' +- '21' gmp: - '6' is_abi3: @@ -25,7 +25,7 @@ is_abi3: is_freethreading: - true libflint: -- '3.2' +- '3.5' macos_machine: - arm64-apple-darwin20.0.0 mpfr: @@ -44,7 +44,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/osx_arm64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml b/.ci_support/osx_arm64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml deleted file mode 100644 index 717ecd3..0000000 --- a/.ci_support/osx_arm64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml +++ /dev/null @@ -1,53 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' -MACOSX_SDK_VERSION: -- '11.0' -c_compiler: -- clang -c_compiler_version: -- '19' -c_stdlib: -- macosx_deployment_target -c_stdlib_version: -- '11.0' -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- clangxx -cxx_compiler_version: -- '19' -gmp: -- '6' -is_abi3: -- true -is_freethreading: -- false -libflint: -- '3.2' -macos_machine: -- arm64-apple-darwin20.0.0 -mpfr: -- '4' -numpy: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -target_platform: -- osx-arm64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - channel_sources - - is_freethreading - - is_abi3 -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/osx_arm64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/osx_arm64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml index 7bd49e3..ab4ecdb 100644 --- a/.ci_support/osx_arm64_is_abi3trueis_freethreadingfalsepython3.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: -- '19' +- '21' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '19' +- '21' gmp: - '6' is_abi3: @@ -25,7 +25,7 @@ is_abi3: is_freethreading: - false libflint: -- '3.2' +- '3.5' macos_machine: - arm64-apple-darwin20.0.0 mpfr: @@ -44,7 +44,6 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/win_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml b/.ci_support/win_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml index fe8e3bc..a55c06d 100644 --- a/.ci_support/win_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml +++ b/.ci_support/win_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t.yaml @@ -15,7 +15,7 @@ is_abi3: is_freethreading: - true libflint: -- '3.2' +- '3.5' mpfr: - '4' numpy: @@ -30,7 +30,6 @@ target_platform: - win-64 zip_keys: - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/win_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml b/.ci_support/win_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml index d48c85e..6b620ee 100644 --- a/.ci_support/win_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml +++ b/.ci_support/win_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t.yaml @@ -3,7 +3,7 @@ c_compiler: c_stdlib: - vs channel_sources: -- conda-forge,conda-forge/label/python_rc +- conda-forge channel_targets: - isuruf test cxx_compiler: @@ -15,7 +15,7 @@ is_abi3: is_freethreading: - true libflint: -- '3.2' +- '3.5' mpfr: - '4' numpy: @@ -30,7 +30,6 @@ target_platform: - win-64 zip_keys: - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.ci_support/win_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml b/.ci_support/win_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml deleted file mode 100644 index a159773..0000000 --- a/.ci_support/win_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython.yaml +++ /dev/null @@ -1,39 +0,0 @@ -c_compiler: -- vs2022 -c_stdlib: -- vs -channel_sources: -- conda-forge -channel_targets: -- isuruf test -cxx_compiler: -- vs2022 -gmp: -- '6' -is_abi3: -- true -is_freethreading: -- false -libflint: -- '3.2' -mpfr: -- '4' -numpy: -- '2' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -target_platform: -- win-64 -zip_keys: -- - python - - channel_sources - - is_freethreading - - is_abi3 -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/win_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml b/.ci_support/win_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml index 1e4d36a..39cde93 100644 --- a/.ci_support/win_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml +++ b/.ci_support/win_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython.yaml @@ -15,7 +15,7 @@ is_abi3: is_freethreading: - false libflint: -- '3.2' +- '3.5' mpfr: - '4' numpy: @@ -30,7 +30,6 @@ target_platform: - win-64 zip_keys: - - python - - channel_sources - is_freethreading - is_abi3 zlib: diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index 624cbe5..baa6768 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -19,165 +19,282 @@ jobs: timeout-minutes: 360 strategy: fail-fast: false + max-parallel: 50 matrix: include: - CONFIG: linux_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma10 + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + tools_install_dir: ~/miniforge3 - CONFIG: linux_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma10 + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - - 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 + tools_install_dir: ~/miniforge3 - CONFIG: linux_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma10 + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 + tools_install_dir: ~/miniforge3 - 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_aarch64_is_abi3falseis_freethreadingtruepython3.14.____cp314t + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + - CONFIG: linux_aarch64_is_abi3falseis_freethreadingtruepython3.14.____cp314t DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_aarch64_is_abi3trueis_freethreadingfalsepython3.10.____cpython + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + tools_install_dir: ~/miniforge3 - 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_abi3falseis_freethreadingtruepython3.13.____cp313t + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + - CONFIG: linux_ppc64le_is_abi3falseis_freethreadingtruepython3.13.____cp313t DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_ppc64le_is_abi3falseis_freethreadingtruepython3.14.____cp314t + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] + tools_install_dir: ~/miniforge3 + - CONFIG: linux_ppc64le_is_abi3falseis_freethreadingtruepython3.14.____cp314t DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - - CONFIG: linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.10.____cpython + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + tools_install_dir: ~/miniforge3 - CONFIG: linux_ppc64le_is_abi3trueis_freethreadingfalsepython3.11.____cpython + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: skip os: ubuntu + pagefile_size: 0 + resize_partitions: False runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + tools_install_dir: ~/miniforge3 - CONFIG: osx_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: ~/miniforge3/conda-bld + docker_run_args: + free_disk_space: skip os: macos - runs_on: ['macos-13'] + pagefile_size: 0 + resize_partitions: False + runs_on: ['macos-15-intel'] + tools_install_dir: ~/miniforge3 - CONFIG: osx_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: ~/miniforge3/conda-bld + docker_run_args: + free_disk_space: skip os: macos - runs_on: ['macos-13'] - - CONFIG: osx_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython - UPLOAD_PACKAGES: True - os: macos - runs_on: ['macos-13'] + pagefile_size: 0 + resize_partitions: False + runs_on: ['macos-15-intel'] + tools_install_dir: ~/miniforge3 - CONFIG: osx_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: ~/miniforge3/conda-bld + docker_run_args: + free_disk_space: skip os: macos - runs_on: ['macos-13'] + pagefile_size: 0 + resize_partitions: False + runs_on: ['macos-15-intel'] + tools_install_dir: ~/miniforge3 - CONFIG: osx_arm64_is_abi3falseis_freethreadingtruepython3.13.____cp313t + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: ~/miniforge3/conda-bld + docker_run_args: + free_disk_space: skip os: macos - runs_on: ['macos-13'] + pagefile_size: 0 + resize_partitions: False + runs_on: ['macos-15-intel'] + tools_install_dir: ~/miniforge3 - CONFIG: osx_arm64_is_abi3falseis_freethreadingtruepython3.14.____cp314t + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: ~/miniforge3/conda-bld + docker_run_args: + free_disk_space: skip os: macos - runs_on: ['macos-13'] - - CONFIG: osx_arm64_is_abi3trueis_freethreadingfalsepython3.10.____cpython - UPLOAD_PACKAGES: True - os: macos - runs_on: ['macos-13'] + pagefile_size: 0 + resize_partitions: False + runs_on: ['macos-15-intel'] + tools_install_dir: ~/miniforge3 - CONFIG: osx_arm64_is_abi3trueis_freethreadingfalsepython3.11.____cpython + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: ~/miniforge3/conda-bld + docker_run_args: + free_disk_space: skip os: macos - runs_on: ['macos-13'] + pagefile_size: 0 + resize_partitions: False + runs_on: ['macos-15-intel'] + tools_install_dir: ~/miniforge3 - CONFIG: win_64_is_abi3falseis_freethreadingtruepython3.13.____cp313t + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_platform: win-64 + build_workspace_dir: D:\\bld\\ + docker_run_args: + free_disk_space: skip os: windows - runs_on: ['windows-latest'] + pagefile_size: 0 + resize_partitions: False + runs_on: ['windows-2022'] + tools_install_dir: D:\Miniforge - CONFIG: win_64_is_abi3falseis_freethreadingtruepython3.14.____cp314t + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_platform: win-64 + build_workspace_dir: D:\\bld\\ + docker_run_args: + free_disk_space: skip os: windows - runs_on: ['windows-latest'] - - CONFIG: win_64_is_abi3trueis_freethreadingfalsepython3.10.____cpython - UPLOAD_PACKAGES: True - os: windows - runs_on: ['windows-latest'] + pagefile_size: 0 + resize_partitions: False + runs_on: ['windows-2022'] + tools_install_dir: D:\Miniforge - CONFIG: win_64_is_abi3trueis_freethreadingfalsepython3.11.____cpython + STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_platform: win-64 + build_workspace_dir: D:\\bld\\ + docker_run_args: + free_disk_space: skip os: windows - runs_on: ['windows-latest'] + pagefile_size: 0 + resize_partitions: False + runs_on: ['windows-2022'] + tools_install_dir: D:\Miniforge steps: - name: Checkout code - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - name: Configure binfmt_misc + if: matrix.os == 'ubuntu' + shell: bash + run: | + if [[ "$(uname -m)" == "x86_64" ]]; then + docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + fi - name: Build on Linux id: build-linux if: matrix.os == 'ubuntu' env: + CI: github_actions + CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} + CONDA_FORGE_DOCKER_RUN_ARGS: ${{ matrix.docker_run_args }} CONFIG: ${{ matrix.CONFIG }} - UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} DOCKER_IMAGE: ${{ matrix.DOCKER_IMAGE }} - CI: github_actions - CONDA_FORGE_DOCKER_RUN_ARGS: "${{ matrix.CONDA_FORGE_DOCKER_RUN_ARGS }}" + UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + RATTLER_BUILD_COLOR: always + RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true' BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} shell: bash run: | - if [[ "$(uname -m)" == "x86_64" ]]; then - echo "::group::Configure binfmt_misc" - docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes - fi + export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" + export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" + export GIT_BRANCH="${GITHUB_REF_NAME}" + export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" export flow_run_id="github_$GITHUB_RUN_ID" export remote_url="https://github.com/$GITHUB_REPOSITORY" export sha="$GITHUB_SHA" - export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" - export GIT_BRANCH="$(basename $GITHUB_REF)" if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then export IS_PR_BUILD="True" else export IS_PR_BUILD="False" fi - echo "::endgroup::" ./.scripts/run_docker_build.sh - name: Build on macOS id: build-macos if: matrix.os == 'macos' env: + CI: github_actions + CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} CONFIG: ${{ matrix.CONFIG }} + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} - CI: github_actions + RATTLER_BUILD_COLOR: always + RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true' BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} shell: bash run: | + export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" + export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" + export GIT_BRANCH="${GITHUB_REF_NAME}" + export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" export flow_run_id="github_$GITHUB_RUN_ID" export remote_url="https://github.com/$GITHUB_REPOSITORY" export sha="$GITHUB_SHA" - export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" - export GIT_BRANCH="$(basename $GITHUB_REF)" if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then export IS_PR_BUILD="True" else @@ -195,16 +312,19 @@ 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 }} + BUILD_PLATFORM: ${{ matrix.build_platform }} CI: github_actions + CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} + CONFIG: ${{ matrix.CONFIG }} + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + PYTHONUNBUFFERED: 1 UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + RATTLER_BUILD_COLOR: always + RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true' BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} + + - name: Upload artifacts to Github uses: actions/upload-artifact@v4 with: diff --git a/.gitignore b/.gitignore index 47b5408..86a9c55 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ # Ignore all files and folders in root * !/conda-forge.yml +!.recipe_maintainers.json # Don't ignore any files/folders if the parent folder is 'un-ignored' # This also avoids warnings when adding an already-checked file with an ignored parent. diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 6fda384..12434ca 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -20,6 +20,7 @@ export PYTHONUNBUFFERED=1 export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" +export RATTLER_CACHE_DIR="${FEEDSTOCK_ROOT}/build_artifacts/pkg_cache" cat >~/.condarc < /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" + pip python=3.14 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 # set up the condarc @@ -60,18 +61,33 @@ if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then fi if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" - fi - conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + # differences between conda-build vs. rattler-build + # - 1 step (conda debug + manually open shell) vs. 2 step (rb debug {setup, shell}) + # - recipe is positional vs. --recipe "${RECIPE_ROOT}" + # - --output-id vs. --output-name + # - --clobber-file vs. none + # - none vs. --target-platform + CONDA_SUBDIR="${BUILD_PLATFORM}" conda debug \ + "${RECIPE_ROOT}" \ + -m "${CI_SUPPORT}/${CONFIG}.yaml" \ ${EXTRA_CB_OPTIONS:-} \ + ${BUILD_OUTPUT_ID:+--output-id "${BUILD_OUTPUT_ID}"} \ --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" # Drop into an interactive shell /bin/bash else - conda-build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ + # differences between conda-build vs. rattler-build + # - recipe is positional vs. --recipe "${RECIPE_ROOT}" + # - --suppress-variables vs. none + # - --clobber-file vs. none + # - none vs. --target-platform + # - --extra-meta a=b c=d vs. --extra-meta a=b --extra-meta c=d + CONDA_SUBDIR="${BUILD_PLATFORM}" conda-build \ + "${RECIPE_ROOT}" \ + -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + ${EXTRA_CB_OPTIONS:-} \ + --suppress-variables \ --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" ( startgroup "Inspecting artifacts" ) 2> /dev/null diff --git a/.scripts/logging_utils.sh b/.scripts/logging_utils.sh old mode 100644 new mode 100755 diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 4d73606..326762f 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -11,6 +11,8 @@ source .scripts/logging_utils.sh set -xeo pipefail +DOCKER_EXECUTABLE="${DOCKER_EXECUTABLE:-docker}" + THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" PROVIDER_DIR="$(basename "$THISDIR")" @@ -27,7 +29,7 @@ if [[ "${sha:-}" == "" ]]; then popd fi -docker info +${DOCKER_EXECUTABLE} info # In order for the conda-build process in the container to write to the mounted # volumes, we need to run with the same id as the host machine, which is @@ -35,6 +37,7 @@ docker info export HOST_USER_ID=$(id -u) # Check if docker-machine is being used (normally on OSX) and get the uid from # the VM + if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) fi @@ -76,27 +79,56 @@ if [ -z "${CI}" ]; then DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" fi -( endgroup "Configure Docker" ) 2> /dev/null +# Default volume suffix for Docker (preserve original behavior) +VOLUME_SUFFIX=",z" + +# Podman-specific handling +if [ "${DOCKER_EXECUTABLE}" = "podman" ]; then + # Fix file permissions for rootless podman builds + podman unshare chown -R ${HOST_USER_ID}:${HOST_USER_ID} "${ARTIFACTS}" + podman unshare chown -R ${HOST_USER_ID}:${HOST_USER_ID} "${RECIPE_ROOT}" + + # Add SELinux label only if enforcing + if command -v getenforce &>/dev/null && [ "$(getenforce)" = "Enforcing" ]; then + VOLUME_SUFFIX=",z" + else + VOLUME_SUFFIX="" + fi +fi + +# When running on GitHub Actions, mount the step summary file into the container +# and point GITHUB_STEP_SUMMARY at it so that rattler-build's GitHub integration +# can write its summary. GitHub writes the file out to the job summary after the +# step finishes. +if [[ -n "${GITHUB_STEP_SUMMARY:-}" ]]; then + DOCKER_RUN_ARGS="${DOCKER_RUN_ARGS} -v ${GITHUB_STEP_SUMMARY}:/home/conda/github_step_summary:rw${VOLUME_SUFFIX},delegated -e GITHUB_STEP_SUMMARY=/home/conda/github_step_summary" +fi +( endgroup "Configure Docker" ) 2> /dev/null ( startgroup "Start Docker" ) 2> /dev/null export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" export IS_PR_BUILD="${IS_PR_BUILD:-False}" -docker pull "${DOCKER_IMAGE}" -docker run ${DOCKER_RUN_ARGS} \ - -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \ - -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \ + +${DOCKER_EXECUTABLE} pull "${DOCKER_IMAGE}" + +${DOCKER_EXECUTABLE} run ${DOCKER_RUN_ARGS} \ + -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw${VOLUME_SUFFIX},delegated \ + -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw${VOLUME_SUFFIX},delegated \ + -e BUILD_OUTPUT_ID \ + -e BUILD_WITH_CONDA_DEBUG \ + -e CI \ -e CONFIG \ + -e CPU_COUNT \ + -e FEEDSTOCK_NAME \ + -e GIT_BRANCH \ + -e GITHUB_ACTIONS \ -e HOST_USER_ID \ - -e UPLOAD_PACKAGES \ -e IS_PR_BUILD \ - -e GIT_BRANCH \ + -e RATTLER_BUILD_COLOR \ + -e RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION \ -e UPLOAD_ON_BRANCH \ - -e CI \ - -e FEEDSTOCK_NAME \ - -e CPU_COUNT \ - -e BUILD_WITH_CONDA_DEBUG \ - -e BUILD_OUTPUT_ID \ + -e UPLOAD_PACKAGES \ -e flow_run_id \ -e remote_url \ -e sha \ diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 07f28c3..50f60b5 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -26,7 +26,7 @@ chmod +x "${micromamba_exe}" 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" + pip python=3.14 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" echo "Cleaning up micromamba" @@ -63,6 +63,25 @@ if [[ "${sha:-}" == "" ]]; then sha=$(git rev-parse HEAD) fi +if [[ "${OSX_SDK_DIR:-}" == "" ]]; then + if [[ "${CI:-}" == "" ]]; then + echo "Please set OSX_SDK_DIR to a directory where SDKs can be downloaded to. Aborting" + exit 1 + else + export OSX_SDK_DIR=/opt/conda-sdks + /usr/bin/sudo mkdir -p "${OSX_SDK_DIR}" + /usr/bin/sudo chown "${USER}" "${OSX_SDK_DIR}" + fi +else + if tmpf=$(mktemp "$OSX_SDK_DIR"/tmp.XXXXXXXX 2>/dev/null); then + rm -f "$tmpf" + echo "OSX_SDK_DIR is writeable without sudo, continuing" + else + echo "User-provided OSX_SDK_DIR is not writeable for current user! Aborting" + exit 1 + fi +fi + echo -e "\n\nRunning the build setup script." source run_conda_forge_build_setup @@ -81,7 +100,7 @@ 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 \ + CONDA_SUBDIR="${BUILD_PLATFORM}" conda debug ./recipe -m ./.ci_support/${CONFIG}.yaml \ ${EXTRA_CB_OPTIONS:-} \ --clobber-file ./.ci_support/clobber_${CONFIG}.yaml @@ -93,7 +112,7 @@ else EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" fi - conda-build ./recipe -m ./.ci_support/${CONFIG}.yaml \ + CONDA_SUBDIR="${BUILD_PLATFORM}" 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" diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 55cb028..84911f7 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -31,7 +31,7 @@ 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" + pip python=3.14 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" if !errorlevel! neq 0 exit /b !errorlevel! echo Removing %MAMBA_ROOT_PREFIX% del /S /Q "%MAMBA_ROOT_PREFIX%" >nul @@ -42,7 +42,8 @@ call :start_group "Configuring conda" :: Activate the base conda environment echo Activating environment -call "%MINIFORGE_HOME%\Scripts\activate.bat" +set "CONDA_EXE=%MINIFORGE_HOME%\Scripts\conda.exe" +call "%MINIFORGE_HOME%\condabin\conda.bat" activate "%MINIFORGE_HOME%" :: Configure the solver set "CONDA_SOLVER=libmamba" if !errorlevel! neq 0 exit /b !errorlevel! @@ -76,8 +77,12 @@ call :end_group :: Build the recipe echo Building recipe +set "_OLD_CONDA_SUBDIR=%CONDA_SUBDIR%" +set "CONDA_SUBDIR=%BUILD_PLATFORM%" conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% if !errorlevel! neq 0 exit /b !errorlevel! +set "_OLD_CONDA_SUBDIR=" +set "CONDA_SUBDIR=%_OLD_CONDA_SUBDIR%" call :start_group "Inspecting artifacts" :: inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 @@ -87,7 +92,7 @@ call :end_group :: Prepare some environment variables for the upload step if /i "%CI%" == "github_actions" ( set "FEEDSTOCK_NAME=%GITHUB_REPOSITORY:*/=%" - set "GIT_BRANCH=%GITHUB_REF:refs/heads/=%" + set "GIT_BRANCH=%GITHUB_REF_NAME%" if /i "%GITHUB_EVENT_NAME%" == "pull_request" ( set "IS_PR_BUILD=True" ) else ( diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..4adecab --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,13 @@ +# Notes for agents + +This repo is a conda-smithy feedstock that builds PyPI wheels for symengine.py +(recipe in `recipe/`, default branch `conda`). + +## Rerendering + +Always rerender with `./rerender.sh`, not `conda-smithy rerender` directly. +After rerendering, `extra.yml` must be appended to +`.github/workflows/conda-build.yml`. It adds the steps that upload the built +wheels as workflow artifacts and to the GitHub release on tag builds, and +conda-smithy drops them on every rerender. `rerender.sh` does the append. +Check that the end of `conda-build.yml` still parses as YAML afterwards. diff --git a/LICENSE.txt b/LICENSE.txt index 2ec51d7..c5aa738 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,5 @@ BSD-3-Clause license -Copyright (c) 2015-2022, conda-forge contributors -All rights reserved. +Copyright (c) 2015-2026, conda-forge contributors Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/build-locally.py b/build-locally.py index 9dfe440..3beb68c 100755 --- a/build-locally.py +++ b/build-locally.py @@ -1,5 +1,6 @@ #!/bin/sh """exec" "python3" "$0" "$@" #""" # fmt: off # fmt: on + # # This file has been generated by conda-smithy in order to build the recipe # locally. @@ -27,13 +28,6 @@ def setup_environment(ns): os.path.dirname(__file__), "miniforge3" ) - # The default cache location might not be writable using docker on macOS. - if ns.config.startswith("linux") and platform.system() == "Darwin": - os.environ["CONDA_FORGE_DOCKER_RUN_ARGS"] = ( - os.environ.get("CONDA_FORGE_DOCKER_RUN_ARGS", "") - + " -e RATTLER_CACHE_DIR=/tmp/rattler_cache" - ) - def run_docker_build(ns): script = ".scripts/run_docker_build.sh" @@ -104,7 +98,10 @@ def main(args=None): p.add_argument( "--debug", action="store_true", - help="Setup debug environment using `conda debug`", + help=( + "Setup debug environment using `conda debug` " + "(or `rattler-build debug` for rattler-build recipes)" + ), ) p.add_argument("--output-id", help="If running debug, specify the output to setup.") diff --git a/recipe/6344a52.patch b/recipe/6344a52.patch new file mode 100644 index 0000000..cf82012 --- /dev/null +++ b/recipe/6344a52.patch @@ -0,0 +1,31 @@ +From 6344a52fb3d5ca8dd97cba0ed50c9591bc52c380 Mon Sep 17 00:00:00 2001 +From: Brandon Bocklund +Date: Sun, 18 Oct 2026 22:58:26 -0700 +Subject: [PATCH] Restore qualified Cython module name in out-of-tree builds + +Cython infers a module's qualified name from the structure implied by `__init__.py`. Old CMake build copied the whole symengine/ package into the build tree (`file(COPY symengine/ ...)` in the top-level CMakeLists.txt), so those files were present. + +Since the move to scikit-build-core builds compile the wrapper with the module name `symengine_wrapper` instead of `symengine.lib.symengine_wrapper` and `Symbol('x').__module__ == "symengine_wrapper"` that breaks pickles across process. + +This only occurs on non-editable installs and builds outside the source tree that have `__init__.py` files in the right structure and my proposed fix is to create dummy `__init__.py` files to produce the correct import structure if they don't already exist (which they do for in-tree builds). +--- + symengine/lib/CMakeLists.txt | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/symengine/lib/CMakeLists.txt b/symengine/lib/CMakeLists.txt +index 8db0c815..a3673264 100644 +--- a/symengine/lib/CMakeLists.txt ++++ b/symengine/lib/CMakeLists.txt +@@ -35,6 +35,12 @@ if ("${CYTHON_VERSION}" VERSION_GREATER_EQUAL "3.1") + set(CYTHON_EXTRA_ARGS "-Xfreethreading_compatible=True") + endif() + ++foreach(pkg_dir ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/..) ++ if(NOT EXISTS ${pkg_dir}/__init__.py) ++ file(WRITE ${pkg_dir}/__init__.py "") ++ endif() ++endforeach() ++ + cython_transpile( + ${CMAKE_CURRENT_BINARY_DIR}/symengine_wrapper.pyx + LANGUAGE CXX diff --git a/recipe/abi3.diff b/recipe/abi3.diff deleted file mode 100644 index f138090..0000000 --- a/recipe/abi3.diff +++ /dev/null @@ -1,170 +0,0 @@ -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/bld.bat b/recipe/bld.bat index 1882b7d..25e36b4 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -36,7 +36,10 @@ cd .. cd python type %RECIPE_DIR%\\UPSTREAM_LICENSES.txt >> LICENSE -%PYTHON% setup.py bdist_wheel build_ext --generator=Ninja install --symengine-dir=%LIBRARY_PREFIX% +set "CMAKE_GENERATOR=" +set "CMAKE_GENERATOR_PLATFORM=" +set "CMAKE_GENERATOR_TOOLSET=" +%PYTHON% -m pip wheel . -vv --no-deps --no-build-isolation -w dist -Ccmake.define.SymEngine_DIR=%LIBRARY_PREFIX% if errorlevel 1 exit 1 set dep_dir=%LIBRARY_BIN% diff --git a/recipe/build.sh b/recipe/build.sh index fd7052d..a550774 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -51,20 +51,9 @@ rm -rf $PREFIX/lib/libc++.* pushd python echo "" >> LICENSE cat $RECIPE_DIR/UPSTREAM_LICENSES.txt >> LICENSE - PYTHON_ARGS="-D IGNORE_THIS=1" - for ARG in $CMAKE_ARGS; do - if [[ "$ARG" == "-DCMAKE_"* ]] && [[ "$ARG" != *";"* ]]; then - cmake_arg=$(echo $ARG | cut -d= -f1) - cmake_arg=$(echo $cmake_arg| cut -dD -f2-) - cmake_val=$(echo $ARG | cut -d= -f2-) - PYTHON_ARGS="$PYTHON_ARGS;${cmake_arg}=${cmake_val}" - fi - done - if [[ "$target_platform" == linux-ppc64le ]]; then - PYTHON_ARGS="$PYTHON_ARGS;SYMENGINE_COPY_EXTENSION=yes" - fi - PYTHON_ARGS="$PYTHON_ARGS;CMAKE_VERBOSE_MAKEFILE=1" - $PYTHON setup.py bdist_wheel build_ext -i $PYTHON_ARGS + $PYTHON -m pip wheel . -vv --no-deps --no-build-isolation -w dist \ + -Ccmake.define.SymEngine_DIR=$PREFIX \ + -Ccmake.define.CMAKE_VERBOSE_MAKEFILE=ON popd # Repair the wheel @@ -95,6 +84,17 @@ done # Install the wheel for whl in python/fixed_wheels/*.whl; do + if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" && "$target_platform" == linux-* ]]; then + # crossenv>=1.6 only accepts linux_ wheels + case "$target_platform" in + linux-64) linux_arch=x86_64 ;; + *) linux_arch=${target_platform#linux-} ;; + esac + mkdir -p python/linux_wheels + linux_whl=python/linux_wheels/$(basename $whl | sed -E "s/-manylinux[^-]*\.whl$/-linux_${linux_arch}.whl/") + cp $whl $linux_whl + whl=$linux_whl + fi $PYTHON -m pip install $whl done diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 7cec9fd..ee33396 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "0.14.1" %} -{% set cxx_version = "0.14.0" %} +{% set version = "0.15.0" %} +{% set cxx_version = "0.15.0" %} package: name: symengine-wheels @@ -7,21 +7,21 @@ package: source: - url: https://github.com/symengine/symengine.py/releases/download/v{{ version }}/symengine.py-{{ version }}.tar.gz - sha256: 3e79d39af5e9f024cd4b8d1372314ac2b83cace7d49cdbad482b4aec5b04c37b + sha256: 5fac75a1b347308ba8b6e33b0bf74c5235446e268b3d023f80c02e1a873a7c18 folder: python patches: - - abi3.diff + - 6344a52.patch - url: https://github.com/symengine/symengine/releases/download/v{{ cxx_version }}/symengine-{{ cxx_version }}.tar.gz - sha256: 11c5f64e9eec998152437f288b8429ec001168277d55f3f5f1df78e3cf129707 + sha256: 9f75f0367221abd88b9b60ef7b104b4aa1e34e99d3152c3df2bb2467bad2f04f folder: cxx build: number: 0 - skip: true # [py<=38 or (is_abi3 and py>311)] + skip: true # [py<311 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] + - SKBUILD_WHEEL_PY_API=cp311 # [is_abi3 and py>=311] ignore_run_exports_from: - gmp - mpfr @@ -45,11 +45,13 @@ requirements: - patchelf # [linux] - python # [build_platform != target_platform] - cross-python_{{ target_platform }} # [build_platform != target_platform] - - setuptools # [build_platform != target_platform] + - scikit-build-core # [build_platform != target_platform] + - setuptools-scm # [build_platform != target_platform] + - cython-cmake # [build_platform != target_platform] - unzip # [unix] - m2-unzip # [win] - m2-sed # [win] - - cython >=0.29.24 + - cython >=3.1 host: - gmp - mpfr @@ -63,8 +65,10 @@ requirements: - zstd - python - python-abi3 # [is_abi3 and py>=311] - - setuptools - - cython >=0.29.24 # [build_platform == target_platform] + - scikit-build-core + - setuptools-scm + - cython-cmake + - cython >=3.1 # [build_platform == target_platform] - pip - auditwheel # [linux] - delocate # [win or osx] diff --git a/rerender.sh b/rerender.sh index 0a5fd74..b99d453 100755 --- a/rerender.sh +++ b/rerender.sh @@ -1,4 +1,6 @@ #!/bin/bash conda-smithy rerender +# conda-smithy's output may not end with a newline +printf '\n\n' >> .github/workflows/conda-build.yml cat extra.yml >> .github/workflows/conda-build.yml git add .github/workflows/conda-build.yml