From e7b19a805a24d9c55bb544f53595ae5007bc287b Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Sun, 15 Sep 2024 03:24:02 +0000 Subject: [PATCH 1/2] Rebuild for numpy 2.0 TL;DR: The way we build against numpy has changed as of numpy 2.0. This bot PR has updated the recipe to account for the changes (see below for details). The biggest change is that we no longer need to use the oldest available numpy version at build time in order to support old numpy version at runtime - numpy will by default use a compatible ABI for the oldest still-supported numpy versions. Additionally, we no longer need to use `{{ pin_compatible("numpy") }}` as a run requirement - this has been handled for more than two years now by a run-export on the numpy package itself. The migrator will therefore remove any occurrences of this. However, you will still need to add the lower bound for the numpy version, in line with what the upstream package requires. The default lower bound from the run-export is `>=1.19`; if your package needs a newer version than that, please add `numpy >=x.y` under `run:`. Finally, by default, building against numpy 2.0 will assume that the package is compatible with numpy 2.0, which is not necessarily the case. You should check that the upstream package explicitly supports numpy 2.0, otherwise you need to add a `- numpy <2.0dev0` run requirement until that happens (check numpy issue 26191 for an overview of the most important packages). ### To-Dos: * [ ] Match run-requirements for numpy (i.e. check upstream `pyproject.toml` or however the project specifies numpy compatibility) * If upstream is not yet compatible with numpy 2.0, add `numpy <2.0dev0` upper bound under `run:`. * If upstream is already compatible with numpy 2.0, double-check their supported numpy versions. * If upstream requires a minimum numpy version newer than 1.19, you need to add `numpy >=x.y` under `run:`. * [ ] Remove any remaining occurrences of `{{ pin_compatible("numpy") }}` that the bot may have missed. PS. If the build does not compile anymore, this is almost certainly a sign that the upstream project is not yet ready for numpy 2.0; do not close this PR until a version compatible with numpy 2.0 has been released upstream and on this feedstock (in the meantime, you can keep the bot from reopening this PR in case of git conflicts by marking it as a draft). --- .ci_support/migrations/numpy2.yaml | 52 ++++++++++++++++++++++++++++++ recipe/meta.yaml | 3 +- 2 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 .ci_support/migrations/numpy2.yaml diff --git a/.ci_support/migrations/numpy2.yaml b/.ci_support/migrations/numpy2.yaml new file mode 100644 index 0000000..fd981b8 --- /dev/null +++ b/.ci_support/migrations/numpy2.yaml @@ -0,0 +1,52 @@ +__migrator: + build_number: 1 + kind: version + commit_message: | + Rebuild for numpy 2.0 + + TL;DR: The way we build against numpy has changed as of numpy 2.0. This bot + PR has updated the recipe to account for the changes (see below for details). + + The biggest change is that we no longer need to use the oldest available numpy + version at build time in order to support old numpy version at runtime - numpy + will by default use a compatible ABI for the oldest still-supported numpy versions. + + Additionally, we no longer need to use `{{ pin_compatible("numpy") }}` as a + run requirement - this has been handled for more than two years now by a + run-export on the numpy package itself. The migrator will therefore remove + any occurrences of this. + + However, you will still need to add the lower bound for the numpy version, + in line with what the upstream package requires. The default lower bound from + the run-export is `>=1.19`; if your package needs a newer version than that, + please add `numpy >=x.y` under `run:`. + + Finally, by default, building against numpy 2.0 will assume that the package + is compatible with numpy 2.0, which is not necessarily the case. You should + check that the upstream package explicitly supports numpy 2.0, otherwise you + need to add a `- numpy <2.0dev0` run requirement until that happens (check numpy + issue 26191 for an overview of the most important packages). + + ### To-Dos: + * [ ] Match run-requirements for numpy (i.e. check upstream `pyproject.toml` or however the project specifies numpy compatibility) + * If upstream is not yet compatible with numpy 2.0, add `numpy <2.0dev0` upper bound under `run:`. + * If upstream is already compatible with numpy 2.0, double-check their supported numpy versions. + * If upstream requires a minimum numpy version newer than 1.19, you need to add `numpy >=x.y` under `run:`. + * [ ] Remove any remaining occurrences of `{{ pin_compatible("numpy") }}` that the bot may have missed. + + PS. If the build does not compile anymore, this is almost certainly a sign that + the upstream project is not yet ready for numpy 2.0; do not close this PR until + a version compatible with numpy 2.0 has been released upstream and on this + feedstock (in the meantime, you can keep the bot from reopening this PR in + case of git conflicts by marking it as a draft). + + migration_number: 1 + +# needs to match length of zip {python, python_impl, numpy} +# as it is in global CBC in order to override it +numpy: + - 2.0 + - 2.0 + - 2.0 + - 2.0 +migrator_ts: 1713572489.295986 diff --git a/recipe/meta.yaml b/recipe/meta.yaml index b87d2fe..9c1bdfc 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -11,7 +11,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 script: {{ PYTHON }} -m pip install . -vv requirements: @@ -28,7 +28,6 @@ requirements: run: - python - - {{ pin_compatible('numpy') }} - scipy - scikit-learn - persim From 2989b64577a847da56a3d931247958c61b0c03a4 Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Sun, 15 Sep 2024 03:24:48 +0000 Subject: [PATCH 2/2] MNT: Re-rendered with conda-build 24.7.1, conda-smithy 3.39.1, and conda-forge-pinning 2024.09.14.12.41.26 --- .azure-pipelines/azure-pipelines-linux.yml | 16 +++---- .azure-pipelines/azure-pipelines-osx.yml | 16 +++---- .azure-pipelines/azure-pipelines-win.yml | 16 +++---- ...ux_64_numpy2.0python3.10.____cpython.yaml} | 2 +- ...ux_64_numpy2.0python3.11.____cpython.yaml} | 2 +- ...ux_64_numpy2.0python3.12.____cpython.yaml} | 2 +- ...nux_64_numpy2.0python3.9.____cpython.yaml} | 2 +- ...sx_64_numpy2.0python3.10.____cpython.yaml} | 2 +- ...sx_64_numpy2.0python3.11.____cpython.yaml} | 2 +- ...sx_64_numpy2.0python3.12.____cpython.yaml} | 2 +- ...osx_64_numpy2.0python3.9.____cpython.yaml} | 2 +- ...in_64_numpy2.0python3.10.____cpython.yaml} | 2 +- ...in_64_numpy2.0python3.11.____cpython.yaml} | 2 +- ...in_64_numpy2.0python3.12.____cpython.yaml} | 2 +- ...win_64_numpy2.0python3.9.____cpython.yaml} | 2 +- README.md | 48 +++++++++---------- 16 files changed, 60 insertions(+), 60 deletions(-) rename .ci_support/{linux_64_numpy1.22python3.10.____cpython.yaml => linux_64_numpy2.0python3.10.____cpython.yaml} (98%) rename .ci_support/{linux_64_numpy1.23python3.11.____cpython.yaml => linux_64_numpy2.0python3.11.____cpython.yaml} (98%) rename .ci_support/{linux_64_numpy1.26python3.12.____cpython.yaml => linux_64_numpy2.0python3.12.____cpython.yaml} (98%) rename .ci_support/{linux_64_numpy1.22python3.9.____cpython.yaml => linux_64_numpy2.0python3.9.____cpython.yaml} (98%) rename .ci_support/{osx_64_numpy1.22python3.10.____cpython.yaml => osx_64_numpy2.0python3.10.____cpython.yaml} (98%) rename .ci_support/{osx_64_numpy1.23python3.11.____cpython.yaml => osx_64_numpy2.0python3.11.____cpython.yaml} (98%) rename .ci_support/{osx_64_numpy1.26python3.12.____cpython.yaml => osx_64_numpy2.0python3.12.____cpython.yaml} (98%) rename .ci_support/{osx_64_numpy1.22python3.9.____cpython.yaml => osx_64_numpy2.0python3.9.____cpython.yaml} (98%) rename .ci_support/{win_64_numpy1.22python3.10.____cpython.yaml => win_64_numpy2.0python3.10.____cpython.yaml} (96%) rename .ci_support/{win_64_numpy1.23python3.11.____cpython.yaml => win_64_numpy2.0python3.11.____cpython.yaml} (96%) rename .ci_support/{win_64_numpy1.26python3.12.____cpython.yaml => win_64_numpy2.0python3.12.____cpython.yaml} (96%) rename .ci_support/{win_64_numpy1.22python3.9.____cpython.yaml => win_64_numpy2.0python3.9.____cpython.yaml} (96%) diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 6cdb466..08eb514 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -8,20 +8,20 @@ jobs: vmImage: ubuntu-latest strategy: matrix: - linux_64_numpy1.22python3.10.____cpython: - CONFIG: linux_64_numpy1.22python3.10.____cpython + linux_64_numpy2.0python3.10.____cpython: + CONFIG: linux_64_numpy2.0python3.10.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_64_numpy1.22python3.9.____cpython: - CONFIG: linux_64_numpy1.22python3.9.____cpython + linux_64_numpy2.0python3.11.____cpython: + CONFIG: linux_64_numpy2.0python3.11.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_64_numpy1.23python3.11.____cpython: - CONFIG: linux_64_numpy1.23python3.11.____cpython + linux_64_numpy2.0python3.12.____cpython: + CONFIG: linux_64_numpy2.0python3.12.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_64_numpy1.26python3.12.____cpython: - CONFIG: linux_64_numpy1.26python3.12.____cpython + linux_64_numpy2.0python3.9.____cpython: + CONFIG: linux_64_numpy2.0python3.9.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 linux_64_numpy2python3.13.____cp313: diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index e5b6818..0a898da 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -8,17 +8,17 @@ jobs: vmImage: macOS-12 strategy: matrix: - osx_64_numpy1.22python3.10.____cpython: - CONFIG: osx_64_numpy1.22python3.10.____cpython + osx_64_numpy2.0python3.10.____cpython: + CONFIG: osx_64_numpy2.0python3.10.____cpython UPLOAD_PACKAGES: 'True' - osx_64_numpy1.22python3.9.____cpython: - CONFIG: osx_64_numpy1.22python3.9.____cpython + osx_64_numpy2.0python3.11.____cpython: + CONFIG: osx_64_numpy2.0python3.11.____cpython UPLOAD_PACKAGES: 'True' - osx_64_numpy1.23python3.11.____cpython: - CONFIG: osx_64_numpy1.23python3.11.____cpython + osx_64_numpy2.0python3.12.____cpython: + CONFIG: osx_64_numpy2.0python3.12.____cpython UPLOAD_PACKAGES: 'True' - osx_64_numpy1.26python3.12.____cpython: - CONFIG: osx_64_numpy1.26python3.12.____cpython + osx_64_numpy2.0python3.9.____cpython: + CONFIG: osx_64_numpy2.0python3.9.____cpython UPLOAD_PACKAGES: 'True' osx_64_numpy2python3.13.____cp313: CONFIG: osx_64_numpy2python3.13.____cp313 diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 6ec2d16..900e757 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -8,17 +8,17 @@ jobs: vmImage: windows-2022 strategy: matrix: - win_64_numpy1.22python3.10.____cpython: - CONFIG: win_64_numpy1.22python3.10.____cpython + win_64_numpy2.0python3.10.____cpython: + CONFIG: win_64_numpy2.0python3.10.____cpython UPLOAD_PACKAGES: 'True' - win_64_numpy1.22python3.9.____cpython: - CONFIG: win_64_numpy1.22python3.9.____cpython + win_64_numpy2.0python3.11.____cpython: + CONFIG: win_64_numpy2.0python3.11.____cpython UPLOAD_PACKAGES: 'True' - win_64_numpy1.23python3.11.____cpython: - CONFIG: win_64_numpy1.23python3.11.____cpython + win_64_numpy2.0python3.12.____cpython: + CONFIG: win_64_numpy2.0python3.12.____cpython UPLOAD_PACKAGES: 'True' - win_64_numpy1.26python3.12.____cpython: - CONFIG: win_64_numpy1.26python3.12.____cpython + win_64_numpy2.0python3.9.____cpython: + CONFIG: win_64_numpy2.0python3.9.____cpython UPLOAD_PACKAGES: 'True' win_64_numpy2python3.13.____cp313: CONFIG: win_64_numpy2python3.13.____cp313 diff --git a/.ci_support/linux_64_numpy1.22python3.10.____cpython.yaml b/.ci_support/linux_64_numpy2.0python3.10.____cpython.yaml similarity index 98% rename from .ci_support/linux_64_numpy1.22python3.10.____cpython.yaml rename to .ci_support/linux_64_numpy2.0python3.10.____cpython.yaml index 9d59091..1210710 100644 --- a/.ci_support/linux_64_numpy1.22python3.10.____cpython.yaml +++ b/.ci_support/linux_64_numpy2.0python3.10.____cpython.yaml @@ -15,7 +15,7 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 numpy: -- '1.22' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_64_numpy1.23python3.11.____cpython.yaml b/.ci_support/linux_64_numpy2.0python3.11.____cpython.yaml similarity index 98% rename from .ci_support/linux_64_numpy1.23python3.11.____cpython.yaml rename to .ci_support/linux_64_numpy2.0python3.11.____cpython.yaml index 9a8d329..0035026 100644 --- a/.ci_support/linux_64_numpy1.23python3.11.____cpython.yaml +++ b/.ci_support/linux_64_numpy2.0python3.11.____cpython.yaml @@ -15,7 +15,7 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 numpy: -- '1.23' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_64_numpy1.26python3.12.____cpython.yaml b/.ci_support/linux_64_numpy2.0python3.12.____cpython.yaml similarity index 98% rename from .ci_support/linux_64_numpy1.26python3.12.____cpython.yaml rename to .ci_support/linux_64_numpy2.0python3.12.____cpython.yaml index 19792df..0a19271 100644 --- a/.ci_support/linux_64_numpy1.26python3.12.____cpython.yaml +++ b/.ci_support/linux_64_numpy2.0python3.12.____cpython.yaml @@ -15,7 +15,7 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 numpy: -- '1.26' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_64_numpy1.22python3.9.____cpython.yaml b/.ci_support/linux_64_numpy2.0python3.9.____cpython.yaml similarity index 98% rename from .ci_support/linux_64_numpy1.22python3.9.____cpython.yaml rename to .ci_support/linux_64_numpy2.0python3.9.____cpython.yaml index a73cca1..0e58dc4 100644 --- a/.ci_support/linux_64_numpy1.22python3.9.____cpython.yaml +++ b/.ci_support/linux_64_numpy2.0python3.9.____cpython.yaml @@ -15,7 +15,7 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 numpy: -- '1.22' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/osx_64_numpy1.22python3.10.____cpython.yaml b/.ci_support/osx_64_numpy2.0python3.10.____cpython.yaml similarity index 98% rename from .ci_support/osx_64_numpy1.22python3.10.____cpython.yaml rename to .ci_support/osx_64_numpy2.0python3.10.____cpython.yaml index 9c9ca2d..db8e4f8 100644 --- a/.ci_support/osx_64_numpy1.22python3.10.____cpython.yaml +++ b/.ci_support/osx_64_numpy2.0python3.10.____cpython.yaml @@ -17,7 +17,7 @@ cxx_compiler_version: macos_machine: - x86_64-apple-darwin13.4.0 numpy: -- '1.22' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/osx_64_numpy1.23python3.11.____cpython.yaml b/.ci_support/osx_64_numpy2.0python3.11.____cpython.yaml similarity index 98% rename from .ci_support/osx_64_numpy1.23python3.11.____cpython.yaml rename to .ci_support/osx_64_numpy2.0python3.11.____cpython.yaml index e98b33e..d221dfe 100644 --- a/.ci_support/osx_64_numpy1.23python3.11.____cpython.yaml +++ b/.ci_support/osx_64_numpy2.0python3.11.____cpython.yaml @@ -17,7 +17,7 @@ cxx_compiler_version: macos_machine: - x86_64-apple-darwin13.4.0 numpy: -- '1.23' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/osx_64_numpy1.26python3.12.____cpython.yaml b/.ci_support/osx_64_numpy2.0python3.12.____cpython.yaml similarity index 98% rename from .ci_support/osx_64_numpy1.26python3.12.____cpython.yaml rename to .ci_support/osx_64_numpy2.0python3.12.____cpython.yaml index 87eb658..426fb4a 100644 --- a/.ci_support/osx_64_numpy1.26python3.12.____cpython.yaml +++ b/.ci_support/osx_64_numpy2.0python3.12.____cpython.yaml @@ -17,7 +17,7 @@ cxx_compiler_version: macos_machine: - x86_64-apple-darwin13.4.0 numpy: -- '1.26' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/osx_64_numpy1.22python3.9.____cpython.yaml b/.ci_support/osx_64_numpy2.0python3.9.____cpython.yaml similarity index 98% rename from .ci_support/osx_64_numpy1.22python3.9.____cpython.yaml rename to .ci_support/osx_64_numpy2.0python3.9.____cpython.yaml index a97d451..db61610 100644 --- a/.ci_support/osx_64_numpy1.22python3.9.____cpython.yaml +++ b/.ci_support/osx_64_numpy2.0python3.9.____cpython.yaml @@ -17,7 +17,7 @@ cxx_compiler_version: macos_machine: - x86_64-apple-darwin13.4.0 numpy: -- '1.22' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/win_64_numpy1.22python3.10.____cpython.yaml b/.ci_support/win_64_numpy2.0python3.10.____cpython.yaml similarity index 96% rename from .ci_support/win_64_numpy1.22python3.10.____cpython.yaml rename to .ci_support/win_64_numpy2.0python3.10.____cpython.yaml index 3a56f30..18729ff 100644 --- a/.ci_support/win_64_numpy1.22python3.10.____cpython.yaml +++ b/.ci_support/win_64_numpy2.0python3.10.____cpython.yaml @@ -7,7 +7,7 @@ channel_targets: cxx_compiler: - vs2019 numpy: -- '1.22' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/win_64_numpy1.23python3.11.____cpython.yaml b/.ci_support/win_64_numpy2.0python3.11.____cpython.yaml similarity index 96% rename from .ci_support/win_64_numpy1.23python3.11.____cpython.yaml rename to .ci_support/win_64_numpy2.0python3.11.____cpython.yaml index 25344fb..5ec03a4 100644 --- a/.ci_support/win_64_numpy1.23python3.11.____cpython.yaml +++ b/.ci_support/win_64_numpy2.0python3.11.____cpython.yaml @@ -7,7 +7,7 @@ channel_targets: cxx_compiler: - vs2019 numpy: -- '1.23' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/win_64_numpy1.26python3.12.____cpython.yaml b/.ci_support/win_64_numpy2.0python3.12.____cpython.yaml similarity index 96% rename from .ci_support/win_64_numpy1.26python3.12.____cpython.yaml rename to .ci_support/win_64_numpy2.0python3.12.____cpython.yaml index 7fd3b0c..f377b0a 100644 --- a/.ci_support/win_64_numpy1.26python3.12.____cpython.yaml +++ b/.ci_support/win_64_numpy2.0python3.12.____cpython.yaml @@ -7,7 +7,7 @@ channel_targets: cxx_compiler: - vs2019 numpy: -- '1.26' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/win_64_numpy1.22python3.9.____cpython.yaml b/.ci_support/win_64_numpy2.0python3.9.____cpython.yaml similarity index 96% rename from .ci_support/win_64_numpy1.22python3.9.____cpython.yaml rename to .ci_support/win_64_numpy2.0python3.9.____cpython.yaml index 9a0d0b0..fdf8208 100644 --- a/.ci_support/win_64_numpy1.22python3.9.____cpython.yaml +++ b/.ci_support/win_64_numpy2.0python3.9.____cpython.yaml @@ -7,7 +7,7 @@ channel_targets: cxx_compiler: - vs2019 numpy: -- '1.22' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/README.md b/README.md index 068a17a..ea27960 100644 --- a/README.md +++ b/README.md @@ -38,31 +38,31 @@ Current build status - + - + - + - + @@ -73,31 +73,31 @@ Current build status - + - + - + - + @@ -108,31 +108,31 @@ Current build status - + - + - + - +
VariantStatus
linux_64_numpy1.22python3.10.____cpythonlinux_64_numpy2.0python3.10.____cpython - variant + variant
linux_64_numpy1.22python3.9.____cpythonlinux_64_numpy2.0python3.11.____cpython - variant + variant
linux_64_numpy1.23python3.11.____cpythonlinux_64_numpy2.0python3.12.____cpython - variant + variant
linux_64_numpy1.26python3.12.____cpythonlinux_64_numpy2.0python3.9.____cpython - variant + variant
osx_64_numpy1.22python3.10.____cpythonosx_64_numpy2.0python3.10.____cpython - variant + variant
osx_64_numpy1.22python3.9.____cpythonosx_64_numpy2.0python3.11.____cpython - variant + variant
osx_64_numpy1.23python3.11.____cpythonosx_64_numpy2.0python3.12.____cpython - variant + variant
osx_64_numpy1.26python3.12.____cpythonosx_64_numpy2.0python3.9.____cpython - variant + variant
win_64_numpy1.22python3.10.____cpythonwin_64_numpy2.0python3.10.____cpython - variant + variant
win_64_numpy1.22python3.9.____cpythonwin_64_numpy2.0python3.11.____cpython - variant + variant
win_64_numpy1.23python3.11.____cpythonwin_64_numpy2.0python3.12.____cpython - variant + variant
win_64_numpy1.26python3.12.____cpythonwin_64_numpy2.0python3.9.____cpython - variant + variant