From 01aebf53773cc6d6c57e981bae761b019633c883 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 30 Sep 2024 09:39:04 -0500 Subject: [PATCH 01/10] freethreading support --- .azure-pipelines/azure-pipelines-linux.yml | 12 +++++ .azure-pipelines/azure-pipelines-osx.yml | 6 +++ .azure-pipelines/azure-pipelines-win.yml | 3 ++ .../linux_64_numpy2python3.13.____cp313t.yaml | 49 +++++++++++++++++ ...x_aarch64_numpy2python3.13.____cp313t.yaml | 53 +++++++++++++++++++ ...x_ppc64le_numpy2python3.13.____cp313t.yaml | 49 +++++++++++++++++ .ci_support/migrations/python313t.yaml | 48 +++++++++++++++++ .../osx_64_numpy2python3.13.____cp313t.yaml | 44 +++++++++++++++ ...osx_arm64_numpy2python3.13.____cp313t.yaml | 44 +++++++++++++++ .../win_64_numpy2python3.13.____cp313t.yaml | 30 +++++++++++ .scripts/build_steps.sh | 2 + .scripts/run_win_build.bat | 4 +- README.md | 42 +++++++++++++++ build-locally.py | 2 +- 14 files changed, 385 insertions(+), 3 deletions(-) create mode 100644 .ci_support/linux_64_numpy2python3.13.____cp313t.yaml create mode 100644 .ci_support/linux_aarch64_numpy2python3.13.____cp313t.yaml create mode 100644 .ci_support/linux_ppc64le_numpy2python3.13.____cp313t.yaml create mode 100644 .ci_support/migrations/python313t.yaml create mode 100644 .ci_support/osx_64_numpy2python3.13.____cp313t.yaml create mode 100644 .ci_support/osx_arm64_numpy2python3.13.____cp313t.yaml create mode 100644 .ci_support/win_64_numpy2python3.13.____cp313t.yaml 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..145997f6 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -20,6 +20,9 @@ jobs: win_64_numpy2python3.13.____cp313: CONFIG: win_64_numpy2python3.13.____cp313 UPLOAD_PACKAGES: 'True' + win_64_numpy2python3.13.____cp313t: + CONFIG: win_64_numpy2python3.13.____cp313t + UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 variables: CONDA_BLD_PATH: D:\\bld\\ 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_numpy2python3.13.____cp313t.yaml b/.ci_support/win_64_numpy2python3.13.____cp313t.yaml new file mode 100644 index 00000000..f9363226 --- /dev/null +++ b/.ci_support/win_64_numpy2python3.13.____cp313t.yaml @@ -0,0 +1,30 @@ +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 +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 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..7d4a30f4 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 @@ -170,6 +198,13 @@ Current build status variant + + osx_arm64_numpy2python3.13.____cp313t + + + variant + + win_64_numpy1.22python3.10.____cpython @@ -198,6 +233,13 @@ Current build status variant + + win_64_numpy2python3.13.____cp313t + + + 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. From c88dc71f4b4a42fbe42fd70a378f1a6e9f6f91de Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 9 Oct 2024 08:07:21 -0500 Subject: [PATCH 02/10] workaround meson bug --- recipe/bld.bat | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/recipe/bld.bat b/recipe/bld.bat index bc50c45b..5a66a2ac 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -2,6 +2,11 @@ mkdir builddir +:: workaround an issue in vendored meson of numpy +if "%IS_FREETHREADING%=="yes" ( + copy %PREFIX%\libs\python313t.lib %PREFIX%\libs\python313.lib +) + :: -wnx flags mean: --wheel --no-isolation --skip-dependency-check %PYTHON% -m build -w -n -x ^ -Cbuilddir=builddir ^ @@ -15,3 +20,8 @@ for /f %%f in ('dir /b /S .\dist') do ( pip install %%f if %ERRORLEVEL% neq 0 exit 1 ) + +if "%IS_FREETHREADING%=="yes" ( + del %PREFIX%\libs\python313.lib +) + From ba2032c67c881e66a84f6521bc069b0ed204e9cd Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 9 Oct 2024 08:12:12 -0500 Subject: [PATCH 03/10] rerender --- .azure-pipelines/azure-pipelines-win.yml | 20 +++++++++---------- ...falsenumpy1.22python3.10.____cpython.yaml} | 3 +++ ...falsenumpy1.23python3.11.____cpython.yaml} | 3 +++ ...falsenumpy1.26python3.12.____cpython.yaml} | 3 +++ ...adingfalsenumpy2python3.13.____cp313.yaml} | 3 +++ ...adingtruenumpy2python3.13.____cp313t.yaml} | 3 +++ README.md | 20 +++++++++---------- 7 files changed, 35 insertions(+), 20 deletions(-) rename .ci_support/{win_64_numpy1.22python3.10.____cpython.yaml => win_64_is_freethreadingfalsenumpy1.22python3.10.____cpython.yaml} (88%) rename .ci_support/{win_64_numpy1.23python3.11.____cpython.yaml => win_64_is_freethreadingfalsenumpy1.23python3.11.____cpython.yaml} (88%) rename .ci_support/{win_64_numpy1.26python3.12.____cpython.yaml => win_64_is_freethreadingfalsenumpy1.26python3.12.____cpython.yaml} (88%) rename .ci_support/{win_64_numpy2python3.13.____cp313.yaml => win_64_is_freethreadingfalsenumpy2python3.13.____cp313.yaml} (89%) rename .ci_support/{win_64_numpy2python3.13.____cp313t.yaml => win_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml} (90%) diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 145997f6..1bb11f90 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -8,20 +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_numpy2python3.13.____cp313t: - CONFIG: win_64_numpy2python3.13.____cp313t + win_64_is_freethreadingtruenumpy2python3.13.____cp313t: + CONFIG: win_64_is_freethreadingtruenumpy2python3.13.____cp313t UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 variables: 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_numpy2python3.13.____cp313t.yaml b/.ci_support/win_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml similarity index 90% rename from .ci_support/win_64_numpy2python3.13.____cp313t.yaml rename to .ci_support/win_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml index f9363226..f91cc125 100644 --- a/.ci_support/win_64_numpy2python3.13.____cp313t.yaml +++ b/.ci_support/win_64_is_freethreadingtruenumpy2python3.13.____cp313t.yaml @@ -8,6 +8,8 @@ channel_targets: - conda-forge main cxx_compiler: - vs2019 +is_freethreading: +- 'true' libblas: - 3.9 *netlib libcblas: @@ -28,3 +30,4 @@ zip_keys: - - python - numpy - channel_sources + - is_freethreading diff --git a/README.md b/README.md index 7d4a30f4..f0972be7 100644 --- a/README.md +++ b/README.md @@ -206,38 +206,38 @@ Current build status - win_64_numpy1.22python3.10.____cpython + win_64_is_freethreadingfalsenumpy1.22python3.10.____cpython - variant + variant - win_64_numpy1.23python3.11.____cpython + win_64_is_freethreadingfalsenumpy1.23python3.11.____cpython - variant + variant - win_64_numpy1.26python3.12.____cpython + win_64_is_freethreadingfalsenumpy1.26python3.12.____cpython - variant + variant - win_64_numpy2python3.13.____cp313 + win_64_is_freethreadingfalsenumpy2python3.13.____cp313 - variant + variant - win_64_numpy2python3.13.____cp313t + win_64_is_freethreadingtruenumpy2python3.13.____cp313t - variant + variant From 9e78f4ce149f28cdad471b42e7aa9b5a3cb5abbd Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 9 Oct 2024 08:12:29 -0500 Subject: [PATCH 04/10] fix typo --- recipe/bld.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/bld.bat b/recipe/bld.bat index 5a66a2ac..bae62dfd 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -3,7 +3,7 @@ mkdir builddir :: workaround an issue in vendored meson of numpy -if "%IS_FREETHREADING%=="yes" ( +if "%is_freethreading%=="yes" ( copy %PREFIX%\libs\python313t.lib %PREFIX%\libs\python313.lib ) From 3a51624a0deddba8fdf3ca95d3ee7f7b90b7682d Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 9 Oct 2024 08:41:45 -0500 Subject: [PATCH 05/10] fix typo --- recipe/bld.bat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/bld.bat b/recipe/bld.bat index bae62dfd..d68afe5c 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -3,7 +3,7 @@ mkdir builddir :: workaround an issue in vendored meson of numpy -if "%is_freethreading%=="yes" ( +if "%is_freethreading%"=="yes" ( copy %PREFIX%\libs\python313t.lib %PREFIX%\libs\python313.lib ) @@ -21,7 +21,7 @@ for /f %%f in ('dir /b /S .\dist') do ( if %ERRORLEVEL% neq 0 exit 1 ) -if "%IS_FREETHREADING%=="yes" ( +if "%is_freethreading%"=="yes" ( del %PREFIX%\libs\python313.lib ) From ae684b5eb692a9e4adaf83b92b8ae764ab429fd0 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 9 Oct 2024 10:34:22 -0500 Subject: [PATCH 06/10] fix condition --- recipe/bld.bat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/bld.bat b/recipe/bld.bat index d68afe5c..12572e10 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -3,7 +3,7 @@ mkdir builddir :: workaround an issue in vendored meson of numpy -if "%is_freethreading%"=="yes" ( +if "%is_freethreading%"=="true" ( copy %PREFIX%\libs\python313t.lib %PREFIX%\libs\python313.lib ) @@ -21,7 +21,7 @@ for /f %%f in ('dir /b /S .\dist') do ( if %ERRORLEVEL% neq 0 exit 1 ) -if "%is_freethreading%"=="yes" ( +if "%is_freethreading%"=="true" ( del %PREFIX%\libs\python313.lib ) From 8d49668d5abb83d9edfbaec7a20d17ea123fbff2 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 9 Oct 2024 11:31:57 -0500 Subject: [PATCH 07/10] update meson --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index c27a9695..59731c14 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -39,7 +39,7 @@ 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: 5f7159556a40844cba411e3a45d61192e36bf9ad build: number: 0 From 58a7cc3d2a6464dc5a4b8f1a4abe01d02cfea22b Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 9 Oct 2024 13:42:07 -0500 Subject: [PATCH 08/10] Use new meson only for win and is_freethreading --- recipe/meta.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 59731c14..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: 5f7159556a40844cba411e3a45d61192e36bf9ad + git_rev: 6f88e485f27bb0a41d31638f0c55055362e0b1ac # [not (win and is_freethreading)] + git_rev: 5f7159556a40844cba411e3a45d61192e36bf9ad # [win and is_freethreading] build: number: 0 From 5c046fb07d8cef2ca87e797422b7457806364a77 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 10 Oct 2024 08:09:55 -0500 Subject: [PATCH 09/10] remove workaround --- recipe/bld.bat | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/recipe/bld.bat b/recipe/bld.bat index 12572e10..bc50c45b 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -2,11 +2,6 @@ mkdir builddir -:: workaround an issue in vendored meson of numpy -if "%is_freethreading%"=="true" ( - copy %PREFIX%\libs\python313t.lib %PREFIX%\libs\python313.lib -) - :: -wnx flags mean: --wheel --no-isolation --skip-dependency-check %PYTHON% -m build -w -n -x ^ -Cbuilddir=builddir ^ @@ -20,8 +15,3 @@ for /f %%f in ('dir /b /S .\dist') do ( pip install %%f if %ERRORLEVEL% neq 0 exit 1 ) - -if "%is_freethreading%"=="true" ( - del %PREFIX%\libs\python313.lib -) - From 87eb13e0189d60ba45fcc61624361c58b7d46951 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Thu, 10 Oct 2024 08:34:06 -0500 Subject: [PATCH 10/10] fix osx-arm64 --- recipe/build.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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