From fc7d2e3f5108235257e48911f118b330c08cafb0 Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Sun, 23 Jun 2024 09:53:09 +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, 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, nothing else should be necessary in most cases. * If upstream requires a minimum numpy version newer than 1.19, you can 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 | 48 ++++++++++++++++++++++++++++++ recipe/meta.yaml | 3 +- 2 files changed, 49 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..4e6d3ca --- /dev/null +++ b/.ci_support/migrations/numpy2.yaml @@ -0,0 +1,48 @@ +__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, 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, nothing else should be necessary in most cases. + * If upstream requires a minimum numpy version newer than 1.19, you can 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: + - 1.22 # no py38 support for numpy 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 +migrator_ts: 1713572489.295986 diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 030ed62..f3c7202 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -12,7 +12,7 @@ source: - use_external_spglib.patch build: - number: 9 + number: 10 skip: true # [win or py<35] requirements: @@ -31,7 +31,6 @@ requirements: - setuptools run: - python - - {{ pin_compatible('numpy') }} test: source_files: From f8a088faa523d311bcad0111f329646bbff822e5 Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Sun, 23 Jun 2024 09:54:16 +0000 Subject: [PATCH 2/2] MNT: Re-rendered with conda-build 24.5.1, conda-smithy 3.36.2, and conda-forge-pinning 2024.06.21.08.07.40 --- .azure-pipelines/azure-pipelines-linux.yml | 20 ++++----- .azure-pipelines/azure-pipelines-osx.yml | 20 ++++----- ...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 +- .ci_support/migrations/boost1840.yaml | 10 ----- ...osx_64_numpy1.22python3.8.____cpython.yaml | 6 ++- ...osx_64_numpy1.22python3.9.____73_pypy.yaml | 6 ++- ...sx_64_numpy2.0python3.10.____cpython.yaml} | 8 ++-- ...sx_64_numpy2.0python3.11.____cpython.yaml} | 8 ++-- ...sx_64_numpy2.0python3.12.____cpython.yaml} | 8 ++-- ...osx_64_numpy2.0python3.9.____cpython.yaml} | 8 ++-- .gitattributes | 4 +- .scripts/build_steps.sh | 7 ++++ .scripts/run_osx_build.sh | 7 ++++ README.md | 42 +++++++++---------- 17 files changed, 89 insertions(+), 73 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%) delete mode 100644 .ci_support/migrations/boost1840.yaml rename .ci_support/{osx_64_numpy1.22python3.10.____cpython.yaml => osx_64_numpy2.0python3.10.____cpython.yaml} (89%) rename .ci_support/{osx_64_numpy1.23python3.11.____cpython.yaml => osx_64_numpy2.0python3.11.____cpython.yaml} (89%) rename .ci_support/{osx_64_numpy1.26python3.12.____cpython.yaml => osx_64_numpy2.0python3.12.____cpython.yaml} (89%) rename .ci_support/{osx_64_numpy1.22python3.9.____cpython.yaml => osx_64_numpy2.0python3.9.____cpython.yaml} (89%) diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 12e7506..66f6835 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -8,10 +8,6 @@ jobs: vmImage: ubuntu-latest strategy: matrix: - linux_64_numpy1.22python3.10.____cpython: - CONFIG: linux_64_numpy1.22python3.10.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 linux_64_numpy1.22python3.8.____cpython: CONFIG: linux_64_numpy1.22python3.8.____cpython UPLOAD_PACKAGES: 'True' @@ -20,16 +16,20 @@ jobs: CONFIG: linux_64_numpy1.22python3.9.____73_pypy 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.10.____cpython: + CONFIG: linux_64_numpy2.0python3.10.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + 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 timeoutInMinutes: 360 diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 9a9efd2..d9acd82 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -5,26 +5,26 @@ jobs: - job: osx pool: - vmImage: macOS-11 + vmImage: macOS-12 strategy: matrix: - osx_64_numpy1.22python3.10.____cpython: - CONFIG: osx_64_numpy1.22python3.10.____cpython - UPLOAD_PACKAGES: 'True' osx_64_numpy1.22python3.8.____cpython: CONFIG: osx_64_numpy1.22python3.8.____cpython UPLOAD_PACKAGES: 'True' osx_64_numpy1.22python3.9.____73_pypy: CONFIG: osx_64_numpy1.22python3.9.____73_pypy UPLOAD_PACKAGES: 'True' - osx_64_numpy1.22python3.9.____cpython: - CONFIG: osx_64_numpy1.22python3.9.____cpython + osx_64_numpy2.0python3.10.____cpython: + CONFIG: osx_64_numpy2.0python3.10.____cpython + UPLOAD_PACKAGES: 'True' + 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' timeoutInMinutes: 360 variables: {} 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 ae85bad..2e8f4d6 100644 --- a/.ci_support/linux_64_numpy1.22python3.10.____cpython.yaml +++ b/.ci_support/linux_64_numpy2.0python3.10.____cpython.yaml @@ -19,7 +19,7 @@ libboost_python_devel: liblapack: - 3.9 *netlib 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 83b9183..f0cac94 100644 --- a/.ci_support/linux_64_numpy1.23python3.11.____cpython.yaml +++ b/.ci_support/linux_64_numpy2.0python3.11.____cpython.yaml @@ -19,7 +19,7 @@ libboost_python_devel: liblapack: - 3.9 *netlib 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 3980b99..d2e9796 100644 --- a/.ci_support/linux_64_numpy1.26python3.12.____cpython.yaml +++ b/.ci_support/linux_64_numpy2.0python3.12.____cpython.yaml @@ -19,7 +19,7 @@ libboost_python_devel: liblapack: - 3.9 *netlib 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 b3291d0..8d06653 100644 --- a/.ci_support/linux_64_numpy1.22python3.9.____cpython.yaml +++ b/.ci_support/linux_64_numpy2.0python3.9.____cpython.yaml @@ -19,7 +19,7 @@ libboost_python_devel: liblapack: - 3.9 *netlib numpy: -- '1.22' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/migrations/boost1840.yaml b/.ci_support/migrations/boost1840.yaml deleted file mode 100644 index 5d6e74c..0000000 --- a/.ci_support/migrations/boost1840.yaml +++ /dev/null @@ -1,10 +0,0 @@ -__migrator: - build_number: 1 - kind: version - commit_message: "Rebuild for libboost 1.84" - migration_number: 1 -libboost_devel: -- "1.84" -libboost_python_devel: -- "1.84" -migrator_ts: 1700834511.141209 diff --git a/.ci_support/osx_64_numpy1.22python3.8.____cpython.yaml b/.ci_support/osx_64_numpy1.22python3.8.____cpython.yaml index 3b7bac3..f082b2e 100644 --- a/.ci_support/osx_64_numpy1.22python3.8.____cpython.yaml +++ b/.ci_support/osx_64_numpy1.22python3.8.____cpython.yaml @@ -1,9 +1,11 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.9' +- '10.13' +MACOSX_SDK_VERSION: +- '10.13' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.9' +- '10.13' channel_sources: - conda-forge channel_targets: diff --git a/.ci_support/osx_64_numpy1.22python3.9.____73_pypy.yaml b/.ci_support/osx_64_numpy1.22python3.9.____73_pypy.yaml index 8bec5c2..b468153 100644 --- a/.ci_support/osx_64_numpy1.22python3.9.____73_pypy.yaml +++ b/.ci_support/osx_64_numpy1.22python3.9.____73_pypy.yaml @@ -1,9 +1,11 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.9' +- '10.13' +MACOSX_SDK_VERSION: +- '10.13' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.9' +- '10.13' channel_sources: - conda-forge channel_targets: diff --git a/.ci_support/osx_64_numpy1.22python3.10.____cpython.yaml b/.ci_support/osx_64_numpy2.0python3.10.____cpython.yaml similarity index 89% rename from .ci_support/osx_64_numpy1.22python3.10.____cpython.yaml rename to .ci_support/osx_64_numpy2.0python3.10.____cpython.yaml index fae7790..fc3fab3 100644 --- a/.ci_support/osx_64_numpy1.22python3.10.____cpython.yaml +++ b/.ci_support/osx_64_numpy2.0python3.10.____cpython.yaml @@ -1,9 +1,11 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.9' +- '10.13' +MACOSX_SDK_VERSION: +- '10.13' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.9' +- '10.13' channel_sources: - conda-forge channel_targets: @@ -21,7 +23,7 @@ llvm_openmp: 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 89% rename from .ci_support/osx_64_numpy1.23python3.11.____cpython.yaml rename to .ci_support/osx_64_numpy2.0python3.11.____cpython.yaml index 9b5ba5e..06f8c0b 100644 --- a/.ci_support/osx_64_numpy1.23python3.11.____cpython.yaml +++ b/.ci_support/osx_64_numpy2.0python3.11.____cpython.yaml @@ -1,9 +1,11 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.9' +- '10.13' +MACOSX_SDK_VERSION: +- '10.13' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.9' +- '10.13' channel_sources: - conda-forge channel_targets: @@ -21,7 +23,7 @@ llvm_openmp: 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 89% rename from .ci_support/osx_64_numpy1.26python3.12.____cpython.yaml rename to .ci_support/osx_64_numpy2.0python3.12.____cpython.yaml index a98d0f2..fb95e3a 100644 --- a/.ci_support/osx_64_numpy1.26python3.12.____cpython.yaml +++ b/.ci_support/osx_64_numpy2.0python3.12.____cpython.yaml @@ -1,9 +1,11 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.9' +- '10.13' +MACOSX_SDK_VERSION: +- '10.13' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.9' +- '10.13' channel_sources: - conda-forge channel_targets: @@ -21,7 +23,7 @@ llvm_openmp: 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 89% rename from .ci_support/osx_64_numpy1.22python3.9.____cpython.yaml rename to .ci_support/osx_64_numpy2.0python3.9.____cpython.yaml index f286b68..d70ecf3 100644 --- a/.ci_support/osx_64_numpy1.22python3.9.____cpython.yaml +++ b/.ci_support/osx_64_numpy2.0python3.9.____cpython.yaml @@ -1,9 +1,11 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.9' +- '10.13' +MACOSX_SDK_VERSION: +- '10.13' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.9' +- '10.13' channel_sources: - conda-forge channel_targets: @@ -21,7 +23,7 @@ llvm_openmp: 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/.gitattributes b/.gitattributes index 7f32763..18f114a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -20,8 +20,8 @@ bld.bat text eol=crlf .travis.yml linguist-generated=true .scripts/* linguist-generated=true .woodpecker.yml linguist-generated=true -LICENSE.txt linguist-generated=true -README.md linguist-generated=true +/LICENSE.txt linguist-generated=true +/README.md linguist-generated=true azure-pipelines.yml linguist-generated=true build-locally.py linguist-generated=true shippable.yml linguist-generated=true diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 2f3df6c..97dc8d9 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -69,6 +69,13 @@ else --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:-}" + + ( startgroup "Inspecting artifacts" ) 2> /dev/null + + # inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" + + ( endgroup "Inspecting artifacts" ) 2> /dev/null ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 165fa51..0c9e992 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -81,6 +81,13 @@ else --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" + + ( startgroup "Inspecting artifacts" ) 2> /dev/null + + # inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" + + ( endgroup "Inspecting artifacts" ) 2> /dev/null ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/README.md b/README.md index 939d8fb..9b16391 100644 --- a/README.md +++ b/README.md @@ -37,13 +37,6 @@ Current build status - - - - + - + - + - + @@ -100,24 +93,31 @@ Current build status - + + + + - + - +
VariantStatus
linux_64_numpy1.22python3.10.____cpython - - variant - -
linux_64_numpy1.22python3.8.____cpython @@ -58,31 +51,31 @@ Current build status
linux_64_numpy1.22python3.9.____cpythonlinux_64_numpy2.0python3.10.____cpython - variant + variant
linux_64_numpy1.23python3.11.____cpythonlinux_64_numpy2.0python3.11.____cpython - variant + variant
linux_64_numpy1.26python3.12.____cpythonlinux_64_numpy2.0python3.12.____cpython - variant + variant
osx_64_numpy1.22python3.10.____cpythonlinux_64_numpy2.0python3.9.____cpython - variant + variant
osx_64_numpy1.22python3.9.____cpythonosx_64_numpy2.0python3.10.____cpython + + variant + +
osx_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