diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 10ee3363..4ffd2713 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -24,6 +24,10 @@ jobs: CONFIG: linux_64_numpy2python3.13.____cp313 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + linux_64_numpy2python3.13.____cp313t: + CONFIG: linux_64_numpy2python3.13.____cp313t + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 linux_aarch64_numpy1.22python3.10.____cpython: CONFIG: linux_aarch64_numpy1.22python3.10.____cpython UPLOAD_PACKAGES: 'True' @@ -40,6 +44,10 @@ jobs: CONFIG: linux_aarch64_numpy2python3.13.____cp313 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + linux_aarch64_numpy2python3.13.____cp313t: + CONFIG: linux_aarch64_numpy2python3.13.____cp313t + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 linux_ppc64le_numpy1.22python3.10.____cpython: CONFIG: linux_ppc64le_numpy1.22python3.10.____cpython UPLOAD_PACKAGES: 'True' @@ -56,6 +64,10 @@ jobs: CONFIG: linux_ppc64le_numpy2python3.13.____cp313 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + linux_ppc64le_numpy2python3.13.____cp313t: + CONFIG: linux_ppc64le_numpy2python3.13.____cp313t + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 timeoutInMinutes: 360 variables: {} diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 1330ca35..4aafe60e 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -20,6 +20,9 @@ jobs: osx_64_numpy2python3.13.____cp313: CONFIG: osx_64_numpy2python3.13.____cp313 UPLOAD_PACKAGES: 'True' + osx_64_numpy2python3.13.____cp313t: + CONFIG: osx_64_numpy2python3.13.____cp313t + UPLOAD_PACKAGES: 'True' osx_arm64_numpy1.22python3.10.____cpython: CONFIG: osx_arm64_numpy1.22python3.10.____cpython UPLOAD_PACKAGES: 'True' @@ -32,6 +35,9 @@ jobs: osx_arm64_numpy2python3.13.____cp313: CONFIG: osx_arm64_numpy2python3.13.____cp313 UPLOAD_PACKAGES: 'True' + osx_arm64_numpy2python3.13.____cp313t: + CONFIG: osx_arm64_numpy2python3.13.____cp313t + UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 variables: {} diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 4e902050..1bb11f90 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -8,17 +8,20 @@ jobs: vmImage: windows-2022 strategy: matrix: - win_64_numpy1.22python3.10.____cpython: - CONFIG: win_64_numpy1.22python3.10.____cpython + win_64_is_freethreadingfalsenumpy1.22python3.10.____cpython: + CONFIG: win_64_is_freethreadingfalsenumpy1.22python3.10.____cpython UPLOAD_PACKAGES: 'True' - win_64_numpy1.23python3.11.____cpython: - CONFIG: win_64_numpy1.23python3.11.____cpython + win_64_is_freethreadingfalsenumpy1.23python3.11.____cpython: + CONFIG: win_64_is_freethreadingfalsenumpy1.23python3.11.____cpython UPLOAD_PACKAGES: 'True' - win_64_numpy1.26python3.12.____cpython: - CONFIG: win_64_numpy1.26python3.12.____cpython + win_64_is_freethreadingfalsenumpy1.26python3.12.____cpython: + CONFIG: win_64_is_freethreadingfalsenumpy1.26python3.12.____cpython UPLOAD_PACKAGES: 'True' - win_64_numpy2python3.13.____cp313: - CONFIG: win_64_numpy2python3.13.____cp313 + win_64_is_freethreadingfalsenumpy2python3.13.____cp313: + CONFIG: win_64_is_freethreadingfalsenumpy2python3.13.____cp313 + UPLOAD_PACKAGES: 'True' + win_64_is_freethreadingtruenumpy2python3.13.____cp313t: + CONFIG: win_64_is_freethreadingtruenumpy2python3.13.____cp313t UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 variables: diff --git a/.ci_support/linux_64_numpy2python3.13.____cp313t.yaml b/.ci_support/linux_64_numpy2python3.13.____cp313t.yaml new file mode 100644 index 00000000..25d7c012 --- /dev/null +++ b/.ci_support/linux_64_numpy2python3.13.____cp313t.yaml @@ -0,0 +1,49 @@ +c_compiler: +- gcc +c_compiler_version: +- '13' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- cos7 +channel_sources: +- conda-forge/label/python_rc,conda-forge/label/cython_dev,conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '13' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +fortran_compiler: +- gfortran +fortran_compiler_version: +- '13' +libblas: +- 3.9 *netlib +libcblas: +- 3.9 *netlib +liblapack: +- 3.9 *netlib +numpy: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.13.* *_cp313t +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - fortran_compiler_version +- - c_stdlib_version + - cdt_name +- - python + - numpy + - channel_sources diff --git a/.ci_support/linux_aarch64_numpy2python3.13.____cp313t.yaml b/.ci_support/linux_aarch64_numpy2python3.13.____cp313t.yaml new file mode 100644 index 00000000..58b01cf8 --- /dev/null +++ b/.ci_support/linux_aarch64_numpy2python3.13.____cp313t.yaml @@ -0,0 +1,53 @@ +BUILD: +- aarch64-conda_cos7-linux-gnu +c_compiler: +- gcc +c_compiler_version: +- '13' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_arch: +- aarch64 +cdt_name: +- cos7 +channel_sources: +- conda-forge/label/python_rc,conda-forge/label/cython_dev,conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '13' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +fortran_compiler: +- gfortran +fortran_compiler_version: +- '13' +libblas: +- 3.9 *netlib +libcblas: +- 3.9 *netlib +liblapack: +- 3.9 *netlib +numpy: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.13.* *_cp313t +target_platform: +- linux-aarch64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - fortran_compiler_version +- - c_stdlib_version + - cdt_name +- - python + - numpy + - channel_sources diff --git a/.ci_support/linux_ppc64le_numpy2python3.13.____cp313t.yaml b/.ci_support/linux_ppc64le_numpy2python3.13.____cp313t.yaml new file mode 100644 index 00000000..628a0130 --- /dev/null +++ b/.ci_support/linux_ppc64le_numpy2python3.13.____cp313t.yaml @@ -0,0 +1,49 @@ +c_compiler: +- gcc +c_compiler_version: +- '13' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- cos7 +channel_sources: +- conda-forge/label/python_rc,conda-forge/label/cython_dev,conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '13' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +fortran_compiler: +- gfortran +fortran_compiler_version: +- '13' +libblas: +- 3.9 *netlib +libcblas: +- 3.9 *netlib +liblapack: +- 3.9 *netlib +numpy: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.13.* *_cp313t +target_platform: +- linux-ppc64le +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - fortran_compiler_version +- - c_stdlib_version + - cdt_name +- - python + - numpy + - channel_sources diff --git a/.ci_support/migrations/python313t.yaml b/.ci_support/migrations/python313t.yaml new file mode 100644 index 00000000..dc794464 --- /dev/null +++ b/.ci_support/migrations/python313t.yaml @@ -0,0 +1,48 @@ +migrator_ts: 1724712608 +__migrator: + commit_message: Rebuild for python 3.13 freethreading + 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.13.* *_cp313t # new entry + - 3.6.* *_73_pypy + - 3.7.* *_73_pypy + - 3.8.* *_73_pypy + - 3.9.* *_73_pypy + 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 + additional_zip_keys: + - channel_sources + - is_freethreading + +python: +- 3.13.* *_cp313t +channel_sources: +- conda-forge/label/python_rc,conda-forge/label/cython_dev,conda-forge +# additional entries to add for zip_keys +numpy: +- 2 +python_impl: +- cpython +is_freethreading: +- true diff --git a/.ci_support/osx_64_numpy2python3.13.____cp313t.yaml b/.ci_support/osx_64_numpy2python3.13.____cp313t.yaml new file mode 100644 index 00000000..b86254d2 --- /dev/null +++ b/.ci_support/osx_64_numpy2python3.13.____cp313t.yaml @@ -0,0 +1,44 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.13' +MACOSX_SDK_VERSION: +- '10.13' +c_compiler: +- clang +c_compiler_version: +- '17' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '10.13' +channel_sources: +- conda-forge/label/python_rc,conda-forge/label/cython_dev,conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- clangxx +cxx_compiler_version: +- '17' +libblas: +- 3.9 *netlib +libcblas: +- 3.9 *netlib +liblapack: +- 3.9 *netlib +macos_machine: +- x86_64-apple-darwin13.4.0 +numpy: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.13.* *_cp313t +target_platform: +- osx-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version +- - python + - numpy + - channel_sources diff --git a/.ci_support/osx_arm64_numpy2python3.13.____cp313t.yaml b/.ci_support/osx_arm64_numpy2python3.13.____cp313t.yaml new file mode 100644 index 00000000..6810b841 --- /dev/null +++ b/.ci_support/osx_arm64_numpy2python3.13.____cp313t.yaml @@ -0,0 +1,44 @@ +MACOSX_DEPLOYMENT_TARGET: +- '11.0' +MACOSX_SDK_VERSION: +- '11.0' +c_compiler: +- clang +c_compiler_version: +- '17' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '11.0' +channel_sources: +- conda-forge/label/python_rc,conda-forge/label/cython_dev,conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- clangxx +cxx_compiler_version: +- '17' +libblas: +- 3.9 *netlib +libcblas: +- 3.9 *netlib +liblapack: +- 3.9 *netlib +macos_machine: +- arm64-apple-darwin20.0.0 +numpy: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.13.* *_cp313t +target_platform: +- osx-arm64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version +- - python + - numpy + - channel_sources diff --git a/.ci_support/win_64_numpy1.22python3.10.____cpython.yaml b/.ci_support/win_64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml similarity index 88% rename from .ci_support/win_64_numpy1.22python3.10.____cpython.yaml rename to .ci_support/win_64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml index 3ade8917..ce015195 100644 --- a/.ci_support/win_64_numpy1.22python3.10.____cpython.yaml +++ b/.ci_support/win_64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml @@ -8,6 +8,8 @@ channel_targets: - conda-forge main cxx_compiler: - vs2019 +is_freethreading: +- 'false' libblas: - 3.9 *netlib libcblas: @@ -28,3 +30,4 @@ zip_keys: - - python - numpy - channel_sources + - is_freethreading diff --git a/.ci_support/win_64_numpy1.23python3.11.____cpython.yaml b/.ci_support/win_64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml similarity index 88% rename from .ci_support/win_64_numpy1.23python3.11.____cpython.yaml rename to .ci_support/win_64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml index fd5661ac..d06a2833 100644 --- a/.ci_support/win_64_numpy1.23python3.11.____cpython.yaml +++ b/.ci_support/win_64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml @@ -8,6 +8,8 @@ channel_targets: - conda-forge main cxx_compiler: - vs2019 +is_freethreading: +- 'false' libblas: - 3.9 *netlib libcblas: @@ -28,3 +30,4 @@ zip_keys: - - python - numpy - channel_sources + - is_freethreading diff --git a/.ci_support/win_64_numpy1.26python3.12.____cpython.yaml b/.ci_support/win_64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml similarity index 88% rename from .ci_support/win_64_numpy1.26python3.12.____cpython.yaml rename to .ci_support/win_64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml index 4259d346..4b502ecd 100644 --- a/.ci_support/win_64_numpy1.26python3.12.____cpython.yaml +++ b/.ci_support/win_64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml @@ -8,6 +8,8 @@ channel_targets: - conda-forge main cxx_compiler: - vs2019 +is_freethreading: +- 'false' libblas: - 3.9 *netlib libcblas: @@ -28,3 +30,4 @@ zip_keys: - - python - numpy - channel_sources + - is_freethreading diff --git a/.ci_support/win_64_numpy2python3.13.____cp313.yaml b/.ci_support/win_64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml similarity index 89% rename from .ci_support/win_64_numpy2python3.13.____cp313.yaml rename to .ci_support/win_64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml index e0b6f121..581b376e 100644 --- a/.ci_support/win_64_numpy2python3.13.____cp313.yaml +++ b/.ci_support/win_64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml @@ -8,6 +8,8 @@ channel_targets: - conda-forge main cxx_compiler: - vs2019 +is_freethreading: +- 'false' libblas: - 3.9 *netlib libcblas: @@ -28,3 +30,4 @@ zip_keys: - - python - numpy - channel_sources + - is_freethreading diff --git a/.ci_support/win_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml b/.ci_support/win_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml new file mode 100644 index 00000000..f91cc125 --- /dev/null +++ b/.ci_support/win_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml @@ -0,0 +1,33 @@ +c_compiler: +- vs2019 +c_stdlib: +- vs +channel_sources: +- conda-forge/label/python_rc,conda-forge/label/cython_dev,conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- vs2019 +is_freethreading: +- 'true' +libblas: +- 3.9 *netlib +libcblas: +- 3.9 *netlib +liblapack: +- 3.9 *netlib +numpy: +- '2' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.13.* *_cp313t +target_platform: +- win-64 +zip_keys: +- - python + - numpy + - channel_sources + - is_freethreading diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index ba4b251c..856f469d 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -43,6 +43,8 @@ setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" source run_conda_forge_build_setup + + # make the build number clobber make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 65650bf2..a45c34fd 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -24,7 +24,7 @@ set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" :: Provision the necessary dependencies to build the recipe later echo Installing dependencies -mamba.exe install "python=3.10" pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -c conda-forge --strict-channel-priority --yes +mamba.exe install pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -c conda-forge --strict-channel-priority --yes if !errorlevel! neq 0 exit /b !errorlevel! :: Set basic configuration @@ -48,7 +48,7 @@ if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] ( ) if NOT [%flow_run_id%] == [] ( - set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%" + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%" ) call :end_group diff --git a/README.md b/README.md index 4c1e506f..f0972be7 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,13 @@ Current build status variant + + linux_64_numpy2python3.13.____cp313t + + + variant + + linux_aarch64_numpy1.22python3.10.____cpython @@ -86,6 +93,13 @@ Current build status variant + + linux_aarch64_numpy2python3.13.____cp313t + + + variant + + linux_ppc64le_numpy1.22python3.10.____cpython @@ -114,6 +128,13 @@ Current build status variant + + linux_ppc64le_numpy2python3.13.____cp313t + + + variant + + osx_64_numpy1.22python3.10.____cpython @@ -142,6 +163,13 @@ Current build status variant + + osx_64_numpy2python3.13.____cp313t + + + variant + + osx_arm64_numpy1.22python3.10.____cpython @@ -171,31 +199,45 @@ Current build status - win_64_numpy1.22python3.10.____cpython + osx_arm64_numpy2python3.13.____cp313t + + + variant + + + + win_64_is_freethreadingfalsenumpy1.22python3.10.____cpython + + + variant + + + + win_64_is_freethreadingfalsenumpy1.23python3.11.____cpython - variant + variant - win_64_numpy1.23python3.11.____cpython + win_64_is_freethreadingfalsenumpy1.26python3.12.____cpython - variant + variant - win_64_numpy1.26python3.12.____cpython + win_64_is_freethreadingfalsenumpy2python3.13.____cp313 - variant + variant - win_64_numpy2python3.13.____cp313 + win_64_is_freethreadingtruenumpy2python3.13.____cp313t - variant + variant diff --git a/build-locally.py b/build-locally.py index 8ac9b846..6788aea6 100755 --- a/build-locally.py +++ b/build-locally.py @@ -1,5 +1,5 @@ #!/bin/sh -"""exec' "python3" "$0" "$@" #""" # fmt: off # fmt: on +"""exec" "python3" "$0" "$@" #""" # fmt: off # fmt: on # # This file has been generated by conda-smithy in order to build the recipe # locally. diff --git a/recipe/build.sh b/recipe/build.sh index 6b7c80c6..933c50cf 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -16,8 +16,7 @@ if [[ $target_platform == "osx-arm64" ]]; then # currently cannot properly detect long double format # on osx-arm64 when cross-compiling in QEMU, see # https://github.com/numpy/numpy/pull/24414 - echo "[properties]" >> ${CONDA_PREFIX}/meson_cross_file.txt - echo "longdouble_format = 'IEEE_DOUBLE_LE'" >> ${CONDA_PREFIX}/meson_cross_file.txt + sed -i.bak "s@\[properties\]@[properties]\nlongdouble_format = 'IEEE_DOUBLE_LE'@g" ${CONDA_PREFIX}/meson_cross_file.txt fi # meson-python already sets up a -Dbuildtype=release argument to meson, so diff --git a/recipe/meta.yaml b/recipe/meta.yaml index c27a9695..7597c1a6 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -39,7 +39,8 @@ source: # https://github.com/numpy/numpy/tree/v{{ version }}/vendored-meson - folder: vendored-meson/meson git_url: https://github.com/numpy/meson.git - git_rev: 6f88e485f27bb0a41d31638f0c55055362e0b1ac + git_rev: 6f88e485f27bb0a41d31638f0c55055362e0b1ac # [not (win and is_freethreading)] + git_rev: 5f7159556a40844cba411e3a45d61192e36bf9ad # [win and is_freethreading] build: number: 0